关于 Keycloak
Keycloak 是身份与访问管理服务器,用于单点登录、OAuth 2.0、OpenID Connect、SAML 和身份代理。其核心概念包括 realm、client、user、role、group、scope 和认证流程,应用通过标准协议使用这些能力。
本地 Keycloak 开发重点是稳定的 issuer URL 和真实的 redirect URI。开发服务器可使用开发数据库,PostgreSQL 常用于持久 realm;外部用户联邦、SMTP 和反向代理 HTTPS 只应在测试对应流程时加入。
核心能力
- Realm 与 Client
- OAuth 2.0 与 OpenID Connect
- SAML
- 认证流程
- 身份代理
- 用户联邦
常见使用场景
- 应用单点登录
- OAuth/OIDC 集成测试
- 集中角色管理
- 身份提供商联邦
Keycloak 测试依赖 Issuer 与重定向 URL
认证服务器和持久 Realm 存储是基础,其他服务由认证场景决定。
- Keycloak Server 与 Realm Import
- 运行身份提供商,并可加载可重复使用的测试 client、role 和 user。
- 持久 Realm 的 PostgreSQL
- 常用于持久本地身份数据;开发模式可为快速实验使用其他受支持选项。
- HTTPS 域名与 Redirect URI
- 让浏览器 client、cookie、CORS 和回调校验像集成环境一样工作。
- 可选 SMTP 或外部 IdP
- 仅在邮件验证、密码找回或代理登录流程中需要。
典型本地技术栈
具体服务取决于项目、发布版本及本地配置。这里展示的是常见配置,而非固定要求。
| 组件 | 典型作用 |
|---|---|
| Java | 用于本地 Keycloak 环境的 Java 服务。 |
| PostgreSQLMySQL | 用于本地 Keycloak 环境的 PostgreSQL / MySQL 服务。 |
| NginxCaddy | 用于本地 Keycloak 环境的 Nginx / Caddy 服务。 |
FlyEnv 如何提供帮助
匹配项目运行时
为 Keycloak 选择项目所需的运行时版本。
管理本地服务
仅在项目需要时启动数据库、缓存和其他服务。
保持项目隔离
让不同项目使用各自的版本和服务配置。
配置本地域名
需要时可通过本地域名和 HTTPS 访问项目。
配置本地环境
项目安装请遵循上游官方文档;FlyEnv 负责管理其所需的运行时、数据库、Web 服务器和辅助服务。
- 1按照 Keycloak 官方文档安装项目和依赖。
- 2在 FlyEnv 中选择项目需要的运行时版本。
- 3启动项目配置中指定的数据库服务。
- 4仅在项目需要时启动缓存、搜索或其他辅助服务。
- 5按需配置本地 Web 服务器、域名和 HTTPS。
- 6将相关服务加入启动组,方便重复启动。
准备好本地运行 Keycloak 吗?
使用 FlyEnv 管理本地 Keycloak 环境所需的运行时、数据库、Web 服务器和服务。