命名空间:microsoft.graph
重要
Microsoft Graph /beta 版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
为应用程序或 agentIdentityBlueprint 创建新的 federatedIdentityCredential 对象。
通过在Microsoft Entra应用程序注册或代理标识蓝图与计算平台的标识提供者之间配置信任关系,可以使用该平台颁发的令牌对Microsoft 标识平台进行身份验证,并调用Microsoft生态系统中的 API。 最多可以向应用程序或代理标识蓝图添加 20 个对象。
此 API 可用于以下国家级云部署。
| 全局服务 | 美国政府 L4 | 美国政府 L5 (DOD) | 由世纪互联运营的中国 |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
权限
为此 API 选择标记为最低特权的权限。 只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考。
应用程序的权限
| 权限类型 | 最低特权权限 | 更高特权权限 |
|---|---|---|
| 委派(工作或学校帐户) | Application.ReadWrite.All | 不可用。 |
| 委派(个人 Microsoft 帐户) | Application.ReadWrite.All | 不可用。 |
| 应用程序 | Application.ReadWrite.OwnedBy | Application.ReadWrite.All |
重要
在具有工作或学校帐户的委托方案中,必须为登录用户分配受支持的Microsoft Entra角色或具有支持的角色权限的自定义角色。 此作支持以下最低特权角色。
- 具有默认用户权限的非管理员成员用户 - 对于他们拥有的应用程序
- 应用程序开发人员 - 对于他们拥有的应用程序
- 云应用程序管理员
- 应用程序管理员
agentIdentityBlueprint 的权限
| 权限类型 | 最低特权权限 | 更高特权权限 |
|---|---|---|
| 委派(工作或学校帐户) | AgentIdentityBlueprint.Create | AgentIdentityBlueprint.ReadWrite.All、Directory.ReadWrite.All |
| 委派(个人 Microsoft 帐户) | 不支持。 | 不支持。 |
| 应用程序 | AgentIdentityBlueprint.Create | AgentIdentityBlueprint.ReadWrite.All、Directory.ReadWrite.All |
重要
AgentIdentity* 权限当前无法通过Microsoft Entra 管理中心上的 API 权限体验获得同意。 若要使用这些权限,可以通过Microsoft图形 API调用来同意这些权限,如以编程方式授予或撤销 API 权限中所述。 有关这些 权限的详细信息,请参阅管理代理标识 的权限。
使用委托权限时,必须为经过身份验证的用户分配受支持的Microsoft Entra角色或具有支持的角色权限的自定义角色。 此作支持以下最低特权角色。
- 代理 ID 管理员。
- 代理 ID 开发人员 - 创建代理标识蓝图。 具有此角色的主体被分配为其创建的蓝图的所有权,并且可以对该蓝图执行写入作。
HTTP 请求
对于 应用程序:
- 可以使用其 ID 或 appId 对应用程序进行寻址。 id 和 appId 在 Microsoft Entra 管理中心 中的应用注册中分别称为“对象 ID”和“应用程序 (客户端) ID”。
POST /applications/{id}/federatedIdentityCredentials
POST /applications(appId='{appId}')/federatedIdentityCredentials
对于 agentIdentityBlueprint:
POST /applications/{id}/microsoft.graph.agentIdentityBlueprint/federatedIdentityCredentials
请求标头
| 名称 | 说明 |
|---|---|
| Authorization | 持有者 {token}。 必填。 详细了解 身份验证和授权。 |
| Content-Type | application/json. 必需。 |
请求正文
在请求正文中,提供 federatedIdentityCredential 对象的 JSON 表示形式。
下表列出了创建 federatedIdentityCredential 时所需的属性。
| 属性 | 类型 | 说明 |
|---|---|---|
| 观众 | 字符串集合 | 必填。 可在外部令牌中显示的受众。 此字段是必需的,对于Microsoft Entra ID,应设置为 api://AzureADTokenExchange 。 它说明了Microsoft 标识平台在传入令牌的aud声明中应接受的内容。 此值表示外部标识提供者中的Microsoft Entra ID,并且跨标识提供者没有固定值 - 可能需要在标识提供者中创建新的应用程序注册,以充当此令牌的受众。 此字段只能接受单个值,限制为 600 个字符。 |
| claimsMatchingExpression | federatedIdentityExpression | 可为 NULL。 如果未设置, null 则默认为 。 允许对指定的声明使用与声明匹配的表达式。 如果定义了 claimsMatchingExpression , 则 subject 必须为 null。 有关支持的表达式语法和声明的列表,请访问 灵活 FIC 参考。 |
| 发行 | String | 必填。 外部标识提供者的 URL 和 必须与要交换的外部令牌的颁发者声明匹配。 颁发者和使用者的值的组合在应用上必须是唯一的。 其限制为 600 个字符。 |
| name | String | 必填。 联合标识凭据的唯一标识符,其限制为 120 个字符,并且必须对 URL 友好。 创建后,它是不可变的。 |
| subject | String | 可为 Null。 如果未设置, null 则默认为 。 外部标识提供者中外部软件工作负载的标识符。 与访问群体值一样,它没有固定的格式,因为每个标识提供者都使用自己的格式-有时是 GUID,有时是冒号分隔的标识符,有时是任意字符串。 此处的值必须与提供给 Microsoft Entra ID 的令牌中的子声明匹配。 其限制为 600 个字符。
颁发者和使用者的组合在应用上必须是唯一的。 如果定义了 subject , 则 claimsMatchingExpression 必须为 null。 |
响应
如果成功,此方法在 201 Created 响应正文中返回响应代码和 federatedIdentityCredential 对象。
示例
示例 1:为应用程序创建联合标识凭据
请求
POST https://graph.microsoft.com/beta/applications/bcd7c908-1c4d-4d48-93ee-ff38349a75c8/federatedIdentityCredentials/
Content-Type: application/json
{
"name": "testing02",
"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",
"@odata.id": "https://graph.microsoft.com/v2/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/directoryObjects/$/Microsoft.DirectoryServices.Application('bcd7c908-1c4d-4d48-93ee-ff38349a75c8')/federatedIdentityCredentials/d9b7bf1e-429e-4678-8132-9b00c9846cc4",
"id": "d9b7bf1e-429e-4678-8132-9b00c9846cc4",
"name": "testing02",
"issuer": "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0",
"subject": "a7d388c3-5e3f-4959-ac7d-786b3383006a",
"description": null,
"audiences": [
"api://AzureADTokenExchange"
]
}
示例 2:为 agentIdentityBlueprint 创建联合标识凭据
请求
POST https://graph.microsoft.com/beta/applications/bcd7c908-1c4d-4d48-93ee-ff38349a75c8/microsoft.graph.agentIdentityBlueprint/federatedIdentityCredentials/
Content-Type: application/json
{
"name": "testing02",
"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",
"@odata.id": "https://graph.microsoft.com/v2/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/directoryObjects/$/Microsoft.DirectoryServices.Application('bcd7c908-1c4d-4d48-93ee-ff38349a75c8')/federatedIdentityCredentials/d9b7bf1e-429e-4678-8132-9b00c9846cc4",
"id": "d9b7bf1e-429e-4678-8132-9b00c9846cc4",
"name": "testing02",
"issuer": "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0",
"subject": "a7d388c3-5e3f-4959-ac7d-786b3383006a",
"description": null,
"audiences": [
"api://AzureADTokenExchange"
]
}