名前空間: microsoft.graph
重要
Microsoft Graph の /beta バージョンの API は変更される可能性があります。 実稼働アプリケーションでこれらの API を使用することは、サポートされていません。 v1.0 で API を使用できるかどうかを確認するには、Version セレクターを使用します。
アプリケーションまたは agentIdentityBlueprint の新しい federatedIdentityCredential オブジェクトを作成するか、存在しない場合は、既存の federatedIdentityCredential オブジェクトのプロパティを更新します。
Microsoft Entra アプリケーション登録または agentIdentityBlueprint とコンピューティング プラットフォームの ID プロバイダーの間に信頼関係を構成することで、そのプラットフォームによって発行されたトークンを使用して、Microsoft ID プラットフォームで認証し、Microsoft エコシステム内の API を呼び出すことができます。 アプリケーションまたは agentIdentityBlueprint には最大 20 個のオブジェクトを追加できます。
この API は、次の国内クラウド展開で使用できます。
| グローバル サービス | 米国政府機関 L4 | 米国政府機関 L5 (DOD) | 21Vianet が運営する中国 |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
アクセス許可
この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。 アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。
アプリケーションのアクセス許可
| アクセス許可の種類 | 最小特権アクセス許可 | より高い特権のアクセス許可 |
|---|---|---|
| 委任 (職場または学校のアカウント) | Application.ReadWrite.All | 注意事項なし。 |
| 委任 (個人用 Microsoft アカウント) | Application.ReadWrite.All | 注意事項なし。 |
| アプリケーション | Application.ReadWrite.OwnedBy | Application.ReadWrite.All |
重要
職場または学校アカウントを使用してアクセスを委任するには、サインインしたユーザーに、サポートされている Microsoft Entra ロール、またはこの操作に必要なアクセス許可を付与するカスタム ロールが割り当てられている必要があります。 この操作では、必要最小限の特権のみを提供する次の組み込みロールがサポートされます。
- 既定のユーザー権限を持つ管理者以外のメンバー ユーザー (所有するアプリケーションの場合)
- アプリケーション開発者 - 所有しているアプリケーションの場合
- クラウド アプリケーション管理者
- アプリケーション管理者
agentIdentityBlueprint のアクセス許可
| アクセス許可の種類 | 最小特権アクセス許可 | より高い特権のアクセス許可 |
|---|---|---|
| 委任 (職場または学校のアカウント) | AgentIdentityBlueprint.ReadWrite.All | Directory.ReadWrite.All |
| 委任 (個人用 Microsoft アカウント) | サポートされていません。 | サポートされていません。 |
| アプリケーション | AgentIdentityBlueprint.ReadWrite.All | Directory.ReadWrite.All |
重要
- エージェント ID ブループリントまたはブループリント プリンシパルを作成したプリンシパルは、自動的に所有者として割り当てられます。
- 所有者は、エージェントIDロールを割り当てなくても、所有するブループリントに関連付けられたエージェントIDを作成および変更できます。
- 非所有者が委任されたシナリオで職場または学校アカウントを使用してこの API を呼び出すには、管理者にサポートされている Microsoft Entra ロールが割り当てられている必要があります。 この操作では、次の最小特権の組み込みロールがサポートされます。
HTTP 要求
アプリケーションの場合:
- アプリケーションは、 ID または appId のいずれかを使用してアドレス指定できます。 id と appId は、Microsoft Entra 管理センターでのアプリの登録において、それぞれオブジェクト ID とアプリケーション (クライアント) ID と呼ばれます。
PATCH /applications/{id}/federatedIdentityCredentials(name='{name}')
PATCH /applications(appId='{appId}')/federatedIdentityCredentials(name='{name}')
agentIdentityBlueprint の場合:
PATCH /applications/{id}/microsoft.graph.agentIdentityBlueprint/federatedIdentityCredentials(name='{name}')
要求ヘッダー
| 名前 | 説明 |
|---|---|
| Authorization | ベアラー {token}。 必須です。 認証と認可についての詳細をご覧ください。 |
| Content-Type | application/json. Required. |
| Prefer |
create-if-missing. UPSERT 動作に必須です。それ以外の場合、要求は更新操作として扱われます。 |
要求本文
要求の本文で、 federatedIdentityCredential オブジェクトの JSON 表現を指定します。
次の表に、 federatedIdentityCredential を作成するときに必要なプロパティの一覧を示します。 要求 URL の一部として name プロパティが必須であることに注意してください。
| プロパティ | 型 | 説明 |
|---|---|---|
| 対象ユーザー | String collection | 外部トークンに表示できる対象ユーザー。 このフィールドは必須であり、Microsoft Entra IDには api://AzureADTokenExchange に設定する必要があります。 これは、受信トークンの aud クレームで受け入れるMicrosoft ID プラットフォーム内容を示します。 この値は、外部 ID プロバイダーの Microsoft Entra ID を表し、ID プロバイダー間で固定された値はありません。このトークンの対象ユーザーとして機能するには、ID プロバイダーで新しいアプリケーション登録を作成する必要がある場合があります。 このフィールドは 1 つの値のみを受け入れることができ、600 文字の制限があります。 必須です。 |
| claimsMatchingExpression | federatedIdentityExpression | Null 許容型。 既定値は null (設定されていない場合) になります。指定された要求に対して式を一致させる要求の使用を有効にします。
claimsMatchingExpression が定義されている場合、subject は null である必要があります。 サポートされている式の構文と要求の一覧については、 フレキシブル FIC リファレンスを参照してください。 |
| 発行者 | 文字列 | 外部 ID プロバイダーの URL であり、交換される外部トークンの発行者クレームと一致する必要があります。 発行者とサブジェクトの値の組み合わせは、アプリ上で一意である必要があります。 600 文字の制限があります。 必須です。 |
| subject | 文字列 | Null 許容型。 既定値は null (設定されていない場合) になります。 外部 ID プロバイダー内の外部ソフトウェア ワークロードの識別子。 対象ユーザーの値と同様に、各 ID プロバイダーが独自の形式 (GUID、コロンで区切られた識別子、任意の文字列) を使用するため、固定の形式はありません。 ここでの値は、Microsoft Entra ID に提示されたトークン内のサブ要求と一致する必要があります。 600 文字の制限があります。
発行者とサブジェクトの組み合わせは、アプリ上で一意である必要があります。
subject が定義されている場合は、claimsMatchingExpression がnullである必要があります。 |
応答
成功した場合、 名前 を持つアプリケーション オブジェクトが存在しない場合、このメソッドは 201 Created 応答コードと応答本文の新しい FederatedIdentityCredential オブジェクトを返します。
名前を持つアプリケーション オブジェクトが既に存在する場合、このメソッドは federatedIdentityCredential オブジェクトを更新し、204 No Content応答コードを返します。
例
例 1: アプリケーションが存在しない場合は、アプリケーションの新しい federatedIdentityCredential を作成する
次の例では、指定された 名前 値を持つ federatedIdentityCredential が存在しないため、federatedIdentityCredential を作成します。
要求
次の例は要求を示しています。
PATCH https://graph.microsoft.com/beta/applications(uniqueName='app-65278')/federatedIdentityCredentials(name='fic01-app-65278')
Content-Type: application/json
{
"issuer": "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0",
"subject": "a7d388c3-5e3f-4959-ac7d-786b3383006a",
"audiences": [
"api://AzureADTokenExchange"
]
}
応答
次の例は応答を示しています。
注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#applications('bcd7c908-1c4d-4d48-93ee-ff38349a75c8')/federatedIdentityCredentials/$entity",
"id": "d9b7bf1e-429e-4678-8132-9b00c9846cc4",
"name": "testing02fic01-app-65278",
"issuer": "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0",
"subject": "a7d388c3-5e3f-4959-ac7d-786b3383006a",
"description": null,
"audiences": [
"api://AzureADTokenExchange"
]
}
例 2: アプリケーションの既存の federatedIdentityCredential を更新する
次の例では、指定された 名前 値を持つ federatedIdentityCredential が存在するため、federatedIdentityCredential を更新します。
要求
次の例は要求を示しています。
PATCH https://graph.microsoft.com/beta/applications(uniqueName='app-65278')/federatedIdentityCredentials(name='fic01-app-65278')
Content-Type: application/json
Prefer: create-if-missing
{
"issuer": "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0",
"subject": "a7d388c3-5e3f-4959-ac7d-786b3383006a",
"audiences": [
"api://AzureADTokenExchange"
]
}
応答
次の例は応答を示しています。
HTTP/1.1 204 No Content
例 3: agentIdentityBlueprint に存在しない場合に、新しい federatedIdentityCredential を作成する
次の例では、指定された 名前 値を持つ federatedIdentityCredential が存在しないため、agentIdentityBlueprint の federatedIdentityCredential を作成します。
要求
次の例は要求を示しています。
PATCH https://graph.microsoft.com/beta/applications(uniqueName='app-65278')/microsoft.graph.agentIdentityBlueprint/federatedIdentityCredentials(name='fic01-app-65278')
Content-Type: application/json
{
"issuer": "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0",
"subject": "a7d388c3-5e3f-4959-ac7d-786b3383006a",
"audiences": [
"api://AzureADTokenExchange"
]
}
応答
次の例は応答を示しています。
注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#applications('bcd7c908-1c4d-4d48-93ee-ff38349a75c8')/federatedIdentityCredentials/$entity",
"id": "d9b7bf1e-429e-4678-8132-9b00c9846cc4",
"name": "testing02fic01-app-65278",
"issuer": "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0",
"subject": "a7d388c3-5e3f-4959-ac7d-786b3383006a",
"description": null,
"audiences": [
"api://AzureADTokenExchange"
]
}