Upsert federatedIdentityCredential
命名空间:microsoft.graph
为应用程序创建新的 federatedIdentityCredential 对象(如果存在),或更新现有 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 |
HTTP 请求
可以使用其 ID 或 appId 对应用程序进行寻址。 id 和 appId 在 Microsoft Entra 管理中心 中的应用注册中分别称为“对象 ID”和“应用程序 (客户端) ID”。
PATCH /applications/{id}/federatedIdentityCredentials(name='{name}')
PATCH /applications(appId='{appId}')/federatedIdentityCredentials(name='{name}')
请求标头
名称 | 说明 |
---|---|
Authorization | 持有者 {token}。 必填。 详细了解 身份验证和授权。 |
Content-Type | application/json. 必需。 |
Prefer |
create-if-missing . 对于 upsert 行为是必需的,否则请求被视为更新操作。 |
请求正文
在请求正文中,提供 federatedIdentityCredential 对象的 JSON 表示形式。 下表列出了创建 federatedIdentityCredential 时所需的属性。 请注意, 名称 属性作为请求 URL 的一部分是必需的。
属性 | 类型 | 说明 |
---|---|---|
观众 | 字符串集合 | 可在外部令牌中显示的受众。 此字段是必需的,对于Microsoft Entra ID,应设置为 api://AzureADTokenExchange 。 它说明了Microsoft 标识平台在传入令牌的aud 声明中应接受的内容。 此值表示外部标识提供者中的Microsoft Entra ID,并且跨标识提供者没有固定值 - 可能需要在标识提供者中创建新的应用程序注册,以充当此令牌的受众。 此字段只能接受单个值,限制为 600 个字符。 必填。 |
发行 | String | 外部标识提供者 和 的 URL 必须与要交换的外部令牌的颁发者声明匹配。 颁发者和使用者的值的组合在应用上必须是唯一的。 其限制为 600 个字符。 必填。 |
subject | String | 必填。 外部标识提供者中外部软件工作负载的标识符。 与访问群体值一样,它没有固定的格式,因为每个标识提供者都使用自己的格式-有时是 GUID,有时是冒号分隔的标识符,有时是任意字符串。 此处的值必须与提供给 Microsoft Entra ID 的令牌中的子声明匹配。 其限制为 600 个字符。 颁发者和使用者的组合在应用上必须是唯一的。 |
响应
如果成功,如果 名称 为的应用程序对象不存在,此方法在 201 Created
响应正文中返回响应代码和新的 federatedIdentityCredential 对象。
如果 已存在名称 为的应用程序对象,此方法将更新 federatedIdentityCredential 对象并返回 204 No Content
响应代码。
示例
示例 1:创建新的 federatedIdentityCredential(如果不存在)
以下示例创建 federatedIdentityCredential,因为不存在具有指定 名称 值的 federatedIdentityCredential。
请求
以下示例显示了一个请求。
PATCH https://graph.microsoft.com/v1.0/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/v1.0/$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/v1.0/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