エージェントは認証および認可フロー中に異なるエンティティタイプとその関係を特定するために、専門的なトークンクレームを使用します。 これらの請求により、代理店の運営における適切な帰属、保険証券評価、監査記録が可能になります。 本記事では、エージェントアプリケーションにおけるトークン請求について概説し、トークンがどのようにエージェントエンティティとその認証フローにおける役割を識別するかを詳述します。
エージェント ID を使用するクライアントは、リソース サーバーで使用するために発行されたアクセス トークンを不透明として扱い、解析を試みないことを期待されます。 ただし、エージェントに発行されたアクセス トークンを受け取るリソース サーバーは、トークンを解析して検証し、承認のために要求を抽出する必要があります。
コアトークンクレームタイプ
リソース アクセスに使用される ID に対して発行されるトークンには、通常、問題をMicrosoft Entraするアクセス トークンに表示される要求が含まれます。 詳細については、 アクセストークン請求の参考文献をご覧ください。 以下の例は、エージェントに発行されたサンプルアクセストークンが自律的に動作している様子を示しています。
{
"aud": "f2510d34-8dca-4ab8-a0bc-aaec4d3a3e36",
"iss": "https://sts.windows.net/00000001-0000-0ff1-ce00-000000000000/",
"iat": 1753392285,
"nbf": 1753392285,
"exp": 1753421385,
"aio": "Y2JgYGhn1nzmErKqi0vc4Fr6H22/C5/4FP+xZbZYpik8nRkp+gEA",
"appid": "aaaaaaaa-1111-2222-3333-444444444444",
"appidacr": "2",
"idp": "https://sts.windows.net/00000001-0000-0ff1-ce00-000000000000/",
"idtyp": "app",
"oid": "bbbbbbbb-1111-2222-3333-444444444444",
"rh": "1.AAAAAQAAAAAA8Q_OAAAAAAAAADQNUfLKjbhKoLyq7E06PjYAAAAAAA.",
"sub": "cccccccc-1111-2222-3333-444444444444",
"tid": "00000001-0000-0ff1-ce00-000000000000",
"uti": "m5RaaRnoFUyp2TbSCAAAAA",
"ver": "1.0",
"xms_act_fct": "3 9 11",
"xms_ftd": "Z5DrW4HFOkR_Lz0M5qETa260d2-fO6seMZJ_tOwRNuc",
"xms_idrel": "7 10",
"xms_sub_fct": "9 3 11",
"xms_tnt_fct": "3 9",
"xms_par_app_azp": "30cf4c22-9985-4ef7-8756-91cc888176bd"
}
v2トークンではazpではなくappidが見えます。 どちらもエージェントIDのアプリケーションIDを指しています。
トークンには、これまでアクセストークンに発行されていないいくつかのクレームが含まれていることに気づくでしょう。 以下のオプション請求も、トークンがエージェントのアイデンティティ用であることを識別するために支持されています。 また、エージェントのアイデンティティがどのような状況で行動しているかをより明確に示します。
xms_tnt_fctxms_sub_fctxms_act_fctxms_par_app_azp
| 要求名 | 説明 |
|---|---|
tid |
エージェントIDが登録されている顧客テナントのテナントID。 トークンが有効なのはテナントです。 |
sub |
主体(認証対象のユーザー、サービスプリンシパル、またはエージェントの身元) |
oid |
対象のオブジェクトID。 ユーザー委任シナリオのためのユーザーオブジェクトID。 アプリのみのシナリオ向けのエージェントIDサービスプリンシパルOID。 ユーザー偽装シナリオ用のエージェントのユーザー アカウント OID。 |
idtyp |
対象となる法人の種類。 値はuser,appです。 |
tid |
エージェントIDが登録されている顧客テナントのテナントID。 |
xms_idrel |
主体とリソーステナントの関係。 詳細はこちら |
aud |
オーディエンス(エージェントがアクセスしようとしているAPI) |
azp または appid |
認可された当事者/アクター。 エージェントIDのアプリケーションID。 監査ログにおける適切なクライアント帰属を可能にします。 |
scp |
範囲。 ユーザーコンテキストトークンの権限を委譲します。 ユーザー委任とエージェントのユーザー アカウント シナリオにのみ存在します。 アプリのみのシナリオでは空または/ |
xms_act_fct |
俳優の側面が主張します。 詳細はこちら |
xms_sub_fct |
主体の側面は主張しています。 詳しくはこちらをご覧ください。 |
xms_tnt_fct |
テナントの側面請求。 詳しくはこちらをご覧ください。 |
xms_par_app_azp |
認可当事者の親申請。 詳しくはこちらをご覧ください。 |
xms_idrel
xms_idrel請求は、トークンが発行されるエンティティとリソーステナントとのアイデンティティ関係を示します。
以下は xms_idrel 請求の可能な値を示します。 これは多値請求であり、複数の値を持つことができ、空間で区切られています。 値は整数で表されます。 有効な値は常に1から始まる奇数です。
| 請求額 | 説明 |
|---|---|
1 |
会員ユーザー |
3 |
MSA会員ユーザー |
5 |
ゲスト ユーザー |
7 |
サービス プリンシパル |
9 |
装置の原理 |
11 |
GDAPユーザー |
13 |
SPLess アプリケーション |
15 |
パススルー |
17 |
プロファイルを持つネイティブアイデンティティユーザー |
19 |
ネイティブアイデンティティユーザー |
21 |
ネイティブアイデンティティチームの会議参加者 |
23 |
パススルー認証済みTeams会議参加者 |
25 |
ネイティブアイデンティティのコンテンツ共有ユーザー |
27 |
完全に同期したMTOメンバー |
29 |
弱いMTOユーザー |
31 |
DAPユーザー |
33 |
フェデレーテッド・マネージド・アイデンティティ |
xms_tnt_fct、xms_sub_fct、xms_act_fct請求
xms_tnt_fct請求は、tid請求で識別される借主を記述します。
xms_sub_fct請求項とxms_act_fct請求項は、それぞれトークンの対象(sub)と行為者(azpまたはappid)に関する事実を記述するために用いられます。 これらの主張は、エージェントの身元やその行動についてより深い文脈を提供します。
以下はこれらの主張に関する関連する価値です。 これらの請求は多重価値を持ち、複数の値を持つことができ、間隔で区切られています。 有効な値は常に1から始まる奇数です。
| 請求額 | 説明 |
|---|---|
11 |
エージェントアイデンティティ |
13 |
AgentIDUser |
シナリオや検証ロジックに関係のない値は無視すべきです。 応募に関係のない値は無視しましょう。 これらの主張の価値の順序を決めないでください。
xms_par_app_azp
xms_par_app_azp請求は、認可当事者の親アプリケーション(azpまたはappid)を特定するために用いられます。 含まれている場合はGUIDです。 請求を使って親を特定することができます
監査のために親アプリケーションIDを記録してください。 Microsoft Entra IDサインイン ログには常に親 ID (使用可能な場合) が含まれるため、リソース サーバーでも同じ操作を行う必要があります。 承認決定に親アプリケーションIDを使うことは推奨されません。多くのエージェントが広範囲にアクセスしてしまうためです。
シナリオごとの例
以下のセクションでは、いくつかの認証シナリオとそれぞれの関連する主張について説明します。
人間のユーザーを代表して行動するエージェントのアイデンティティ
この場合、エージェントのアイデンティティは人間のユーザーを代表して行動しています。 アクセストークンには以下の主張が含まれています。
| 要求名 | 説明 |
|---|---|
tid |
顧客テナントのテナントID |
idtyp |
user (主語がユーザーであることを示す) |
xms_idrel |
1 (メンバーユーザーを示す場合、他にも可能性があります) |
azp / appid |
エージェント識別のアプリケーションID |
scp |
エージェントのアイデンティティに付与された委任権限 |
oid |
ユーザーのオブジェクトID |
aud |
トークンのリソースオーディエンス |
xms_act_fct |
11 (エージェントアイデンティティ) |
エージェントのアイデンティティが自律的に行動する
この場合、エージェントの同一性は自身の同一性を用いて行動します。 アクセストークンには以下の主張が含まれています。
| 要求名 | 説明 |
|---|---|
tid |
顧客テナントのテナントID |
idtyp |
app (主題が申請であることを示す) |
xms_idrel |
7 (サービスプリンシパルを示す) |
azp / appid |
エージェント識別のアプリケーションID |
roles |
エージェント識別に付与された権限 |
oid |
エージェント識別のオブジェクトID |
xms_act_fct |
11 (エージェントアイデンティティ) |
xms_sub_fct |
11 (エージェントアイデンティティ) |
aud |
トークンのリソースオーディエンス |
scp |
空か / (スコープなし)。 |
エージェント ID は、エージェントのユーザー アカウントを介して自律的に動作します
このシナリオでは、エージェントは、エージェント ID に関連付けられているエージェントのユーザー アカウントを使用してトークンを取得します。 アクセストークンには以下の主張が含まれています。
| 要求名 | 説明 |
|---|---|
tid |
顧客テナントのテナントID |
idtyp |
user (主語がユーザーであることを示す) |
xms_idrel |
1 (メンバーユーザーを示す場合、他にも可能性があります) |
azp / appid |
エージェント識別のアプリケーションID |
scp |
エージェントのアイデンティティに付与された委任権限 |
oid |
エージェントのユーザー アカウントのオブジェクト ID |
xms_act_fct |
11 (エージェントの身分) |
xms_sub_fct |
13 (エージェントのユーザー アカウント) |
aud |
トークンのリソースオーディエンス |