Keycloak单点登录

简介: Keycloak单点登录

Keycloak安装有多种方式

  • 启动Keycloak standalone 模式,端口号为8180
./standalone.sh -Djboss.socket.binding.port-offset=100

如果需要配置连接postgresql,请参考Github

  • Docker快速安装
docker run -d --name keycloak \
    -p 8080:8080 \
    -e KEYCLOAK_USER=admin \
    -e KEYCLOAK_PASSWORD=admin \
    jboss/keycloak:10.0.0
  • 访问 http://localhost:8080并点击Administration Console进行登录

Spring Security集成Keycloak

配置application.properties

keycloak.realm=demo
keycloak.resource=login-app
keycloak.auth-server-url=http://localhost:8180/auth
keycloak.ssl-required=external
keycloak.public-client=true
keycloak.use-resource-role-mappings=true
keycloak.confidential-port=0
keycloak.principal-attribute=preferred_username

其中keycloak.resource根据不同的client配置不同的变量,内容请参考Keycloak client installation,如下图

启动Keycloak客户端

启动client: login-app, login-backup,端口号分别为8081,8082,在keycloak client 配置页面 ‘Valid Redirect URIs’ 填写相应的端口号

java -Dserver.port=8081 -jar login-app.jar
java -Dserver.port=8082 -jar login-backup.jar

SSO授权码模式访问过程

  • 访问login-app,图中http://rp.example.com,当浏览器登录Keycloak(OP)后,会在浏览器保存KEYCLOAK_SESSION
  • 当访问login-backup时,图中http://rp-2.example.com,浏览器将KEYCLOAK_SESSION一起请求Keycloak(OP), Keycloak(OP)根据KEYCLOAK_SESSION判断用户已登录,直接授权,不需要用户再次输入用户名和密码。
  • 登录login-app页面跳转,包的抓取


相关文章
|
1月前
|
存储 安全 数据安全/隐私保护
SSO 单点登录与 OAuth2.0 的技术区别与应用
【8月更文挑战第24天】在现代软件开发和企业信息化建设中,身份认证与授权是不可或缺的一环。SSO(Single Sign-On,单点登录)和OAuth 2.0作为两种重要的身份认证与授权机制,各自具有独特的特点和应用场景。本文将详细探讨这两种机制的区别,并分享在工作学习中的技术干货。
53 0
|
4月前
|
安全 数据安全/隐私保护 UED
|
11月前
|
存储 数据安全/隐私保护
我对SSO单点登录和OAuth2.0的理解
单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,用户只需一次登录就可以访问所有相互信任的应用系统。比如我们登录了公司的OA系统之后,在页面上点击邮件系统,则无需再跳转到邮件的登录页面,点过去就直接登录成功了。
173 0
|
存储 NoSQL 应用服务中间件
SSO(单点登陆)
SSO(单点登陆)
|
存储 安全 前端开发
基于OIDC的SSO单点登录
基于OIDC的SSO单点登录
477 0
|
安全 前端开发 JavaScript
|
消息中间件 前端开发 JavaScript
SSO 单点登录和 OAuth2.0 的区别和理解
SSO 单点登录和 OAuth2.0 的区别和理解
|
前端开发 算法 安全
单点登录 SSO 的实现
单点登录让你一次性解决多应用认证的繁琐
391 3
单点登录 SSO 的实现
JavaWeb - SSO单点登录
JavaWeb - SSO单点登录
188 0
JavaWeb - SSO单点登录
|
JSON NoSQL 应用服务中间件