You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure AD中创建供已集成自定义CMS使用的自定义角色与属性?

解决方案:在Azure AD中管理CMS自定义角色

针对你这种已经集成Azure AD做身份验证,但需要在AD里统一管理CMS自定义角色的场景,我给你几个经过实践验证的方案,按推荐优先级排序:

1. 使用Azure AD应用角色(App Roles)—— 官方推荐首选

这是Azure AD专门为集成应用设计的自定义角色管理方案,完全贴合你的需求:

  • 操作步骤:
    • 登录Azure Portal,找到你的CMS对应的应用注册
    • 进入「应用角色」选项卡,点击「创建应用角色」
    • 填写角色信息:比如显示名称填「营销活动管理员」,值填「MarketingCampaignManager」(这个值会出现在令牌里,CMS要用来判断权限),选择允许分配的对象类型为「用户/组」
    • 保存后,回到应用注册的「用户和组」选项卡,给对应的Azure AD用户/组分配这些自定义角色
  • CMS端实现:用户登录时,Azure AD返回的id_token里会包含roles声明,数组里就是该用户被分配的所有应用角色。CMS只需要解析这个声明,匹配对应的权限逻辑即可。
  • 优势:完全在Azure AD中管理角色分配,无需CMS维护角色数据;支持用户和组批量分配,权限变更即时生效;和Azure AD的身份验证流程深度集成,无需额外调用Graph API。

2. 使用自定义扩展属性

如果你的CMS需要除了角色之外的更多自定义用户属性(比如用户在CMS里的偏好设置),或者角色形态更灵活(比如多值角色),可以用Azure AD的扩展属性:

  • 两种扩展类型:
    • 应用特定扩展:仅对你的CMS应用可见,不会影响其他Azure AD应用。可以通过MS Graph API创建,比如:
      POST https://graph.microsoft.com/v1.0/applications/{app-id}/extensionProperties
      Content-Type: application/json
      {
        "name": "cmsRoles",
        "dataType": "String",
        "targetObjects": ["User"]
      }
      
    • 目录扩展:对所有Azure AD应用可见,适合需要跨应用共享的属性。
  • CMS端实现:用户登录后,调用MS Graph的GET /users/{user-id}接口,获取extension_{app-id}_cmsRoles属性值(注意属性名的格式),然后解析该值来判断权限。

3. 使用自定义安全属性

如果你的权限管理需要更细粒度的控制,或者需要审计属性的分配记录,可以用Azure AD的自定义安全属性:

  • 操作步骤:
    • 在Azure Portal的「Azure AD」→「自定义安全属性」里创建属性集(比如「CMSPermissions」),然后添加属性(比如「Role」,允许的值设为「BlogEditor」、「MarketingManager」等)
    • 给对应的Azure AD用户分配这些属性值
  • CMS端实现:通过MS Graph的GET /users/{user-id}/customSecurityAttributes接口获取用户的属性,然后匹配权限。
  • 优势:支持多值属性、属性值约束、审计日志,适合对权限管理要求严格的场景。

4. 使用Azure AD组+声明映射

如果你的CMS角色可以直接和Azure AD组一一对应,比如「CMS博客编辑组」对应博客编辑权限,这种方案更简单:

  • 操作步骤:
    • 在Azure AD中创建对应角色的组,把用户加入组
    • 进入应用注册的「令牌配置」选项卡,点击「添加组声明」,选择「安全组」并勾选「组ID」或「组名称」
  • CMS端实现:解析id_token里的groups声明,根据组名/组ID匹配对应的CMS权限。
  • 注意:如果组数量较多,令牌可能会变大,需要考虑这个限制。

总结建议

优先选择应用角色(App Roles),因为它是Azure AD为应用自定义角色设计的原生方案,集成最简单,管理成本最低。如果需要更灵活的属性或细粒度控制,再考虑扩展属性或自定义安全属性。

内容的提问来源于stack exchange,提问作者George Oslobanu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 00:52:45