Encrypting Requests and Decrypting Responses
注記
パブリッシャーで、クライアント側にUID2を実装している場合、暗号化と復号化は、Prebid.js (UID2 Client-Side Integration Guide for Prebid.js を参照してください) や JavaScript SDK (Client-Side Integration Guide for JavaScript を参照してください) などの実装によって自動的に管理されます。
ほとんどすべての UID2 endpoints では、エンドポイントに送られるリクエストは encrypted され、エンドポイントからのレスポンスは decrypted する必要があります。
唯一の例 外は、POST /token/refresh エンドポイントへのリクエストは暗号化する必要がないことです。
UID2 API リクエストの暗号化と各レスポンスの復号化について知っておく必要があるのは、以下のとおりです:
- API を使用するには、クライアントの API Key に加えて、クライアントシークレットが必要です。
- 独自のコードを書くことも、提供されているコード例の一つを使うこともできます: Encryption and Decryption Code Examples を参照してください。
- リクエストとレスポンスには、96 ビットの初期化ベクトルと 128 ビットの認証タグを持つ AES/GCM/NoPadding 暗号化アルゴリズムが使用されます。
- リクエストの暗号化されていない JSON ボディは、バイナリの 暗号化前リクエストデータエンベローブ にラップされ、その後 暗号化リクエストエンベローブ に従って暗号化とフォーマットが行われます。
- レスポンス JSON ボディはバイナリの 復号化済みレスポンスデータエンベローブ にラップされ、暗号化レスポンスエンベローブ に従って暗号化・整形されます。
Workflow
UID2 API のリクエストレスポンスワークフローは、以下のステップです:
- 入力パラメータを含むリクエストボディを JSON 形式で用意します。
- リクエスト JSON を暗号化前リクエストデータエンベローブ でラップします。
- AES/GCM/NoPadding アルゴリズムと秘密鍵でエンベローブを暗号化します。
- 暗号化リクエストエンベローブ を組み立てます。
- 暗号化されたリクエストを送信し、暗号化されたレスポンスを受信します。
- 暗号化レスポンスエンベローブ を解析します。
- レスポンスエンベローブのデータを復号化します。
- 得られた 復号化済みレスポンスデータエンベローブ を解析します。
- (オプション、推奨) レスポンスエンベローブの nonce がリクエストエンベローブの nonce と一致することを確認します。
- 暗号化されていないエンベローブからレスポンス JSON オブジェクトを抽出します。
encrypting requests and decrypting responses のコード例は、Step 2-10 を自動化するのに役立ち、アプリケーションでこれらのステップを実装する方法のリファレンスとなります。
各 UID2 endpoints では、JSON ボディのフォーマットの要件とパラメータを説明し、呼び出し例を含め、復号化されたレスポンスを示しています。以下のセクションでは、暗号化と復号化のコード例、フィールドレイアウトの要件、リクエストとレスポンスの例を示します。