Azure AD OAuth2如何查询用户同意授权是否禁用及低影响权限归属
Azure AD用户同意配置预查询方案
核心问题解答:提前判断目标租户用户同意开关状态
可以在跳转微软登录页前完成状态查询,推荐使用Microsoft Graph的authorizationPolicy接口实现:
- 调用前提:你的应用提前申请
Policy.Read.All应用级权限,无需用户登录即可调用该接口查询目标租户的配置 - 判定规则:
- 接口返回参数中
defaultUserRolePermissions.allowedToConsentApps值为false时,代表租户完全禁用所有用户同意权限,此时可直接提示用户联系管理员完成租户级同意授权后再登录 - 若该字段值为
true,可进一步查看permissionGrantPoliciesAssignedToUser字段值:若包含自定义策略ID,说明租户仅开放了限定范围的用户同意权限
- 接口返回参数中
扩展问题解答:判定申请权限是否属于低影响选定范围
你可以通过两种方式确认权限分类:
- 在Azure门户的应用注册→API权限管理页面,查看对应权限的*“需要管理员同意”*属性,属性值为否的权限默认属于微软定义的低影响范围
- 调用Microsoft Graph的
servicePrincipals接口查询目标权限的isAdminRequired属性,属性值为false即可归为用户可自行同意的低影响权限
补充说明:你方已完成发布者验证,不会触发未验证应用的用户同意拦截规则,只要权限符合低影响要求、租户未关闭对应同意开关,用户即可正常完成授权。
内容的提问来源于stack exchange,提问作者Christopher Oezbek
相关产品推荐
相关产品推荐

