Azure跨租户联邦身份凭证报错AADSTS700226及非AAD issuer可行性咨询
问题分析与解决方案
测试失败原因
你遇到的AADSTS700226报错是明确的规则限制:当联邦身份凭证的**发行方设置为Azure AD(T1租户)**时,仅允许Azure托管身份(MSI)颁发的令牌作为断言来交换T2租户的令牌。你用T1租户客户端凭证流获取的是普通服务主体令牌,不符合这个要求,因此交换失败。
核心问题解答
完全可以在AWS等Azure外部环境中,使用非AAD发行方(比如Ping Federate)的令牌通过联邦身份凭证获取T2租户的访问令牌。联邦身份凭证的核心设计目标之一,就是为Azure外部的工作负载提供无托管身份依赖的身份认证方案,支持各类符合OIDC标准的外部身份提供商。
关键配置与验证要点
- 联邦身份凭证配置:在T2租户的应用注册中创建联邦身份凭证时,需指定外部身份提供商的OIDC元数据地址(例如Ping Federate的
https://<你的Ping-Federate域名>/.well-known/openid-configuration),主体标识符要与外部令牌中的sub或oid等声明值完全匹配。 - 外部令牌要求:确保Ping Federate等发行方颁发的令牌满足以下条件:
- 采用RS256签名算法
- 包含
iss(发行方)、sub(主体)、aud(受众需设为api://AzureADTokenExchange)、exp(过期时间)等必要声明 - 令牌未被篡改,发行方的公钥可通过其OIDC元数据地址被Entra ID验证
- 令牌交换流程:获取外部令牌后,调用Entra ID的令牌端点(
https://login.microsoftonline.com/<T2租户ID>/oauth2/v2.0/token),使用grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer,传入以下参数:client_id:T2租户中应用注册的客户端IDassertion:外部身份提供商颁发的令牌scope:目标资源的访问范围(例如https://graph.microsoft.com/.default)requested_token_use:按需设置,若获取应用级令牌可省略,若代表用户则设为on_behalf_of
内容的提问来源于stack exchange,提问作者Prodip
相关产品推荐
相关产品推荐

