在返回的JWT中找不到批准

时间:2017-06-30 17:49:20

标签: azure oauth-2.0 azure-active-directory adal json-web-token

我在使用Azure AD时注意到了一些事情。

在客户端清单上指定了批准作为应用程序,当我使用 UserAssertion ClientCredentials 生成令牌时,我在返回的JWT有效负载中找不到批准。如果我仅使用 ClientCredentials 生成令牌,那么这种情况就不会发生,其中确实还会批准返回

这是正常的还是我遗失了什么?
提前致谢

更新

我要尝试解释这个场景

这是app清单: { "allowedMemberTypes": [ "Application" ], "displayName": "Protocollo", "id": "some GUID", "isEnabled": true, "description": "some Descr", "value": "Proto" }

我有三个应用:app a,app b和app c。
应用B具有应用程序角色(请参阅上面的清单),用户登录应用程序a。 App c需要app a中已登录用户的用户名。 当app b使用UserAssertion和ClientCredentials(如前所述)为app c生成令牌时,我无法在返回的jwt中找到app b角色。如果我只使用客户端ClientCredentials

,则不会发生这种情况

1 个答案:

答案 0 :(得分:0)

您是否为应用程序声明了应用程序角色?您描述的场景(使用UserAssertion和ClientCredentials)使用委托用户身份和OAuth 2.0 On-Behalf-Of: enter image description here

用户已在本机应用程序上进行了身份验证,此本机应用程序需要调用Web API。 Azure AD发出JWT访问令牌以调用Web API。如果Web API需要调用另一个下游Web API,它可以使用代表流来委派用户的身份并对第二层Web API进行身份验证。因此,在此方案中只有delegate permission涉及访问令牌。

方案(使用客户端ClientCredentials)正在使用具有OAuth 2.0客户端凭据授权的应用程序标识,Azure AD对应用程序进行身份验证并返回用于调用Web API的JWT访问令牌。此方案中访问令牌中涉及的应用程序角色。