用途:面向 Keycloak 身份与访问管理的专家级指导,重点在 ABAC 实现,涵盖领域架构、令牌类型、配置即代码、集成模式、安全与 OpenShift 部署。
主要能力: 核心概念:Realm(隔离租户)、Client(public/confidential/bearer-only)、角色、组、身份提供方;ID Token、Access Token、Refresh Token、RPT。 ABAC:将授权逻辑从应用代码移到 Keycloak 集中策略引擎,以资源、范围、策略(角色/组/用户/时间/JavaScript/聚合)、权限构建,配合决策策略 UNANIMOUS、AFFIRMATIVE、CONSENSUS。 配置即代码:FluentRealmBuilder、FluentClientBuilder、FluentRoleBuilder、FluentAzureIdpBuilder、FluentAbacBuilder。 集成:Spring Boot 使用 @AbacPolicy 注解经 UMA 评估策略;NextAuth.js 使用 KeycloakProvider;Azure AD 联合并映射组到角色。
必要用法(示例命令保持原样):UMA RPT 流程
curl -X POST "${KEYCLOAK_URL}/realms/${REALM}/protocol/openid-connect/token"
-H "Authorization: Bearer ${ACCESS_TOKEN}"
-d "grant_type=urn:ietf:params:oauth:grant-type:uma-ticket"
-d "audience=${CLIENT_ID}"
-d "permission=${RESOURCE}#${SCOPE}"
返回 200 含 access_token 表示授权通过,403 表示策略拒绝,400 表示请求或资源无效。
安全:建议所有客户端启用 PKCE(S256);管理控制台使用独立主机名并限制网络;启用 TLS、暴力破解防护、限流、事件日志与凭证轮换;支持刷新令牌撤销;可启用 KC_METRICS_ENABLED=true 与 KC_HEALTH_ENABLED=true 监控。
部署:支持 Red Hat Keycloak Operator(k8s.keycloak.org/v2alpha1),可配置数据库、TLS、代理头、主机名、自定义镜像与 startOptimized。
适用场景:需要集中式授权、跨应用单点登录、外部 IdP 联合(如 Azure AD)、Kubernetes/OpenShift 上运行 Keycloak 的团队。
限制:本技能为使用指导,未提供具体定价、平台限制或效果承诺;部分集成细节需参考其 references 目录文件。