来自ADAL.net的访问令牌与openid不同

问题描述 投票:1回答:1

我是openid和aad的新手。

我有一个API调用下游Graph api。我跟随下面的例子,https://joonasw.net/view/azure-ad-on-behalf-of-aspnet-core

一切都很好。

但前端是第三方应用程序,它可以访问我的API。

他们说他们正在使用打开的连接来验证用户。他们遵循Auth授权流程(https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-oauth-code),所以我希望有一个JWT访问令牌。但是,当我尝试他们的访问令牌时,它表示未经授权。我试图使用jwt.ms解码他们的访问令牌,但这也不起作用。

现在我的问题是,访问令牌是否来自ADAL.net身份验证与开放身份验证不同?有工作吗?

任何帮助真的很感激。

提前致谢。

azure-active-directory openid adal send-on-behalf-of
1个回答
0
投票

为了澄清您的理论问题,ADAL.NET库可以帮助您从Azure AD获取令牌,符合OAuth 2.0和OpenID连接协议。

更具体的情况..如果您使用Auth代码授权流程获取访问令牌,如您所提及的并且参数正确,则它应该适用于您的API。

要检查两件事

  1. 确保获取了访问令牌,并将API指定为资源,然后才能对您的API有效。 这是一个访问令牌的示例请求,它也使用openid范围.. Get Access Tokens resource的价值应该与App ID URI完全匹配您的网络服务。要查找App ID URI,请在Azure门户中单击Azure Active Directory,单击“应用程序注册”,打开应用程序的“设置”页面,然后单击“属性”。 GET https://login.microsoftonline.com/{tenant}/oauth2/authorize? client_id=6731de76-14a6-49ae-97bc-6eba6914391e // Your registered Application Id &response_type=id_token+code &redirect_uri=http%3A%2F%2Flocalhost%3a12345 // Your registered Redirect Uri, url encoded &response_mode=form_post // `form_post' or 'fragment' &scope=openid &resource=https%3A%2F%2Fservice.contoso.com%2F // The identifier of the protected resource (web API) that your application needs access to &state=12345 // Any value, provided by your app &nonce=678910 // Any value, provided by your app
  2. 您可能正在获取ID令牌和访问令牌,请确保使用正确的令牌
© www.soinside.com 2019 - 2024. All rights reserved.