Skip to main content

title: プリンシパルとセキュリティ

プリンシパル(Principal) は AdCP における個別のクライアント/バイヤーを表します。営業エージェントはプリンシパルを用いてリクエストの送信者を特定し、バイヤー間のデータ分離を強制します。

認証

すべてのリクエストは、標準的な Authorization ヘッダーに含まれるベアラートークンで認証する必要があります。
Authorization: Bearer <your_token>
サーバーはこのトークンを検証し、特定の principal_id に紐づけます。そのリクエスト内で行われるすべての処理は、認証済みプリンシパルのスコープに限定されます。 認証情報の取得や認証方式の詳細は Authentication を参照してください。

プリンシパルモデル

プリンシパルは次の要素で定義されます。
  • principal_id (string): クライアントの一意な識別子(例: "acme_corp"
  • platform_mappings (object): principal_id と広告配信プラットフォーム側の ID を対応付けるマップ(例: {"gam_advertiser_id": 12345}

データ分離

認証は厳格なデータ分離の基盤になります。営業エージェントは次のルールを 必ず 守ってください。
  1. MediaBuy などのオブジェクトを作成する際は、認証済みリクエストコンテキストの principal_id と恒久的に関連付けること。
  2. そのオブジェクトを読み取り・変更する後続リクエストでは、リクエストの principal_id がオブジェクトに保存された principal_id と一致するかサーバーが検証すること。
  3. ID が一致しない場合、サーバーは許可拒否エラーを返すこと。
このモデルにより、正しいベアラートークンがない限り、別のプリンシパルのデータを閲覧・変更することはできません。principal_id をリクエストボディで渡す必要はなく、また考慮されません。識別は検証済みトークンのみに基づきます。

セキュリティ要件

必須のセキュリティ対策

営業エージェント実装では 必須:
  • すべての認証済みリクエストでベアラートークンを検証する
  • プリンシパルベースのデータ分離を強制する
  • すべての通信を TLS で保護する
  • 認証失敗をログに記録しセキュリティ監視に活用する

推奨するセキュリティ対策

営業エージェント実装で 推奨:
  • プリンシパル単位のレート制限を実装する
  • トークンの有効期限とリフレッシュをサポートする
  • コンプライアンス向けの監査ログを提供する
  • 高セキュリティプリンシパル向けに IP 許可リストをサポートする