是从Adal.net的访问令牌与OpenID不同的



我是OpenID和AAD的新手。

我有一个称为下游图API的API。我正在按照下面的示例,https://joonasw.net/view/azure-ad-on-behalf-of-aspnet-core

一切都很好。

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

他们说他们正在使用打开的连接来验证用户。他们正在遵循Auth授予的Flow(https://learn.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-oauth-code ),因此,我期望那时jwts访问令牌。但是,当我尝试他们的访问令牌时,它说未经授权。我试图使用JWT.MS解码他们的访问令牌,但这也不起作用。

现在我的问题是,访问令牌是否从Adal.net身份验证中获得不同于打开的身份验证?有工作吗?

任何帮助都非常感谢。

预先感谢。

澄清您的理论问题。.Adal.net库可以帮助您从Azure AD中获取令牌,并符合OAuth 2.0和OpenID Connect协议。

更具体地是您的情况。

两件事要检查

  1. 确保获取访问令牌已获得将API指定为资源,只有这样,它对您的API有效。

    以下是访问令牌的示例请求,它也使用OpenID范围。获取访问令牌

    resource的值应与您的Web服务完全匹配App ID URI。要在Azure门户网站中找到应用程序ID UI,请单击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令牌并访问令牌,请确保使用正确的一个

最新更新