码迷,mamicode.com
首页 > 其他好文 > 详细

【SSO】一个简单的单点登录演示实现

时间:2020-10-08 19:44:38      阅读:23      评论:0      收藏:0      [点我收藏+]

标签:问题   clone   安全性   ref   测试   解决   目录   客户   需要   

业务系统的管理后台往往数量众多,且各自需要一套用户名密码来进行登录,不方便使用。因此花了点时间研究如何实现一套单点登录系统。

众所周知,SSO系统设计中,往往需要想办法解决cookie不能跨域的问题,因此本系统要求各个需要接入SSO的业务系统,也进行cookie写入。整体工作流程如下:

技术图片

 

实际上在实现的时候,为了代码逻辑更加清晰易于维护,SSO本身做了前后端分离。

 

该项目基于springboot,前端使用了vue,后端端口9999,前端端口8080

https://github.com/scaventz/x-sso

如果你对该项目感兴趣,并且进行了clone,为了能跑起来,你需要做如下工作:

  • 在host文件中配置 127.0.0.1 sso.bot.com,127.0.0.1 alert.bot.com
  • 在localhost安装并启动redis,端口保持默认6379
  • 项目根路径下的doc文件夹下,有mysql的建表语句
  • 为了前端能跑起来,需要在sso-front-vue 目录下执行 npm install 安装相关依赖,然后再执行 npm run serve 进行启动,启动后访问 sso.bot.com:8080 即可

 

也做了一个用于模拟业务系统的demo,地址如下,访问端口为8888,该项目跑起来后,访问项目根路径会看到两个登录按钮,一个普通的登录,和一个用于跳转到SSO登录的按钮,由于demo的目的是测试SSO能否正常工作,因此demo中未对普通登录进行实现

https://github.com/scaventz/x-sso-client-demo

 

要完成一套堪用的SSO,还有许多需要做的工作是本项目没有完成的,比如以下两个非常重要的点

  • 简单的系统接入方式,比如对Spring技术栈的客户端可以考虑直接提供依赖包
  • 针对不同的客户端系统,只有前端的,只有后端的,前后端都有的,安全性要求高的,安全性要求不高的,提供不同的接入方式。本项目目前只演示了SSO返回token直接跳转的方式,安全性不高,实际上更安全的方式,为SSO验密成功,生成授权码,跳转会业务系统前端,业务系统前端将授权码给到业务系统后端,其后端再通过这个授权码拿到真正的token。这中间当然还需要考虑,是否为了安全性,需要引入非对称加密算法来进一步保证token的安全性。

 

【SSO】一个简单的单点登录演示实现

标签:问题   clone   安全性   ref   测试   解决   目录   客户   需要   

原文地址:https://www.cnblogs.com/heben/p/13781692.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!