【Azure Entra ID】当Entra ID中的用户所属Group数量超过200个之后的问题

问题描述

使用Azure Entra ID进行用户的登录授权管理,但是当这个用户所属的组(Group)超过200个之后,在ID Token中就无法全部包含,而是返回一个endpoint,需要再次通过这个Endpoint来获取完整的Group List。

例如:

## 在Group < = 200 的时候

image.png

## 在Group > 200 的时候

image.png

那么,是否有办法当Group 大于200的情况下,也可以直接返回所需要的Group list呢?在我们常规的请求中,根本不需要获取一个用户的全部组,只需要获取当前应用所使用的Group呢?

问题解答

可以的。 Entra ID提供了一个 Group Filtering 的功能来过滤用户的用户组(Group), 这样就可以有效的解决Group超过200个之后的ID Token中无法直接返回的问题。

Group filtering [Configure group claims for applications by using Microsoft Entra ID - Microsoft Entra ID | Microsoft Learn]

Group filtering allows for fine control of the list of groups that's included as part of the group claim. When a filter is configured, only groups that match the filter will be included in the group's claim that's sent to that application. The filter will be applied against all groups regardless of the group hierarchy.

具体的操作步骤如下:

1) 进入Azure Entra ID页面,进入到“注册应用”页面,在 概述(overview)页面上点击“Managed Application in ....”,进入此应用的“企业应用”页面


image.png

2) 选择“Single sign-on”后,编辑group属性


image.png

3)在Additional Claims 部分,选择groups,在右侧弹出页面中的 Advanced Options中,启用Filter Groups

  • Attribute to Match就选择Display name (注:display name就是group的name)
  • Match with 根据需求,可以选择前缀匹配(Prefix),后缀匹配(Suffix),包含(Contains)
  • String 就填写我们需要过滤组的名称的关键字


    image.png

保存。

再次请求,就可以看见ID Token中的Group信息已经列举出所想要的Group List了。


image.png

参考资料

Configure group claims for applications by using Microsoft Entra ID : https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-fed-group-claims#group-filtering

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容