Azure AD多租户应用如何授予合作方管理员权限管理其用户并分配角色
多租户应用合作方用户自主管理权限配置方案
你可以通过Azure AD多租户应用的原生角色与权限能力实现需求,无需你手动维护各合作方的用户信息,具体配置流程如下:
1. 应用侧预配置
首先在你自己的租户中完成应用的基础配置:
- 进入应用注册页,选择你的多租户应用,在
应用角色模块定义所有合作方的专属角色,角色命名建议增加租户标识前缀(比如A公司_访问者、B公司_管理员),角色的允许的成员类型同时勾选用户和服务主体 - 进入对应企业应用的
属性页,将需要分配用户?选项设置为是,避免未授权用户访问应用 - 回到应用注册的
API权限页,新增一个自定义应用权限,命名为TenantUserManagement.ReadWrite.All,权限类型设置为应用权限,勾选需要管理员同意
2. 合作方租户授权接入
你只需要引导各合作方的Azure AD全局管理员/应用管理员完成一次管理员同意即可,同意后他们就拥有了自主管理权限:
- 给合作方管理员提供你的应用的管理员同意链接,对方登录自己的租户账号完成授权,同意你刚才定义的
TenantUserManagement.ReadWrite.All权限 - 授权完成后,该应用会自动同步到合作方租户的企业应用列表中
3. 合作方自主操作用户与角色分配
合作方管理员在自己的Azure AD租户内即可完成所有操作,无需你介入:
- 进入自己租户的
企业应用列表,找到你的应用 - 进入
用户和组页面,点击添加用户/组,选择自己租户下的对应用户/用户组 - 在角色分配列表中,选择属于自己公司的专属角色,确认后即可完成分配
- 如需批量操作,可直接使用PowerShell命令
New-AzureADUserAppRoleAssignment执行批量分配
隔离校验建议
为了避免角色越权,建议你在应用代码中增加租户与角色的绑定校验:用户登录后,从JWT令牌中读取tid(租户ID)声明和roles(角色)声明,校验角色前缀是否与当前租户的预设标识匹配,匹配通过才允许访问对应资源。
内容的提问来源于stack exchange,提问作者Mehdi Sheikh
相关产品推荐
相关产品推荐

