简述
keycloak是一个针对现代应用程序和服务的开源身份和访问管理解决方案,本质就是个中间件,keycloak支持单点登录SSO,服务可通过OpenID Connect、OAuth 2.0 等协议对接 Keycloak
SSO单点登录
SSO指的是Single Sign On,中文是单点登录。指的是在多个系统上,用户只需登录一次,多个系统都会感知到用户已经登录了.
安装
使用docker的方式安装keycloak,拉取镜像
docker pull jboss/keycloak
指定了管理员账号和密码都是admin
docker run -d --name keycloak \
-p 8080:8080 \
-e KEYCLOAK_USER=admin \
-e KEYCLOAK_PASSWORD=admin \
jboss/keycloak
启动后可以访问http://localhost:8080/auth/,能访问到就代表安装成功
网页控制台用法
创建领域
点击Administration Console进行登录
点击Add realm创建一个领域
然后切换到自己创建的领域
创建客户端
关于客户端的访问类型(Access Type) 上面创建的2个客户端的访问类型分别是public、bearer-only,那么为什么分别选择这种类型,实际不同的访问类型有什么区别呢?
事实上,Keycloak目前的访问类型共有3种:
-
confidential:适用于服务端应用,且需要浏览器登录以及需要通过密钥获取access token的场景。典型的使用场景就是服务端渲染的web系统。
-
public:适用于客户端应用,且需要浏览器登录的场景。典型的使用场景就是前端web系统,包括采用vue、react实现的前端项目等。
-
bearer-only:适用于服务端应用,不需要浏览器登录,只允许使用bearer token请求的场景。典型的使用场景就是restful api。
先创建public类型的客户端,点击clients,然后点create