Oauth 获取JWT访问令牌中的安全组
我希望JWT access_令牌包含安全组的列表。通过阅读文档,我尝试在我的应用程序regostraton的清单中设置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
“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令牌中,而不存在于访问令牌中?我无法将组声明放入访问令牌中,尽管文档说明这应该可以工作。