Authentication Azure AD:是否可以使用给定应用程序的访问令牌来检索其他应用程序的访问令牌?

Authentication Azure AD:是否可以使用给定应用程序的访问令牌来检索其他应用程序的访问令牌?,authentication,azure-active-directory,adal,msal,Authentication,Azure Active Directory,Adal,Msal,考虑到两个应用程序下面的Azure广告是相同的,这应该是可能的,但是我不确定如何实现这一点?有什么建议吗?你需要了解 当前访问令牌过期后,应用程序可以使用此令牌获取其他访问令牌。Refresh_令牌寿命长,可用于在较长时间内保留对资源的访问 因此,当您请求第一个访问令牌时,需要获取刷新令牌 然后,您可以使用此刷新令牌为另一个资源(或范围)获取新的访问令牌 //换行符仅用于易读性 POST /{tenant}/oauth2/v2.0/token HTTP/1.1 Host: https://log

考虑到两个应用程序下面的Azure广告是相同的,这应该是可能的,但是我不确定如何实现这一点?有什么建议吗?

你需要了解

当前访问令牌过期后,应用程序可以使用此令牌获取其他访问令牌。Refresh_令牌寿命长,可用于在较长时间内保留对资源的访问

因此,当您请求第一个访问令牌时,需要获取刷新令牌

然后,您可以使用此刷新令牌为另一个资源(或范围)获取新的访问令牌

//换行符仅用于易读性

POST /{tenant}/oauth2/v2.0/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=https%3A%2F%2Fgraph.microsoft.com%2Fmail.read
&refresh_token=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq...
&grant_type=refresh_token
&client_secret=JqQX2PNo9bpM0uEihUPzyrh      // NOTE: Only required for web apps. This secret needs to be URL-Encoded

您应该修改
范围
。如果您的第一个访问令牌是针对资源Microsoft团队的,您现在可以将
socpe
修改为
https://graph.microsoft.com/.default
。然后,您将获得访问Microsoft Graph资源的访问令牌。

您描述的OIDC流被调用


有一个MSAL示例介绍了它:

为不同的应用程序检索访问令牌是什么意思?请提供更多详情。可能是一个例子?访问令牌包含的声明可能是权限或范围或应用程序/API+对这些应用程序的权限。在代码正在运行的应用程序的上下文中,您可能能够检索到一个令牌,该令牌证明您已成功通过身份验证,但可能不包含您需要的声明/权限。例如,在Microsoft团队中运行的代码可以访问的访问令牌可能无法使用您感兴趣的服务(如Microsoft graph)。拥有一个访问令牌可以通过身份验证获得另一个吗?,