title: プリンシパルとセキュリティ
プリンシパル(Principal) は AdCP における個別のクライアント/バイヤーを表します。営業エージェントはプリンシパルを用いてリクエストの送信者を特定し、バイヤー間のデータ分離を強制します。認証
すべてのリクエストは、標準的なAuthorization ヘッダーに含まれるベアラートークンで認証する必要があります。
principal_id に紐づけます。そのリクエスト内で行われるすべての処理は、認証済みプリンシパルのスコープに限定されます。
認証情報の取得や認証方式の詳細は Authentication を参照してください。
プリンシパルモデル
プリンシパルは次の要素で定義されます。principal_id(string): クライアントの一意な識別子(例:"acme_corp")platform_mappings(object):principal_idと広告配信プラットフォーム側の ID を対応付けるマップ(例:{"gam_advertiser_id": 12345})
データ分離
認証は厳格なデータ分離の基盤になります。営業エージェントは次のルールを 必ず 守ってください。MediaBuyなどのオブジェクトを作成する際は、認証済みリクエストコンテキストのprincipal_idと恒久的に関連付けること。- そのオブジェクトを読み取り・変更する後続リクエストでは、リクエストの
principal_idがオブジェクトに保存されたprincipal_idと一致するかサーバーが検証すること。 - ID が一致しない場合、サーバーは許可拒否エラーを返すこと。
principal_id をリクエストボディで渡す必要はなく、また考慮されません。識別は検証済みトークンのみに基づきます。
セキュリティ要件
必須のセキュリティ対策
営業エージェント実装では 必須:- すべての認証済みリクエストでベアラートークンを検証する
- プリンシパルベースのデータ分離を強制する
- すべての通信を TLS で保護する
- 認証失敗をログに記録しセキュリティ監視に活用する
推奨するセキュリティ対策
営業エージェント実装で 推奨:- プリンシパル単位のレート制限を実装する
- トークンの有効期限とリフレッシュをサポートする
- コンプライアンス向けの監査ログを提供する
- 高セキュリティプリンシパル向けに IP 許可リストをサポートする