OAuth 2.0和Azure Active Directory - 错误AADSTS90009

Lac*_*lev 12 azure oauth-2.0 azure-active-directory

我正在尝试使用OAuth 2.0和Azure AD授权访问我们的Web应用程序.在这里指导.

用户被重定向到类似的URL:

https://login.microsoftonline.com/common/oauth2/authorize?
    client_id=d220846b-1916-48d2-888b-9e16f6d9848b&
    response_type=code&
    response_mode=query&
    state=[secure-random]&
    redirect_uri=[my_uri]&
    resource=[my app ID uri taken from app settings]
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

AADSTS90009:应用程序'd220846b-1916-48d2-888b-9e16f6d9848b'正在为自己请求令牌.仅当使用基于GUID的应用程序标识符指定资源时,才支持此方案.

这个描述并没有真正帮助我.我检查了这个帖子,但我还是迷路了.

这个错误是什么意思,哪个是基于GUID的应用程序标识符?资源的价值应该如何?非常感谢.

Dan*_*ian 31

此错误表示您在resource参数中提供的字段为自己请求令牌.如果您确实想要获取client_id中指定的应用程序的令牌,则必须在资源字段中传递client_id,而不是应用程序ID URI.此时您将收到自己的访问令牌.

或者,您可以提供已注册的Web API的应用程序ID URI或具有范围的其他资源,以获取该资源的令牌(Microsoft Graph,Office API等).

  • 谢谢,我确实有点困惑 - 我打算使用Microsoft Graph,所以这应该是我的资源.我现在拿到了我的令牌.再次感谢! (3认同)
  • 将"资源"的值从App ID URI更改为client_id对我有用.但我不明白为什么.我也找不到有关该方法的任何文档.我可以获得更多信息吗? (3认同)