本文介绍如何在 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 和软件工作负荷的主题和颁发者信息,以下步骤中需要这些信息。
在应用上配置联合标识凭据
GitHub 操作
若要为 GitHub 操作添加联合标识,请执行以下步骤:
- 在 Microsoft Entra 管理中心的应用注册体验中查找应用注册。 在左侧导航窗格中选择“证书和机密”,选择“联合凭据”选项卡,然后选择“添加凭据”。 
- 在“联合凭据方案”下拉框中,选择“部署 Azure 资源的 GitHub 操作”。 
- 为 GitHub Actions 工作流程指定“组织”和“存储库”。 
- 对于“实体类型”,请选择“环境”、“分支”、“拉取请求”或“标记”,并指定值。 值必须与 GitHub 工作流中的配置完全匹配。 分支和标记不支持模式匹配。 如果推送中工作流针对多个分支或标记运行,请指定一个环境。 有关详细信息,请阅读示例。 
- 为联合凭据添加“名称”。 
- “颁发者”、“受众”和“主题标识符”字段会根据你输入的值自动填充。 
- 选择“添加”以配置联合凭据。   
将 Microsoft Entra 应用程序注册中的以下值用于 GitHub 工作流:
- AZURE_CLIENT_ID应用程序(客户端)ID
- AZURE_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 管理中心的应用注册体验中查找应用注册。 在左侧导航窗格中选择“证书和机密”,然后选择“联合凭据”选项卡。随即会列出应用上配置的联合凭据。
若要删除联合标识凭据,请选择凭据的“删除”图标。
设置灵活联合标识凭据(预览版)
- 导航到 Microsoft Entra ID,然后选择要在其中配置联合标识凭据的应用程序。
- 在左侧导航窗格中,选择“证书和密码”。
- 在“联合凭据”选项卡中,选择“+ 添加凭据”。
- 在显示的“添加凭据”窗口中,从“联合凭据方案”旁边的下拉菜单中选择“其他颁发者”。
- 在“值”中输入要使用的声明匹配表达式。
先决条件
- 如果还没有 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 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 所需格式的信息,请阅读断言格式。