Microsoft Entra 身份验证
可以将 Bearer
身份验证方案与从 Microsoft Entra ID 获取的令牌配合使用,对 HTTP 请求进行身份验证。 必须通过传输层安全性 (TLS) 传输这些请求。
先决条件
必须将用于请求 Microsoft Entra ID 令牌的主体分配到适用的 Azure 应用程序配置角色之一。
为每个请求提供身份验证所需的所有 HTTP 标头。 以下是最低要求:
请求标头 | 说明 |
---|---|
Authorization |
Bearer 方案所需的身份验证信息。 |
示例:
Host: {myconfig}.azconfig.io
Authorization: Bearer {{AadToken}}
Microsoft Entra 令牌获取
在获取 Microsoft Entra 令牌之前,必须先确定要作为什么用户进行身份验证、要为什么受众请求令牌,以及要使用什么 Microsoft Entra 终结点(颁发机构)。
受众
为适当的受众请求 Microsoft Entra 令牌。 对于 Azure 应用程序配置,使用以下受众。 受众还可以称作要为其请求令牌的“资源”。
https://azconfig.io
Microsoft Entra 颁发机构
Microsoft Entra 颁发机构是用于获取 Microsoft Entra 令牌的终结点。 其形式为 https://login.chinacloudapi.cn/{tenantId}
。 {tenantId}
段指的是尝试进行身份验证的用户或应用程序所属的 Microsoft Entra 租户 ID。
身份验证库
Azure 身份验证库 (MSAL) 有助于简化获取 Microsoft Entra 令牌的进程。 Azure 针对多种语言生成了这些库。 有关详细信息,请参阅本文档。
错误
你可能会遇到以下错误。
HTTP/1.1 401 Unauthorized
WWW-Authenticate: HMAC-SHA256, Bearer
原因: 你未提供使用 Bearer
方案的 Authorization 请求头。
解决方案: 提供有效的 Authorization
HTTP 请求头。
HTTP/1.1 401 Unauthorized
WWW-Authenticate: HMAC-SHA256, Bearer error="invalid_token", error_description="Authorization token failed validation"
原因:Microsoft Entra 令牌无效。
解决方案:从 Microsoft Entra 颁发机构获取 Microsoft Entra 令牌,并确保已使用适当的受众。
HTTP/1.1 401 Unauthorized
WWW-Authenticate: HMAC-SHA256, Bearer error="invalid_token", error_description="The access token is from the wrong issuer. It must match the AD tenant associated with the subscription to which the configuration store belongs. If you just transferred your subscription and see this error message, please try back later."
原因:Microsoft Entra 令牌无效。
解决方案:从 Microsoft Entra 颁发机构获取 Microsoft Entra 令牌。 确保 Microsoft Entra 租户与配置存储所属的订阅关联。 如果主体属于多个 Microsoft Entra 租户,可能会出现此错误。