【问题标题】:OAuth 2.0 and Azure Active Directory - error AADSTS90009OAuth 2.0 和 Azure Active Directory - 错误 AADSTS90009
【发布时间】:2017-06-19 18:36:35
【问题描述】:

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

用户被重定向到相似的 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]

然后我收到以下错误:

AADSTS90009:应用程序“d220846b-1916-48d2-888b-9e16f6d9848b”是 为自己请求令牌。仅在以下情况下才支持此方案 资源是使用基于 GUID 的应用标识符指定的。

这个描述对我没有帮助。我已经检查了这个thread,但我还是迷路了。

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

【问题讨论】:

    标签: azure oauth-2.0 azure-active-directory


    【解决方案1】:

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

    或者,您可以提供您已注册的 Web API 或其他资源的应用 ID URI,以获取该资源的令牌(Microsoft Graph、Office API 等)。

    【讨论】:

    • 谢谢,我确实有点困惑 - 我打算使用 Microsoft Graph,所以这应该是我的资源。我现在拿到了我的令牌。再次感谢!
    • 非常感谢,至少节省了我 4 个小时
    • 同样,在周日调试了几个小时后找到了你的答案非常令人满意。虽然情绪复杂;我不知道为什么它不适用于应用程序 URI(例如,与 graph.microsoft.com 相同),因为 URI 和客户端 ID 都是唯一的。无论如何,不​​管 - 你是冠军,谢谢。
    • 将“资源”的值从 App ID URI 更改为 client_id 对我有用。但我不明白为什么。我也找不到有关该方法的任何文档。我可以获取更多信息吗?
    • @Captainlonate 出于好奇,您注册了哪种类型的应用:Web 应用/API 还是 Native?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 2019-07-26
    相关资源
    最近更新 更多