Microsoft Entra ID中限制第三方应用MailStore Server仅访问特定组MailStoreArchive内用户数据的问题
Microsoft Entra ID中限制第三方应用MailStore Server仅访问特定组MailStoreArchive内用户数据的问题
看起来你踩了一个常见的坑——把「应用登录权限控制」和「数据访问范围控制」搞混了!设置「Assignment Required: Yes」只是用来限制哪些用户能登录这个应用,但如果MailStore Server本身拥有全局读取用户的权限,它照样能获取到所有用户的数据。下面我根据两种常见的应用权限场景,给你具体的解决步骤:
一、先搞清楚应用用的是哪种权限类型(关键前提)
你先去「Entra ID -> 企业应用 -> MailStore Server -> 权限」页面看看,应用请求的是以下哪种权限:
- 委派权限:应用需要用户登录后,以用户的身份访问数据(比如打开应用时要输Entra ID账号密码)
- 应用权限:应用直接以自身身份跑后台任务、同步数据,不需要用户登录(这种情况更常见于存档类工具)
二、如果应用用的是委派权限
按下面两步操作就能解决:
- 确认「需要用户分配」设置已生效
先去「Entra ID -> 企业应用 -> MailStore Server -> 属性」,确认「需要用户分配?」确实设为了「是」,而且你已经把MailStoreArchive组分配给了这个应用(这步你已经做了,再检查下有没有保存就行)。 - 用权限受限的账号登录应用
现在的问题大概率是你用来配置MailStore的账号是管理员,拥有全局读取所有用户的权限,导致应用跟着读到了所有人。你需要:- 创建一个普通用户账号,只给它分配「读取MailStoreArchive组成员」的权限
- 用这个普通账号登录MailStore Server,这样应用就只能读取这个账号有权限看到的用户——也就是MailStoreArchive组里的Bob这类成员,Alice的账号自然就看不到了。
三、如果应用用的是应用权限(后台同步类)
这种场景下「需要用户分配」完全没用,因为应用权限是直接赋予应用本身的,不受用户分配限制。这时候得给应用设置受限的自定义角色:
- 创建自定义目录角色
- 进入「Entra ID -> 角色和管理员 -> 新建自定义角色」
- 选「目录角色」模板,给角色起个好记的名字(比如「MailStore存档用户读取者」)
- 在「权限」步骤,添加
User.Read.All权限,然后点击「权限范围」,选择「特定组」,指定MailStoreArchive组 - 完成角色创建
- 把自定义角色分配给MailStore Server
- 回到「角色和管理员」,找到刚创建的自定义角色,点击「添加分配」
- 选择「应用」类型,找到MailStore Server应用并添加
- 移除原有的全局权限
去「Entra ID -> 企业应用 -> MailStore Server -> 权限」,删掉原来的全局Directory.Read.All应用权限,确保应用只有自定义角色的权限。
四、验证效果
做完设置后可以这样验证:
- 委派权限场景:用Alice的账号试登MailStore,应该会提示无访问权限;用Bob的账号登录,能正常看到自己的存档数据。
- 应用权限场景:触发MailStore的同步功能,检查是否只有MailStoreArchive组里的用户被同步到应用列表中。
备注:内容来源于stack exchange,提问作者Dawid
相关产品推荐
相关产品推荐

