如何使用.Net Core在Azure中验证外部Oauth令牌

rmbxnbpk  于 2023-10-15  发布在  .NET
关注(0)|答案(1)|浏览(106)

我有一个托管在Azure中的应用程序,我能够验证由客户端(appId)ID生成的承载令牌,这些令牌位于我们相同的Tenent下。
现在,我想验证一些其他外部租户令牌,这些令牌也托管在Azure中,但不同的Tenenat。
我试图通过联邦凭据添加,但我得到下面的错误,而生成的访问代码。
附上我在Azure中完成的Map。我不确定我是否走在正确的方向上。

错误是:

任何帮助这是非常感谢

"error_description": "AADSTS700222: AAD-issued tokens may not be used for federated identity flows.\r\nTrace ID: 0154d231-b7d4-436c-9a5d-117d80460d00\r\nCorrelation ID: 0b9bd57f-6e20-4af9-961e-3f402345e707\r\nTimestamp: 2023-08-08 07:28:59Z",
busg9geu

busg9geu1#

当您在来自不同租户的两个Azure AD身份之间创建联合时发生错误。我有一个从一个租户创建的访问令牌,下面的声明在jwt.ms中解码:

现在,我使用上面的声明值在不同租户的应用程序中创建联合凭据,如下所示:

当我尝试通过Postman使用联合凭证生成访问令牌时,我也得到了相同的错误

POST https://login.microsoftonline.com:443/<tenantID>/oauth2/v2.0/token
client_id: appId
grant_type:client_credentials
scope: https://graph.microsoft.com/.default
client_assertion:<token_from_other_tenant>
client_assertion_type: urn:ietf:params:oauth:client-assertion-type:jwt-bearer

回复:

请注意,不支持在来自相同或不同租户的两个Azure AD标识之间创建联合。要确认这一点,您可以查看此MS文档
或者,我为外部IDP(auth0)创建了一个访问令牌,其声明如下:

现在,我在应用程序中使用上述声明值创建了新的联合凭据

当我使用上面的token作为**client_assertion时,token成功生成,使用联合**凭证,如下所示:

参考:

Azure Active Directory Workload Identity Federation with external OIDC IdP

相关问题