本文提供了有关如何在 Azure 门户中设置灵活联合标识凭据的指南。 灵活联合标识凭据是 Microsoft Entra Workload ID 的高级功能,可增强现有的联合标识凭据模型。
先决条件
- 具有活动订阅的 Azure 帐户。 如果还没有帐户,请创建一个帐户。
- 创建应用注册。 授予应用访问外部软件工作负荷的目标 Azure 资源的权限。
注释
灵活联合标识凭据支持尚不适用于 托管标识。
通过 Microsoft Graph 设置联合标识凭据
为了适应灵活联合标识凭据功能,federatedIdentityCredentials
资源正使用新属性 claimsMatchingExpression
进行扩展。 除此之外,该 subject
属性现在也可为 Null。 属性 claimsMatchingExpression
和 subject
相互排斥,因此不能在联合标识凭据中定义这两者。
-
audiences
:必须在外部令牌中显示的受众。 此为必填字段,应设置为api://AzureADTokenExchange
Microsoft Entra ID。 它表示 Microsoft 标识平台应接受传入令牌中的aud
声明。 此值表示外部标识提供者中的 Microsoft Entra ID,且在标识提供者中没有固定值。你可能需要在 IdP 中创建新应用程序注册,以用作此令牌的受众。 -
issuer
:外部标识提供者的 URL。 必须与正交换的外部令牌的颁发者声明匹配。 -
subject
:外部标识提供者中外部软件工作负载的标识符。 与受众值类似,该值没有固定格式,因为每个 IdP 都使用自己的格式,格式有时是 GUID,有时是冒号分隔的标识符,有时是任意字符串。 此处的值必须与提供给 Microsoft Entra ID 的令牌中的sub
声明匹配。 如果subject
已定义,claimsMatchingExpression
必须设置为 Null。 -
name
:用于标识凭据的唯一字符串。 此属性是备用键,其值可用于通过 GET 和 UPSERT 操作引用联合标识凭据。 -
claimsMatchingExpression
:包含value
和languageVersion
这两个属性的新复杂类型。 其值用于定义表达式,languageVersion
用于定义所使用的灵活联合标识凭据表达式语言 (FFL) 的版本。languageVersion
应始终设置为 1。 如果claimsMatchingExpression
已定义,subject
必须设置为 Null。
设置灵活联合标识凭据
- 导航到 Microsoft Entra ID,然后选择要在其中配置联合标识凭据的应用程序。
- 在左侧导航窗格中,选择“证书和密码”。
- 在“联合凭据”选项卡中,选择“+ 添加凭据”。
- 在显示的“添加凭据”窗口中,从“联合凭据方案”旁边的下拉菜单中选择“其他颁发者”。
- 在“连接帐户”下输入外部标识提供者的*颁发者 URL。 例如:
- GitHub:
https://token.actions.githubusercontent.com
- GitLab:
https://gitlab.example.com
- Terraform Cloud:
https://app.terraform.io
- GitHub:
- 在“值”中输入要使用的声明匹配表达式,例如
claims['sub'] matches 'repo:contoso/contoso-repo:ref:refs/heads/*'
- 选择“添加”以保存凭据。
灵活联合标识凭据的更多示例
灵活联合标识凭据可以使用不同的颁发者,例如 GitHub、GitLab 和 Terraform Cloud。 使用以下选项卡为每个颁发者设置灵活联合标识凭据。