我有我自己的应用程序,称为appA,是我在Azure Active Directory中注册的。我使用此处概述的授权代码授予过程将用户认证为appA:https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-oauth-code#request-an-authorization-code。在此过程中,我指定Jwt作为appA最好的资源。用户输入凭据后,我得到一个授权代码,然后使用该代码获得一个Jwt和一个对appA有用的刷新令牌。
用户通过我的应用程序身份验证后,我想检查他们所在的组以进行基于角色的访问控制。由于每个用户有五个以上的组,因此不会在令牌中返回这些组。
这迫使我再次调用图形Api以获取特定用户的组。但是,为此,我需要使用刷新令牌并指定https://graph.microsoft.com作为令牌刷新端点的资源。现在,我返回的令牌可以很好地针对图表Api发出请求。
我的问题是:如何在appA内进行调用以使令牌对图形api有利?看来我将不得不同时处理多个Jwts,并且在概念设计上很难。
答案 0 :(得分:1)
我该如何在appA内进行呼叫以使令牌对 图形API?
您可以直接为MS graph API请求令牌,只需在OAuth 2.0代码授予流程中更改MS graph API(https://graph.microsoft.com)的资源值即可。
在请求授权码
中https://login.microsoftonline.com/{tenant}/oauth2/authorize?
client_id=<client-id-value>
&response_type=code
&redirect_uri=<redirect-uri-value>
&response_mode=query
&resource=https://graph.microsoft.com
&state=12345
POST /{tenant}/oauth2/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&client_id=<client-id-value>
&code=<code-value>
&redirect_uri=<redirect-uri-value>
&resource=https://graph.microsoft.com
&client_secret=<key-value>