Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本文提供了有关如何在 Azure 门户中设置灵活联合标识凭据的指南。 灵活联合标识凭据是 Microsoft Entra Workload ID 的高级功能,可增强现有的联合标识凭据模型。
先决条件
注释
灵活联合标识凭据支持尚不适用于 托管标识。
通过 Microsoft Graph 设置联合标识凭据
为了适应灵活联合标识凭据功能,federatedIdentityCredentials 资源正使用新属性 claimsMatchingExpression 进行扩展。 除此之外,该 subject 属性现在也可为 Null。 属性 claimsMatchingExpression 和 subject 相互排斥,因此不能在联合标识凭据中定义这两者。
-
audiences:必须在外部令牌中显示的受众。 此为必填字段,应设置为api://AzureADTokenExchangeMicrosoft 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。 使用以下选项卡为每个颁发者设置灵活联合标识凭据。
此示例展示了如何使用 job_workflow_ref 声明的表达式为 GitHub 设置灵活联合标识凭据。 使用
{
"audiences": [
"api://AzureADTokenExchange"
],
"name": "MyGitHubFlexibleFIC",
"issuer": "https://token.actions.githubusercontent.com",
"claimsMatchingExpression": {
"value": "claims['sub'] matches 'repo:contoso/contoso-repo:ref:refs/heads/*' and claims['job_workflow_ref'] matches 'contoso/contoso-prod/.github/workflows/*.yml@refs/heads/main'",
"languageVersion": 1
}
}