如何限制Azure应用注册的API权限仅作用于指定Administrative Unit
实现结论
该需求可以完全实现,无需为应用分配租户级的全局Microsoft Graph应用权限,通过Azure AD角色范围绑定方案即可限定应用仅能操作指定Administrative Unit(以下简称AU)内的资源。
操作步骤
1. 清理原有全局权限
进入你的Azure AD应用注册的「API权限」管理页,删除之前申请的User.Read.All、GroupMember.ReadWrite.All等全局Microsoft Graph应用权限,避免权限溢出。
2. 准备适配需求的Azure AD角色
你可以选择适配需求的内置角色,也可以自定义权限更精准的角色:
- 内置角色可选范围:如果仅需要读写AU内用户信息、管理AU内组成员,可直接使用内置的「用户管理员」、「组成员管理员」角色,无需额外创建
- 自定义角色操作:进入Azure AD「角色和管理员」页面,点击「新建自定义角色」,在权限筛选栏搜索并勾选你需要的目录权限,示例可选权限如下:
microsoft.directory/users/allProperties/read:读取用户全量属性microsoft.directory/groups/members/update:更新组成员列表
按需勾选完成后保存自定义角色即可。
3. 绑定角色到指定AU,分配对象为你的应用
进入你要限定范围的目标AU详情页:
- 点击左侧菜单的「角色和管理员」
- 选择「添加分配」,选中你准备好的内置/自定义角色
- 下一步在「选择成员」搜索框中,输入你的应用注册名称,选中对应应用作为分配对象
- 确认配置后完成分配即可生效
效果验证
使用该应用身份调用Microsoft Graph API时,仅能查询、操作该绑定AU范围内的用户和组资源,尝试访问其他租户资源时会返回403权限不足错误。
内容的提问来源于stack exchange,提问作者BigJump
相关产品推荐
相关产品推荐

