【发布时间】:2017-07-03 05:41:36
【问题描述】:
在这篇文章中,
AAD token: Why aud sometimes shows app id, sometimes it's the app url?
我了解了为什么 AAD 令牌中的 aud 字段有时是应用程序 ID,有时是应用程序 url。它们似乎取决于您在请求令牌时作为资源放置的内容。
但是,当我尝试使用应用程序 url(SPA 网站的 AAD 应用程序 url)为 SPA 网站请求 AAD 令牌时,它返回 AAD 错误 - AADSTS90009。
AADSTS90009:应用程序 '' 正在为自己请求令牌。仅当使用基于 GUID 的应用标识符指定资源时才支持此方案。
相关讨论请参阅此帖子。
OAuth 2.0 and Azure Active Directory - error AADSTS90009
我很好奇,这个错误背后的主要原因是什么?
为什么不支持app url作为资源标识?
【问题讨论】:
-
为自己请求访问令牌是没有意义的。通常,您会希望为某些 API 应用程序请求令牌。
-
我不同意。对于需要用户身份的网站,您需要来自 AAD 的令牌来代表用户。不需要调用其他API。如果没有意义,为什么你仍然可以通过将app url替换为app id来获得令牌?
-
这是一个 id 令牌。您可以通过启用隐式授权流来实现这一点。但是,如果您想以这种方式获取它,则只需指定资源的客户端 ID 而不是应用程序 ID URI :)
-
谢谢,我会详细了解 id token 和 access token 的区别。但是我用 adal.js 为我的门户获得的令牌,两者都有。顺便说一句,我想知道为什么在这种情况下可以使用客户端 id 而不是 app id uri?它们都应该是 AAD 应用程序的标识。
-
老实说,我不知道为什么需要您使用客户端 ID 而不是 URI:/
标签: azure-active-directory adal