reactjs Azure身份验证-访问令牌返回错误的AUD(00000003-0000-0000-c 000 - 0000000000)

hgqdbh6s  于 2023-01-02  发布在  React
关注(0)|答案(1)|浏览(179)

我正在尝试通过OAuth使用Azure中的API管理进行身份验证。我已将该部分设置为正确。但是,从响应来看,访问令牌中的aud(00000003-0000- 0000-c 000 - 00000000000)无效。在access_token中获取准确aud的任何建议/想法。

1cklez4t

1cklez4t1#

我尝试在我的环境中重现相同的结果,结果如下:

我使用与您相同的**aud**生成了访问令牌,但出现了验证错误:

我同意 * juunas *,要通过OAuth在Azure中使用API管理进行身份验证,请确保在生成访问令牌时传递作用域
我创建了Azure AD应用程序,公开了API并添加了作用域,如下所示:

添加了如下API权限:

要解决此错误,请确保将scope作为api://AppID/.default传递。

https://login.microsoftonline.com/TenantID/oauth2/v2.0/token

client_id:ClientID
client_secret:ClientSecret
scope:api://ee1782a6-a994-4013-a396-XXXXX/.default
grant_type:client_credentials

将生成用于访问APIM的有效访问令牌,如下所示:

要使用MSAL传递react应用程序的特定作用域,您可以引用以下示例代码:

auth: { 
authority: "https://login.microsoftonline.com/common",
clientId: "ClientID",
postLogoutRedirectUri: RedirectURI
redirectUri: RedirectURI
validateAuthority: true,
navigateToLoginRequestUrl: true,
},
cache:
{ cacheLocation: 'sessionStorage',
storeAuthStateInCookie: true,
},
},
{
scopes: ['api://clientid/.default']
},
LoginType.Redirect
    • 参考资料:**

OAuth 2.0 Authorisation with the Client Credentials Flow on Azure API Management by Paco de la Cruz
Connect React App with Azure AD using react msal by Ray

相关问题