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

如何在Directus应用中配置Keycloak实现SSO授权?附配置截图及登录报错

Directus配置Keycloak SSO授权步骤及常见问题修复

一、基础配置流程

1. Keycloak端设置

  • 新建客户端,协议选openid-connect,访问类型设为confidential
  • 配置有效重定向URI:https://你的Directus域名/auth/login/keycloak/callback(本地测试用http://localhost:8055/auth/login/keycloak/callback)
  • 保存后,复制客户端ID和密钥(在「凭据」标签页获取)
  • 确保Keycloak用户有对应角色,且客户端范围包含openid、profile、email这些必要作用域

2. Directus端环境变量配置

在Directus的.env文件(或Docker环境变量)中添加以下配置:

AUTH_KEYCLOAK_DRIVER=openid
AUTH_KEYCLOAK_CLIENT_ID=你的Keycloak客户端ID
AUTH_KEYCLOAK_CLIENT_SECRET=你的Keycloak客户端密钥
AUTH_KEYCLOAK_ISSUER=https://你的Keycloak域名/realms/你的领域名
AUTH_KEYCLOAK_IDENTIFIER_KEY=email
AUTH_KEYCLOAK_SCOPE="openid profile email"
AUTH_KEYCLOAK_ICON=keycloak

二、常见错误修复(对应你截图中的问题场景)

结合Keycloak+Directus SSO的高频问题,你遇到的情况大概率是以下几种:

  • 重定向URI不匹配:检查Keycloak客户端的重定向URI是否和Directus回调地址完全一致,包括HTTP/HTTPS、端口、路径,不能有任何差异
  • Issuer地址错误:确认AUTH_KEYCLOAK_ISSUER指向正确的Keycloak领域元数据地址,比如https://keycloak.example.com/realms/my-realm,可以访问该地址+/.well-known/openid-configuration验证是否能正常返回元数据
  • 客户端密钥/ID错误:核对Keycloak凭据页的信息,确保没有复制错字符或多空格
  • 作用域缺失:Keycloak客户端必须包含openid作用域,否则无法完成OpenID Connect授权流程
  • PUBLIC_URL配置错误:如果Directus运行在反向代理后,必须设置PUBLIC_URL=https://你的Directus域名,否则回调地址会生成错误的内部地址

三、验证配置

重启Directus服务后,登录页面会出现Keycloak登录按钮,点击后跳转至Keycloak登录页,登录成功后应自动返回Directus完成授权。

内容的提问来源于stack exchange,提问作者Mikhail Plekhov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:18:43