Azure active directory AAD令牌:为什么aud有时显示应用程序id,有时显示它';应用程序的url是什么?

Azure active directory AAD令牌:为什么aud有时显示应用程序id,有时显示它';应用程序的url是什么?,azure-active-directory,adal.js,Azure Active Directory,Adal.js,我正在为我的网站使用adal.js进行AAD身份验证。 解码AAD令牌后,aud看起来不同,它是AAD中的应用程序api。 然而,当我试图理解AAD如何在不同的场景中工作时,几乎所有文档中的AAD令牌示例都将aud显示为资源url,如 根据我的理解,aud表示此代币是为以下目的发行的。它实际上应该是什么没有限制 但我很好奇,AAD的aud这种不一致行为的主要原因是什么。 为什么它有时可以是应用程序id,有时可以是url? 为什么不一直使用应用程序id或url 有人能帮我分享一些想法吗 谢谢。令牌

我正在为我的网站使用adal.js进行AAD身份验证。 解码AAD令牌后,aud看起来不同,它是AAD中的应用程序api。 然而,当我试图理解AAD如何在不同的场景中工作时,几乎所有文档中的AAD令牌示例都将aud显示为资源url,如

根据我的理解,aud表示此代币是为以下目的发行的。它实际上应该是什么没有限制

但我很好奇,AAD的aud这种不一致行为的主要原因是什么。

为什么它有时可以是应用程序id,有时可以是url? 为什么不一直使用应用程序id或url

有人能帮我分享一些想法吗

谢谢。

令牌中的“AUD”值应与令牌请求中的“Resource”值匹配。如果您请求将资源指定为应用ID的令牌,那么您将获得一个带有GUID的AUD值。否则,如果您使用应用程序ID URI,您将返回URL

作为一名资源开发人员,编程API以接受这两种形式的令牌是很重要的,因为它们在访问资源时都是有效的。我相信我已经为你处理好了


让我知道这是否有帮助

ADAL.JS处理两种类型的令牌:和。id_令牌表示已在应用程序中登录的用户的身份。大致上,它只包含两个部分——提供凭据的用户ID和获取令牌的应用程序ID。对于id_令牌,aud的值是Guid,对应于从令牌获取的应用程序的AppId。从OAUTH v2的角度来看,这是同一个应用程序,其中包含用户想要访问的资源

说到访问令牌,它不仅代表上面提到的2个用户和获取应用程序,而且还代表一个应用程序,该应用程序具有一组用户打算访问的资源。在大多数情况下,由aud声明表示的第二个应用程序将是表示服务主体名称(或App ID或Uri)的Uri——所有这些都是同义词。此值是从客户端AAD应用程序指向服务器AAD应用程序(包含受保护资源的应用程序)的一种方式

因此,ADAL.JS首先请求用户的凭据并获取id_令牌,然后向AAD端点发送额外请求以获取访问_令牌。如果您查看这两种代币,您将在上述澳元索赔中看到不同种类的价值


在访问令牌的aud声明中也可能有一个Guid-该Guid将对应于资源应用程序的AppId,因此,如果您有一个解析值的代码,它必须准备好处理URI和Guid。

谢谢!当我更新我的adal.js配置以将资源更改为我的应用程序id uri时,我得到了AAD错误AADSTS90009(请参阅本文了解详细信息:)我想对于网站,我只能传递应用程序id。然后后端应该验证这两个。。。