SuperAPI AI 工具集

keycloak

通用与其它

查看项目

更新于 10-15 21:49

技能介绍

Keycloak 是开源身份与访问管理(IAM)方案,目标是让应用以极少代码实现安全认证。适用于在 Kubernetes 上自托管企业 IAM、避免商业厂商锁定;从 Active Directory/LDAP 同步用户与凭据;通过身份代理集中 Google、GitHub、SAML 2.0、OIDC 等登录;定义 ABAC 与资源权限策略。

核心概念包括:Realm(隔离用户、角色、客户端与凭据,master realm 仅用于管理 Keycloak,应用用户应使用独立 realm);OIDC 客户端分机密客户端(后端持 client_secret)与公共客户端(SPA/移动端用 PKCE S256,无密钥)。

快速启动: docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:latest start-dev

生产部署建议用外部 PostgreSQL 或 MySQL,示例 docker-compose 服务使用 quay.io/keycloak/keycloak:24.0,命令 start --optimized,通过 KC_DB、KC_DB_URL、KC_DB_USERNAME、KC_DB_PASSWORD、KC_HOSTNAME 等环境变量连接数据库。

服务间认证可用客户端凭据流程: curl -X POST "http://keycloak:8080/realms/enterprise/protocol/openid-connect/token" -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=client_credentials" -d "client_id=order-service" -d "client_secret=YOUR_CLIENT_SECRET"

最佳实践:生产用 start --optimized 并预构建镜像;禁止将 master realm 用于应用用户;所有公共客户端启用 PKCE S256;多副本部署配置 Infinispan 分布式会话复制。限制与注意事项:不要将管理控制台暴露公网,应置于 VPN 或 IP 白名单后;生产不可用内嵌 H2;升级需规划数据库 schema 迁移。常见问题如 redirect_uri 无效(需在 Valid Redirect URIs 中配置完整 scheme/host/port)、凭据无效(校验 secret 或用户锁定)、令牌签名验证失败(刷新 JWKS 缓存)。