SSO单点登录系统的搭建——Keycloak

什么是SSO?

    举个例子,你登录到淘宝、天猫、支付宝时,使用的是同一套账号密码,当你在其中一个网站登出后,其他网站也会随之登出。这就是单点登录(SSO)。

开源的主流用户系统介绍

    目前主流的开源用户系统中做的比较好的有apereo家的CASRed Hat家的KeyCloak。二者的区别不在此过多赘述,有兴趣的朋友可以参考此文章。
    就我个人而言,Keycloak的文档比CAS写的好太多。CAS的文档我总是看的云里雾里。So, CAS就被我抛弃了。Keycloak在客户端开发的支持方面做的也很好。官方提供了很多工具方便你使用spring、nodejs等开发框架快速搭建一个keyCloak的客户端。

Keycloak的搭建

1. 在windows/linux中搭建

  1. Keycloak是基于java开发的,也就是说系统中首先得安装jdk,且jdk版本不得低于jdk11。

  2. 前往官网下载安装包。

  3. 将下载的安装包解压并重命名为keycloak。

  4. 修改keycloak相关配置,也可以保持默认配置,直接操作第五步。
    打开conf文件夹下的keycloak.conf文件修改keycloak的相关配置。更多的配置参考此处。

    KC_HTTP_PORT=8090  #修改端口号为8090
    

  5. 打开命令行工具,定位到keycloak目录下。运行以下命令。
    windows:

    bin/kc.bat start-dev
    

    linux:

    bin/kc.sh start-dev
    
  6. 访问 http://localhost:8090 (按照你所配置的端口,如果没有配置的话,默认为8080)。首次登录会让你创建管理员。

  7. 使用第6步创建的管理员,登录Administration Console 。

2. 使用docker安装。

  1. 下载Keycloak的docker镜像。
    Keycloak的docker镜像并没有存储在docker hub中。而是存储在此处。

    docker pull quay.io/keycloak/keycloak
    
  2. 创建容器
    docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak start-dev
    
  3. 访问 http://localhost:8080 。管理员账号和密码为admin。

3. 在spring boot 中使用嵌入式的Keycloak

    该方案我还没有尝试过。可以参考这篇文章。Keycloak Embedded in a Spring Boot Application。

如何在Spring应用中使用KeyCloak

可以参考我下一篇文章使用Spring Boot快速搭建Keycloak Client。

SSO单点登录系统的搭建——Keycloak相关推荐

  1. SpringBoot+MyBatis+Redis实现SSO单点登录系统(一)

    SpringBoot+MyBatis+Redis实现SSO单点登录系统(一) 一.SSO系统概述 SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可 ...

  2. sso单点登录系统(解决session共享)

    场景:假设一个用户将自己的登录信息提交到后台,如果session保存的信息分布在多台机器上,并且不共享,那么可能导致用户的登录信息出现短暂的丢失,为什么这样讲,因为用户访问服务器中间还要经过负载均衡服 ...

  3. SpringBoot+MyBatis+Redis实现SSO单点登录系统(二)

    SpringBoot+MyBatis+Redis实现SSO单点登录系统(二) 三.代码 配置文件配置数据库,redis等相关的信息. # See http://docs.spring.io/sprin ...

  4. 互联网分布式微服务云平台规划分析--SSO单点登录系统

    介绍 鸿鹄云架构[SSO单点登录系统]为所有微服务提供统一的用户认证服务,系统本身属于微服务模式,使用JWT+Redis分布式存储方案,确保不同微服务.系统之间的安全通讯和统一用户校验.认证.在整个服 ...

  5. Shiro整合SSO单点登录系统

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37797991/article/ ...

  6. 手撕一套sso(单点登录)系统之原理篇1

    在手撕之前,你首先要了解一些原理,我写的案例成品可以访问zauth,语言是Java8. 目录 1.关于Http 2.用户信息怎么存?存什么?存在哪? 2.1 使用前端存储技术Storage或index ...

  7. SSO单点登录系统的实战运用

    通用介绍 单点登录系统,简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.任何SSO框架都需要创建统一的认 ...

  8. CAS实现SSO单点登录-CAS Server搭建

    最近公司连续接了三四个单点登录集成的项目,由我们公司提供CAS Server端的,也有需要我们把Client与其他公司提供的Server端对接的,我负责把我们公司的一个Client与另外一个公司提供的 ...

  9. sso单点登录系统的理解

    单点登录有两种方式,一种是跨域,一种是不跨域. 一:在不跨域的情况下, 只需要将cookie设置为顶域状态,即可以实现cookie的共享. 二:跨域登录 用户访问app系统,app系统是需要登录的,但 ...

  10. 基于cookie的SSO单点登录系统

    利用COOKIE实现单点登录功能 近期公司要求帮一个项目实现单点登录功能,在综合考量下决定采用cookie实现,大概的流程如下图所: 转载于:https://www.cnblogs.com/bugge ...

最新文章

  1. nginx多层反向代理获取客户端真实ip
  2. python多进程存储数据_Python 多进程及进程间通信
  3. c语言不安全库_为什么 C 语言仍然占据统治地位?
  4. python id()函数(返回对象在内存地址中的唯一标识)
  5. android 时间戳 时区,三句话理解时区与时间戳
  6. php改变iframe的src,js动态改变iframe的src属性
  7. 信息学奥赛一本通 1054:三角形判断 | OpenJudge NOI 1.4 16
  8. java 正则 惰性匹配_正则表达式 - 贪婪与非贪婪(惰性)
  9. Win11任务栏不重叠怎么设置,Win11任务栏不重叠设置方法
  10. Linux上zk节点在哪存着,Kafka在Zookeeper上的节点信息和查看方式
  11. centos 5.x 大硬盘管理
  12. c语言入门自学ppt,《C语言基础知识》PPT课件.ppt
  13. vue - webpack.dev.conf.js for FriendlyErrorsPlugin
  14. go语言io reader_Golang io.TeeReader()用法及代码示例
  15. 使用python绘制常用的图表
  16. 故障树最小割集程序化设计方案
  17. 关于编译错误ambiguous call of overridden pre R14 auto-imported BIF get/1
  18. 瞬变抑制二极管的选型
  19. python学习总结4 - 流程控制工具
  20. Java猜拳游戏代码实验总结_java猜拳小游戏程序设计实验报告.doc

热门文章

  1. matlab仿真怎么添加干扰信号,噪声干扰信号的matlab仿真
  2. cad 切图_CAD怎么切图?
  3. USB写保护的一些工具记录
  4. 我在Linux开发板上跑的第一个Qt程序
  5. EDEM快速填充的方法
  6. 软件质量管理QM、QA、QC的区别
  7. mac上php的集成环境
  8. 在线HTTP POST/GET接口测试 地址
  9. 如何使用Bootbox ?
  10. 舍不得花钱买1stOpt,不妨试试这款免费的拟合优化神器【openLU】