将应用配置为信任外部标识提供者
本文介绍如何在 Microsoft Entra ID 中管理应用程序上的联合标识凭据。 联合标识凭据在应用程序与外部标识提供者 (IdP) 之间创建信任关系。
然后,你可以将外部软件工作负荷配置为将来自外部 IdP 的令牌交换为来自 Microsoft 标识平台的访问令牌。 外部工作负荷可以访问 Microsoft Entra 保护的资源,而无需管理机密(在支持的场景中)。 若要详细了解令牌交换工作流,请阅读工作负荷标识联合验证。
本文介绍如何在 Microsoft Entra ID 中的应用程序上创建、列出和删除联合标识凭据。
重要注意事项和限制
若要创建、更新或删除联合标识凭据,则执行操作的帐户必须具有应用程序管理员、应用程序开发人员、云应用程序管理员或应用程序所有者角色。 更新联合标识凭据需要 microsoft.directory/applications/credentials/update 权限。
最多可以向应用程序或用户分配的托管标识添加 20 个联合标识凭据。
配置联合标识凭据时,需要提供几条重要信息:
issuer 和 subject 是建立信任关系所需的关键信息。
issuer
和subject
的组合在应用中必须唯一。 当外部软件工作负荷请求 Microsoft 标识平台来交换访问令牌的外部令牌时,将针对外部令牌中提供的issuer
和subject
声明来检查联合标识凭据的 issuer 和 subject 值。 如果该验证检查通过,Microsoft 标识平台会向外部软件工作负荷发出访问令牌。issuer 是外部身份提供商的 URL,必须与要交换的外部令牌的
issuer
声明相匹配。 必需。 如果issuer
声明具有值中的前导或尾随空格,则会阻止令牌交换。 此字段的字符限制为 600 个字符。subject 是外部标识提供者的标识符,必须与要交换的外部令牌的
sub
(subject
) 声明相匹配。 subject 没有固定格式,因为每个 IdP 都使用自己的格式,格式有时是 GUID,有时是冒号分隔的标识符,有时是任意字符串。 此字段的字符限制为 600 个字符。重要
“subject”设置值必须与 GitHub 工作流配置中的配置完全匹配。 否则,Microsoft 标识平台将查看传入的外部令牌,并拒绝交换访问令牌。 你不会收到错误消息,交换失败且没有错误。
重要
如果在 subject 设置中意外添加了不正确的外部工作负荷信息,则已成功创建联合标识凭据,且未出现错误。 在令牌交换失败之前,此错误不会变得明显。
audiences 列出了可出现在外部令牌中的受众。 必需。 必须添加一个受众值,该值限制为 600 个字符。 建议的值为“api://AzureADTokenExchange”。 它表示 Microsoft 标识平台必须接受传入令牌中的
aud
声明。name 是联合标识凭据的唯一标识符。 必需。 此字段的字符限制为 3-120 个字符,并且必须对 URL 友好。 支持字母数字、短划线或下划线字符,第一个字符必须是字母数字字符。 它在创建后就不可变。
description 是用户提供的联合标识凭据的说明。 可选。 Microsoft Entra ID 不会验证或检查说明。 此字段的上限为 600 个字符。
任何联合标识凭据属性值都不支持通配符。
若要详细了解受支持的区域、传播联合凭据更新的时间、支持的颁发者等,请阅读联合标识凭据的重要注意事项和限制。
先决条件
在 Microsoft Entra ID 中创建应用注册。 授予应用访问外部软件工作负荷的目标 Azure 资源的权限。
找到你在以下步骤中需要的应用的对象 ID,而不是应用程序(客户端)ID。 可以在 Microsoft Entra管理中心找到应用的对象 ID。 转到应用程序注册的列表,然后选择你的应用注册。 在“概述”->“基本信息”中,找到“对象 ID”。
获取外部 IdP 和软件工作负荷的 subject 和 issuer 信息,以下步骤中需要这些信息。
在应用上配置联合标识凭据
GitHub 操作
若要为 GitHub 操作添加联合标识,请执行以下步骤:
在 Microsoft Entra 管理中心的应用注册体验中查找应用注册。 在左侧导航窗格中选择“证书和机密”,选择“联合凭据”选项卡,然后选择“添加凭据”。
在“联合凭据方案”下拉框中,选择“部署 Azure 资源的 GitHub 操作”。
为 GitHub Actions 工作流程指定“组织”和“存储库”。
对于“实体类型”,请选择“环境”、“分支”、“拉取请求”或“标记”,并指定值。 值必须与 GitHub 工作流中的配置完全匹配。 分支和标记不支持模式匹配。 如果推送中工作流针对多个分支或标记运行,请指定一个环境。 有关详细信息,请阅读示例。
为联合凭据添加“名称”。
“颁发者”、“受众”和“主题标识符”字段会根据你输入的值自动填充。
选择“添加”以配置联合凭据。
将 Microsoft Entra 应用程序注册中的以下值用于 GitHub 工作流:
AZURE_CLIENT_ID
应用程序(客户端)IDAZURE_TENANT_ID
目录(租户)ID以下屏幕截图演示如何复制应用程序 ID 和租户 ID。
AZURE_SUBSCRIPTION_ID
你的订阅 ID。 若要获取订阅 ID,请在 Azure 门户中打开“订阅”并找到你的订阅。 然后复制“订阅 ID”。
实体类型示例
分支示例
对于主分支上的推送或拉取请求事件触发的工作流,请执行以下操作:
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
将“实体类型”指定为“分支”,将“GitHub 分支名称”指定为“main”。
环境示例
对于绑定到名为“production”的环境的“作业”,请执行以下操作:
on:
push:
branches:
- main
jobs:
deployment:
runs-on: ubuntu-latest
environment: production
steps:
- name: deploy
# ...deployment-specific steps
将“实体类型”指定为“环境”,将“GitHub 环境名称”指定为“production”。
标记示例
例如,对于目标为标记“v2”的推送触发的工作流,请执行以下操作:
on:
push:
# Sequence of patterns matched against refs/heads
branches:
- main
- 'mona/octocat'
- 'releases/**'
# Sequence of patterns matched against refs/tags
tags:
- v2
- v1.*
将“实体类型”指定为“标记”,将“GitHub 标记名称”指定为“v2”。
拉取请求示例
对于拉取请求事件触发的工作流,请将“实体类型”指定为“拉取请求”
Kubernetes
在 Microsoft Entra 管理中心的应用注册体验中查找应用注册。 在左侧导航窗格中选择“证书和机密”,选择“联合凭据”选项卡,然后选择“添加凭据”。
从下拉菜单中选择“访问 Azure 资源的 Kubernetes”场景。
填写“群集证书颁发者 URL”、“命名空间”、“服务帐户名称”和“名称”字段:
- “群集证书颁发者 URL”是托管群集的 OIDC 证书颁发者 URL 或自托管群集的 OIDC 证书颁发者 URL。
- “服务帐户名称”是 Kubernetes 服务帐户的名称,它为 Pod 中运行的进程提供标识。
- “命名空间”是服务帐户命名空间。
- “Name”是联合凭据的名称,以后将无法更改。
其他标识提供者
在 Microsoft Entra 管理中心的应用注册体验中查找应用注册。 在左侧导航窗格中选择“证书和机密”,选择“联合凭据”选项卡,然后选择“添加凭据”。
从下拉菜单中选择“其他证书颁发者”场景。
指定以下字段:
- Name 是联合凭据的名称,以后将无法更改。
- 主题标识符:必须与外部标识提供者颁发的令牌中的
sub
声明匹配。 - 证书颁发者:必须与外部标识提供者颁发的令牌中的
iss
声明匹配。 符合 OIDC 发现规范的 URL。Microsoft Entra ID 使用此颁发者 URL 提取验证令牌所需的密钥。
列出应用上的联合标识凭据
在 Microsoft Entra 管理中心的应用注册体验中查找应用注册。 在左侧导航窗格中选择“证书和机密”,然后选择“联合凭据”选项卡。随即会列出应用上配置的联合凭据。
从应用中删除联合标识凭据
在 Microsoft Entra 管理中心的应用注册体验中查找应用注册。 在左侧导航窗格中选择“证书和机密”,然后选择“联合凭据”选项卡。随即会列出应用上配置的联合凭据。
若要删除联合标识凭据,请选择凭据的“删除”图标。
先决条件
- 如果还没有 Azure 帐户,请先注册试用帐户,然后再继续。
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
- 在 Microsoft Entra ID 中创建应用注册。 授予应用访问外部软件工作负荷的目标 Azure 资源的权限。
- 查找应用的对象 ID、应用(客户端)ID 或标识符 URI,以下步骤中需要这些信息。 可以在 Microsoft Entra 管理中心找到这些值。 转到已注册应用程序的列表,然后选择你的应用注册。 在 Overview->Essentials 中,获取对象 ID、应用程序(客户端)ID 或应用程序 ID URI 值,以下步骤中需要这些信息。
- 获取外部 IdP 和软件工作负荷的主题和颁发者信息,以下步骤中需要这些信息。
在应用上配置联合标识凭据
运行 az ad app federated-credential create 命令,在应用上创建新的联合标识凭据。
id
参数指定应用程序的标识符 URI、应用程序 ID 或对象 ID。 parameters
参数以 JSON 格式指定用于创建联合标识凭据的参数。
GitHub Actions 示例
name 指定联合标识凭据的名称。
issuer 标识 GitHub OIDC 提供程序的路径:https://token.actions.githubusercontent.com/
。 此颁发者将受 Azure 应用程序信任。
subject 会标识 GitHub Actions 工作流的 GitHub 组织、存储库和环境。 当 GitHub Actions 工作流请求 Microsoft 标识平台将 GitHub 令牌交换为访问令牌时,便会根据提供的 GitHub 令牌检查联合标识凭据中的值。 在 Azure 授予访问令牌之前,请求必须符合此处定义的条件。
- 对于绑定到环境的作业:
repo:< Organization/Repository >:environment:< Name >
- 对于未绑定到环境的作业,请根据用于触发工作流的 ref 路径包括分支/标记的 ref 路径:
repo:< Organization/Repository >:ref:< ref path>
。 例如repo:n-username/ node_express:ref:refs/heads/my-branch
或repo:n-username/ node_express:ref:refs/tags/my-tag
。 - 对于由拉取请求事件触发的工作流:
repo:< Organization/Repository >:pull-request
。
az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "Testing",
"issuer": "https://token.actions.githubusercontent.com",
"subject": "repo:octo-org/octo-repo:environment:Production",
"description": "Testing",
"audiences": [
"api://AzureADTokenExchange"
]
}
Kubernetes 示例
issuer 是服务帐户证书颁发者 URL(托管群集的 OIDC 证书颁发者 URL 或自托管群集的 OIDC 证书颁发者 URL)。
subject 是颁发给服务帐户的令牌中的使用者名称。 Kubernetes 对使用者名称使用以下格式:system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>
。
“name”是联合凭据的名称,以后将无法更改。
audiences 列出了可出现在外部令牌中的受众。 此字段是必需的。 建议的值为“api://AzureADTokenExchange”。
az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "Kubernetes-federated-credential",
"issuer": "https://aksoicchinanorth.blob.core.chinacloudapi.cn/aaaabbbb-0000-cccc-1111-dddd2222eeee/",
"subject": "system:serviceaccount:erp8asle:pod-identity-sa",
"description": "Kubernetes service account federated credential",
"audiences": [
"api://AzureADTokenExchange"
]
}
列出应用上的联合标识凭据
运行 az ad app federated-credential list 命令,列出应用中的联合标识凭据。
id 参数指定应用程序的标识符 URI、应用程序 ID 或对象 ID。
az ad app federated-credential list --id 00001111-aaaa-2222-bbbb-3333cccc4444
获取应用的联合标识凭据
运行 az ad app federated-credential show 命令,获取应用的联合标识凭据。
id 参数指定应用程序的标识符 URI、应用程序 ID 或对象 ID。
federated-credential-id 指定联合标识凭据的 ID 或名称。
az ad app federated-credential show --id 00001111-aaaa-2222-bbbb-3333cccc4444 --federated-credential-id c79f8feb-a9db-4090-85f9-90d820caa0eb
从应用中删除联合标识凭据
运行 az ad app federated-credential delete 命令,从应用中删除联合标识凭据。
id 参数指定应用程序的标识符 URI、应用程序 ID 或对象 ID。
federated-credential-id 指定联合标识凭据的 ID 或名称。
az ad app federated-credential delete --id 00001111-aaaa-2222-bbbb-3333cccc4444 --federated-credential-id c79f8feb-a9db-4090-85f9-90d820caa0eb
先决条件
- 若要运行示例脚本,可使用 Azure PowerShell 在本地运行脚本,如下一部分所述。
- 在 Microsoft Entra ID 中创建应用注册。 授予应用访问外部软件工作负荷的目标 Azure 资源的权限。
- 找到你在以下步骤中需要的应用的对象 ID,而不是应用程序(客户端)ID。 可以在 Microsoft Entra管理中心找到应用的对象 ID。 转到已注册应用程序的列表,然后选择你的应用注册。 在“概述”->“基本信息”中,找到对象 ID。
- 获取外部 IdP 和软件工作负荷的主题和颁发者信息,以下步骤中需要这些信息。
在本地配置 Azure PowerShell
若要在本文情景中本地使用 Azure PowerShell:
安装最新版本的 Azure PowerShell(如果尚未安装)。
登录 Azure。
Connect-AzAccount -Environment AzureChinaCloud
-
Install-Module -Name PowerShellGet -AllowPrerelease
在下一步运行此命令后,可能需要
Exit
退出当前 PowerShell 会话。 安装
Az.Resources
模块的预发布版本,以执行本文中的联合标识凭据操作。Install-Module -Name Az.Resources -AllowPrerelease
在应用上配置联合标识凭据
运行 New-AzADAppFederatedCredential cmdlet,在应用程序上创建新的联合标识凭据。
GitHub Actions 示例
- ApplicationObjectId:你先前在 Microsoft Entra ID 中注册的应用的对象 ID(不是应用程序(客户端)ID)。
- Issuer 将 GitHub 标识为外部令牌颁发者。
- Subject 会标识 GitHub Actions 工作流的 GitHub 组织、存储库和环境。 当 GitHub Actions 工作流请求 Microsoft 标识平台将 GitHub 令牌交换为访问令牌时,便会根据提供的 GitHub 令牌检查联合标识凭据中的值。
- 对于绑定到环境的作业:
repo:< Organization/Repository >:environment:< Name >
- 对于未绑定到环境的作业,请根据用于触发工作流的 ref 路径包括分支/标记的 ref 路径:
repo:< Organization/Repository >:ref:< ref path>
。 例如repo:n-username/ node_express:ref:refs/heads/my-branch
或repo:n-username/ node_express:ref:refs/tags/my-tag
。 - 对于由拉取请求事件触发的工作流:
repo:< Organization/Repository >:pull-request
。
- 对于绑定到环境的作业:
- “Name”是联合凭据的名称,以后将无法更改。
- Audience 列出了可出现在外部令牌中的受众。 此字段是必需的。 建议的值为“api://AzureADTokenExchange”。
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://token.actions.githubusercontent.com/' -Name 'GitHub-Actions-Test' -Subject 'repo:octo-org/octo-repo:environment:Production'
Kubernetes 示例
- ApplicationObjectId:你先前在 Microsoft Entra ID 中注册的应用的对象 ID(不是应用程序(客户端)ID)。
- Issuer 是服务帐户证书颁发者 URL(托管群集的 OIDC 证书颁发者 URL 或自托管群集的 OIDC 证书颁发者 URL)。
- Subject 是颁发给服务帐户的令牌中的使用者名称。 Kubernetes 对使用者名称使用以下格式:
system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>
。 - “Name”是联合凭据的名称,以后将无法更改。
- Audience 列出了可出现在外部令牌的
aud
声明中的受众。
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://aksoicchinanorth.blob.core.chinacloudapi.cn/aaaabbbb-0000-cccc-1111-dddd2222eeee/' -Name 'Kubernetes-federated-credential' -Subject 'system:serviceaccount:erp8asle:pod-identity-sa'
列出应用上的联合标识凭据
运行 Get-AzADAppFederatedCredential cmdlet,列出应用程序的联合标识凭据。
Get-AzADApplication -ObjectId $app | Get-AzADAppFederatedCredential
获取应用的联合标识凭据
运行 Get-AzADAppFederatedCredential cmdlet,按 ID 从应用程序获取联合标识凭据。
Get-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -FederatedCredentialId $credentialId
从应用中删除联合标识凭据
运行 Remove-AzADAppFederatedCredential cmdlet,从应用程序中删除联合标识凭据。
Remove-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -FederatedCredentialId $credentialId
先决条件
在 Microsoft Entra ID 中创建应用注册。 授予应用访问外部软件工作负荷的目标 Azure 资源的权限。
找到你在以下步骤中需要的应用的对象 ID,而不是应用程序(客户端)ID。 可以在 Microsoft Entra管理中心找到应用的对象 ID。 转到已注册应用程序的列表,然后选择你的应用注册。 在“概述”->“基本信息”中,找到对象 ID。
获取外部 IdP 和软件工作负荷的主题和颁发者信息,以下步骤中需要这些信息。
Microsoft Graph 版本终结点 (https://microsoftgraph.chinacloudapi.cn
) 公开 REST API 以在应用程序上创建、更新、删除 federatedIdentityCredentials。 启动 Azure Cloud Powershell 并登录到租户,以便从 AZ CLI 运行 Microsoft Graph 命令。
在应用上配置联合标识凭据
GitHub 操作
运行以下方法,在应用上创建新的联合标识凭据(由应用的对象 ID 指定)。 issuer 将 GitHub 标识为外部令牌颁发者。 subject 会标识 GitHub Actions 工作流的 GitHub 组织、存储库和环境。 当 GitHub Actions 工作流请求 Microsoft 标识平台将 GitHub 令牌交换为访问令牌时,便会根据提供的 GitHub 令牌检查联合标识凭据中的值。
az rest --method POST --uri 'https://microsoftgraph.chinacloudapi.cn/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials' --body '{"name":"Testing","issuer":"https://token.actions.githubusercontent.com","subject":"repo:octo-org/octo-repo:environment:Production","description":"Testing","audiences":["api://AzureADTokenExchange"]}'
你会获得响应:
{
"@odata.context": "https://microsoftgraph.chinacloudapi.cn/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
name:Azure 应用程序的名称。
issuer:GitHub OIDC 提供程序的路径:https://token.actions.githubusercontent.com
。 此颁发者将受 Azure 应用程序信任。
subject:在 Azure 授予访问令牌之前,请求必须符合此处定义的条件。
- 对于绑定到环境的作业:
repo:< Organization/Repository >:environment:< Name >
- 对于未绑定到环境的作业,请根据用于触发工作流的 ref 路径包括分支/标记的 ref 路径:
repo:< Organization/Repository >:ref:< ref path>
。 例如repo:n-username/ node_express:ref:refs/heads/my-branch
或repo:n-username/ node_express:ref:refs/tags/my-tag
。 - 对于由拉取请求事件触发的工作流:
repo:< Organization/Repository >:pull-request
。
audiences 列出了可出现在外部令牌中的受众。 此字段是必需的。 建议的值为“api://AzureADTokenExchange”。
Kubernetes 示例
运行以下方法,在应用上配置联合标识凭据,并创建与 Kubernetes 服务帐户的信任关系。 指定下列参数:
- issuer 是服务帐户证书颁发者 URL(托管群集的 OIDC 证书颁发者 URL 或自托管群集的 OIDC 证书颁发者 URL)。
- subject 是颁发给服务帐户的令牌中的使用者名称。 Kubernetes 对使用者名称使用以下格式:
system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>
。 - “name”是联合凭据的名称,以后将无法更改。
- audiences 列出了可出现在外部令牌中的受众。 此字段是必需的。 建议的值为“api://AzureADTokenExchange”。
az rest --method POST --uri 'https://microsoftgraph.chinacloudapi.cn/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials' --body '{"name":"Kubernetes-federated-credential","issuer":"https://aksoicchinanorth.blob.core.chinacloudapi.cn/aaaabbbb-0000-cccc-1111-dddd2222eeee/","subject":"system:serviceaccount:erp8asle:pod-identity-sa","description":"Kubernetes service account federated credential","audiences":["api://AzureADTokenExchange"]}'
你会获得响应:
{
"@odata.context": "https://microsoftgraph.chinacloudapi.cn/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Kubernetes service account federated credential",
"id": "51ecf9c3-35fc-4519-a28a-8c27c6178bca",
"issuer": "https://aksoicchinanorth.blob.core.chinacloudapi.cn/aaaabbbb-0000-cccc-1111-dddd2222eeee/",
"name": "Kubernetes-federated-credential",
"subject": "system:serviceaccount:erp8asle:pod-identity-sa"
}
列出应用上的联合标识凭据
运行以下方法,为应用列出联合标识凭据(由应用的对象 ID 指定):
az rest -m GET -u 'https://microsoftgraph.chinacloudapi.cn/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials'
你会获得类似如下所示的响应:
{
"@odata.context": "https://microsoftgraph.chinacloudapi.cn/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials",
"value": [
{
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com/",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
]
}
获取应用的联合标识凭据
运行以下方法,获取应用的联合标识凭据(由应用的对象 ID 指定):
az rest -m GET -u 'https://microsoftgraph.chinacloudapi.cn/applications/00001111-aaaa-2222-bbbb-3333cccc4444//federatedIdentityCredentials/00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
你会获得类似如下所示的响应:
{
"@odata.context": "https://microsoftgraph.chinacloudapi.cn/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials",
"value": {
"@odata.context": "https://microsoftgraph.chinacloudapi.cn/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"@odata.id": "https://microsoftgraph.chinacloudapi.cn/v2/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/directoryObjects/$/Microsoft.DirectoryServices.Application('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials('00001111-aaaa-2222-bbbb-3333cccc4444')/00001111-aaaa-2222-bbbb-3333cccc4444",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com/",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
}
从应用中删除联合标识凭据
运行以下方法,从应用中删除联合标识凭据(由应用的对象 ID 指定):
az rest -m DELETE -u 'https://microsoftgraph.chinacloudapi.cn/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials/00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
后续步骤
- 若要了解如何使用用于 Kubernetes 的工作负荷标识联合,请参阅用于 Kubernetes 的 Microsoft Entra ID 开源项目。
- 若要了解如何使用用于 GitHub Actions 的工作负荷联合身份验证,请参阅配置 GitHub Actions 工作流以获取访问令牌。
- 阅读 GitHub Actions 文档,了解有关配置 GitHub Actions 工作流以从 Microsoft 标识提供者获取访问令牌并访问 Azure 资源的详细信息。
- 有关详细信息,请阅读 Microsoft Entra ID 如何使用 OAuth 2.0 客户端凭据授权和另一个 IdP 发出的客户端断言来获取令牌。
- 有关由外部标识提供者创建的 JWT 所需格式的信息,请阅读断言格式。