企业级 AD + Keycloak + RAGFlow 完整闭环 很好,这一步就是 企业级 AD + Keycloak + RAGFlow 完整闭环 了,我给你一套可以直接落地的标准方案(生产可用)。 一、目标架构(最终形态) Windows AD (192.168.0.5) │ LDAP / LDAPS ▼ Keycloak(身份中台) │ OIDC ▼ RAGFlow(自动建用户 + 角色映射) 二、你要实现的3个能力 必须同时完成: ✔ 1. AD用户自动同步 ✔ 2. 首次登录自动创建RAGFlow用户 ✔ 3. AD Group → RAGFlow Role 映射 三、Keycloak 配置(核心) 1️⃣ LDAP 接入 AD 进入: User Federation → LDAP 配置: 参数 值 Vendor Active Directory Connection URL ldap://192.168.0.5:389 Bind DN CN=ldapbind,OU=ServiceAccounts,DC=shuncom,DC=local Bind Credential ****** Users DN DC=shuncom,DC=local Import Users ✔ ON Edit Mode READ_ONLY 四、关键:开启“自动用户导入” 在 LDAP 设置中: ✔ 必须开启: Import Users = ON 否则不会同步 AD 用户 五、Keycloak Role / Group 映射(关键步骤) 2️⃣ 创建 Mapper(重点) 进入: LDAP → Mappers 新增: ✔ Mapper 1:用户名 Name value ldap attribute sAMAccountName user attribute username ✔ Mapper 2:邮箱 | LDAP | mail | | RAGFlow | email | ✔ Mapper 3:AD Group → Keycloak Group Mapper Type group-ldap-mapper Groups DN OU=Groups,DC=shuncom,DC=local Membership attribute member 六、Keycloak → RAGFlow 角色映射 3️⃣ 在 Keycloak 创建 Realm Roles 例如: ragflow-admin ragflow-user ragflow-reader 4️⃣ Group → Role 映射 Keycloak: Group → Role Mapping 示例: AD Group RAGFlow Role IT_Admin ragflow-admin AI_User ragflow-user 七、RAGFlow 配置(关键修改) 你现在 docker-compose 需要改这几个: ✔ 1. 改用户ID来源(非常关键) OAUTH2_USER_ID_CLAIM=email ❗不要用 sub ✔ 2. 开启自动注册(关键) REGISTER_ENABLED=1 ✔ 3. 保留 OIDC OAUTH2_ENABLE=True OAUTH2_TYPE=oidc ✔ 4. 建议补充(重要) OAUTH2_AUTO_CREATE_USER=true (如果版本支持) 八、RAGFlow 角色映射方式(核心) RAGFlow 本身是靠 OIDC claims: 你需要在 Keycloak 加: 5️⃣ Client Mapper(重点) 进入: Client → ragflow → Mappers 添加: ✔ Mapper 1:roles Name roles Mapper Type User Realm Role Token Claim Name roles Add to ID token ON Add to access token ON ✔ Mapper 2:groups Name groups Mapper Type Group Membership Token Claim groups 九、RAGFlow 侧角色识别 RAGFlow 会读取: { "email": "8108@shuncom.local", "groups": ["AI_User"], "roles": ["ragflow-user"] } 十、用户自动创建逻辑(关键机制) 当用户第一次登录: Keycloak 登录成功 ↓ RAGFlow 收到 email ↓ 检查用户是否存在 ↓ 不存在 → 自动创建 ↓ 绑定 role/group 十一、你必须改的最终配置(直接可用) docker-compose.yml(最终建议) environment: - OAUTH2_ENABLE=True - OAUTH2_TYPE=oidc - OAUTH2_DISPLAY_NAME=AD域账号登录 - OAUTH2_AUTHORIZATION_URL=http://192.168.4.16:8081/realms/shuncom/protocol/openid-connect/auth - OAUTH2_TOKEN_URL=http://192.168.4.16:8081/realms/shuncom/protocol/openid-connect/token - OAUTH2_USERINFO_URL=http://192.168.4.16:8081/realms/shuncom/protocol/openid-connect/userinfo - OAUTH2_CLIENT_ID=ragflow - OAUTH2_CLIENT_SECRET=xxxx - OAUTH2_REDIRECT_URI=http://192.168.4.16/oauth/callback - OAUTH2_USER_ID_CLAIM=email - REGISTER_ENABLED=1 十二、最终效果(你会得到) ✔ AD账号登录RAGFlow ✔ 首次登录自动创建用户 ✔ AD组自动映射权限 ✔ Keycloak统一身份中心 ✔ RAGFlow无需本地维护账号 十三、如果你要更进一步(推荐升级) 我可以帮你再升级成: ✔ AD组 → RAGFlow菜单权限控制 ✔ 多租户隔离(部门级权限) ✔ 自动禁用离职AD用户 ✔ LDAP双向同步 ✔ HTTPS + 企业SSO统一入口 只需要说一句: “升级成企业级SSO完整方案” 我可以给你一套 生产环境标准架构(含Keycloak导入模板 + LDAP配置 + RAGFlow最终docker-compose) 。