介绍
Keycloak是一个开源的IAM(Identity and Access Management),支持OIDC以及SAML协议。包含的功能包括:
- 单点登录
- 身份代理和社交登录
- 用户联合(User Federation)
- 授权服务
通常我们可以直接将它作为用户认证中心。
而Spring提供的OAuth2 Login,则支持直接使用配置的方式接入符合OIDC和OAuth2协议的认证服务。比如它默认支持的Google、Github等等,Spring OAuth2 Login在连接这些默认支持的认证服务的时候,基本上只需要如下配置:
spring:
security:
oauth2:
client:
registration:
google:
client-id: google-client-id
client-secret: google-client-secret
本文的重点是介绍如何使用Spring OAuth2 Login来连接配置好的Keycloak,以及它是如何做的。
配置keycloak
在keycloak中,选一个realm,配置好client,提供好参数即可。这里要注意的几点是:
- redirect_uri的配置,必须符合Spring OAuth2 Login预先定义的格式:http://host:port/login/oauth2/code/{registration_id},比如,我在Spring里面定义的registration_id为keycloak,那么我的redirect_uri就是ht