Oauth 获取JWT访问令牌中的安全组

Oauth 获取JWT访问令牌中的安全组,oauth,azure-active-directory,Oauth,Azure Active Directory,我希望JWT access_令牌包含安全组的列表。通过阅读文档,我尝试在我的应用程序regostraton的清单中设置“groupMembershipClaims”:“All” 设置是我有一个azure ad域,有2个用户。然后我有两个组:[user,admin]每个用户都有一个分配给它的组。每个组都属于安全类型 我试图手动执行OAuth代码流,方法是转到格式化如下的url: https://login.microsoftonline.com//oauth2/v2.0/authorize?cli

我希望JWT access_令牌包含安全组的列表。通过阅读文档,我尝试在我的应用程序regostraton的清单中设置
“groupMembershipClaims”:“All”

设置是我有一个azure ad域,有2个用户。然后我有两个组:
[user,admin]
每个用户都有一个分配给它的组。每个组都属于
安全类型

我试图手动执行OAuth代码流,方法是转到格式化如下的url:

https://login.microsoftonline.com//oauth2/v2.0/authorize?client_id=&response_type=code&redirect_uri=http://localhost:8080&response_mode=query&scope=offline_access%20user.read%20mail.read&state=12345

然后我使用在azure ad中设置的用户帐户登录。然后我使用postman向
https://login.microsoftonline.com//oauth2/v2.0/token
带参数:

  • client\u id
    =
  • code
    =上次登录的代码
  • 重定向\u uri
    =
    http://localhost:8080
  • grant\u type
    =
    authorization\u code
  • scope
    =
    user.read mail.read
我得到了一个有效的回复,带有一个访问令牌。然而,当我解码它时,根本没有列出任何团体声明


如何获取令牌中列出的组?

根据我的研究,Azure Active Directory的Azure AD v2端点尚未在其令牌中支持组声明。有关更多详细信息,请参阅。如果要获取一个用户所属的所有组,需要从Microsoft Graph API查询这些组。您可以在此处找到API文档:

根据我的研究,Azure Active Directory的Azure AD v2端点尚未在其令牌中支持组声明。有关更多详细信息,请参阅。如果要获取一个用户所属的所有组,需要从Microsoft Graph API查询这些组。您可以在此处找到API文档:

如果您使用应用程序访问自己的API,为了在access_令牌中获取组声明,您需要在API清单中配置所需的
groupMembershipClaims
值,然后您可以在access_令牌中获取组声明信息

但是,如果访问资源是MS graph API或Azure AD graph API,您无法为它们进行配置,您只能使用openid连接来获取id_令牌,然后您可以在id_令牌中看到组声明。在您的流程中,您可以在范围中添加
openid
,然后您可以在id\u令牌中找到组信息

我在《邮递员》中尝试了oauth2代码流:

并返回访问令牌和id令牌。要解析id_令牌,我将获取组信息:


如果您使用应用程序访问自己的API,为了在access\u令牌中获取组声明,您需要在API清单中根据需要配置
groupMembershipClaims
值,然后您可以在access\u令牌中获取组声明信息

但是,如果访问资源是MS graph API或Azure AD graph API,您无法为它们进行配置,您只能使用openid连接来获取id_令牌,然后您可以在id_令牌中看到组声明。在您的流程中,您可以在范围中添加
openid
,然后您可以在id\u令牌中找到组信息

我在《邮递员》中尝试了oauth2代码流:

并返回访问令牌和id令牌。要解析id_令牌,我将获取组信息:


或者,您可以在应用程序中定义用户角色,并将这些角色分配给组/用户。在AAD中,通过组授予的访问权限更加透明。或者,您可以在应用程序中定义用户角色,并将这些角色分配给组/用户。使其在AAD中更加透明,通过组可以访问哪些内容。@Klouddy。我已经更新了我的答案,请看一看。也许这将帮助您更清楚地理解
声明。请澄清,组仅存在于id令牌中,而不存在于访问令牌中?我无法将组声明放入访问令牌中,尽管文档说明这应该有效。@Klouddy。我已经更新了我的答案,请看一看。也许这将帮助您更清楚地理解
声明。请澄清,组仅存在于id令牌中,而不存在于访问令牌中?我无法将组声明放入访问令牌中,尽管文档说明这应该可以工作。