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

如何配置GAM(OAuth 2.0认证类型)实现Keycloak登录后自动分配角色?

配置GAM(OAuth 2.0认证)实现Keycloak登录后自动分配指定角色

前提确认

  • 已完成GAM与Keycloak的OAuth 2.0基础集成,能正常获取用户邮箱、姓名等基础信息
  • 已在GAM中创建好需要自动分配的目标角色(比如普通用户、内容编辑等)

配置步骤

1. 让Keycloak传递角色标识给GAM

登录Keycloak控制台,进入对应集成的客户端:

  • 切换到Mappers标签页,点击Create添加映射器:
    • 类型选User Client Role(传递客户端角色)或User Realm Role(传递域级角色)
    • 填写名称(比如gam_role_sync),设置Token Claim Name为target_gam_role(自定义字段名,GAM后续要读取这个值)
    • 勾选Add to ID token和Add to access token,保存配置

2. 在GAM中设置自动角色分配规则

进入GAM管理后台,找到已配置的Keycloak OAuth2客户端:

  • 开启自动创建用户,确保首次登录的用户能在GAM中生成账号
  • 找到用户同步或属性映射模块,配置角色分配规则:
    • 按需选择配置方式:
      • 基于Keycloak角色匹配:设置规则,当用户的target_gam_role(对应Keycloak的Claim名)等于指定值时,自动分配对应GAM角色。示例逻辑:
        若用户属性 target_gam_role = "editor",则分配GAM角色 "内容编辑"
        
      • 全局默认分配:如果所有通过Keycloak登录的用户都统一分配某角色,直接在客户端配置的默认角色选项中选择目标角色保存即可

3. 验证配置效果

  • 使用未在GAM中注册过的用户通过Keycloak登录系统
  • 登录成功后,进入GAM用户管理页面,检查该用户的角色是否已自动分配
  • 测试用户是否拥有对应角色的权限(比如访问专属页面、执行特定操作)

注意事项

  • 确保GAM与Keycloak的时间同步,避免Token验证异常
  • 如果Keycloak传递的是多角色数组,GAM规则需支持数组匹配(比如当Claim包含某值时分配对应角色)
  • 若GAM无可视化规则配置界面,需编写自定义脚本(如Groovy、JS),读取OAuth2返回的用户Claim后调用GAM角色分配API完成自动分配

内容的提问来源于stack exchange,提问作者Alfredo Henrique Pina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 00:32:35