Microsoft Entra ID中的联合标识凭据概述

命名空间:microsoft.graph

传统上,开发人员使用证书或客户端密码作为应用程序的凭据,以便通过 Microsoft Entra ID 中的服务进行身份验证和访问服务。 若要访问其Microsoft Entra租户中的服务,开发人员不得不在 Azure 外部存储和管理应用程序凭据,这引入了以下瓶颈:

  • 证书和机密的维护负担。
  • 泄露机密的风险。
  • 由于身份验证失败,证书即将过期,服务中断。

联合标识凭据 是一种为软件工作负载启用工作负载联合身份验证的新型凭据。 工作负载联合身份验证允许访问Microsoft Entra受保护的资源,而无需管理 (支持的方案的机密) 。

联合标识凭据的工作原理是什么?

通过配置联合标识凭据,可以在外部标识提供者 (IdP) 与 Microsoft Entra ID 中的应用之间建立信任关系。 联合标识凭据用于指示应用程序应信任外部 IdP 中的哪个令牌。 创建该信任关系后,软件工作负载可以将外部标识提供者的受信任令牌交换为Microsoft 标识平台的访问令牌。 然后,软件工作负载使用该访问令牌访问已授予工作负荷访问权限的Microsoft Entra受保护资源。 这消除了手动管理凭据的维护负担,并消除了机密泄露或证书过期的风险。 有关详细信息和支持的方案,请参阅 工作负载联合身份验证

通过 Microsoft Graph 设置联合标识凭据

federatedIdentityCredential 资源表示通过 Microsoft Graph 配置联合标识凭据。 使用 创建 federatedIdentityCredential API 配置 对象。 以下属性是联合标识凭据的构建基块:

  • audiences - 可在外部令牌中显示的访问群体。 此字段是必需的,对于Microsoft Entra ID,应设置为 api://AzureADTokenExchange 。 它说明了Microsoft 标识平台在传入令牌的aud声明中应接受的内容。 此值表示外部标识提供者中的Microsoft Entra ID,并且跨标识提供者没有固定值 - 可能需要在 IdP 中创建新的应用程序注册才能充当此令牌的受众。
  • issuer - 外部标识提供者的 URL。 必须与要交换的外部令牌的 颁发者 声明匹配。
  • subject - 外部标识提供者中外部软件工作负载的标识符。 与访问群体值一样,它没有固定格式,因为每个 IdP 都使用自己的 (有时是 GUID,有时是冒号分隔的标识符,有时是任意字符串)。 此处的值必须与提供给 Microsoft Entra ID 的令牌中的声明匹配sub
  • name - 用于标识凭据的唯一字符串。 此属性是备用键,值可用于通过 GETUPSERT 操作引用联合标识凭据。

颁发者和使用者的组合在应用上必须是唯一的。 当外部软件工作负荷请求Microsoft 标识平台交换访问令牌的外部令牌时,会根据issuer外部令牌中提供的 和 subject 声明检查联合标识凭据的颁发者和使用者值。 如果验证检查通过,Microsoft 标识平台向外部软件工作负载颁发访问令牌。

设计注意事项

每个应用程序对象或用户分配的托管标识最多可以添加 20 个联合标识凭据。