You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
黄海 01336c5ef5
'commit'
3 years ago
..
Config add docker config 4 years ago
Const 'commit' 5 years ago
Controller commit 4 years ago
Dao commit 5 years ago
Handler 'commit' 5 years ago
Middleware 'commit' 4 years ago
Model 'commit' 5 years ago
Service 'commit' 5 years ago
Shell 'commit' 5 years ago
Templates 'commit' 5 years ago
Test 'commit' 5 years ago
Tools 'commit' 5 years ago
Utils commit 4 years ago
docs 'commit' 5 years ago
models 'commit' 5 years ago
static update 5 years ago
static_React 'commit' 5 years ago
接入示例 UPDATE 4 years ago
README.md 'commit' 5 years ago
autologin.html 'commit' 5 years ago
dsSso.exe 'commit' 4 years ago
go.mod 'commit' 3 years ago
go.sum 'commit' 3 years ago
main.go 'commit' 4 years ago
一键发布.cmd 'commit' 5 years ago
升级Gin.txt 'commit' 4 years ago

README.md

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

东师理想统一认证2.0

介绍

参考SSO的基本原理自主研发而成主要的目标是自主研发原理清晰可以按要求随意修改。

软件架构

软件架构说明

第三方系统的接入流程

对于第三方系统的接入要求:
1、实现dologout接口并将地址记录到 sso server的数据库中。

2、在接收到 sso server的会话ID鉴权通过信息后记录此ds_sso_sessionid到第三方自己的redis或ehcache中.设置存活时间为24小时。
示例:
base_ds_sso_sessionid
base:系统的简称,之所以这样做不是直接使用ds_sso_sessionid做为key,是因为有些系统是使用同一个redis的如果同时接入统一认证
会造成些 key的冲突建议采用系统前缀方式进行定义key值。

3、第三方系统需要对cookie中的identity_id,person_id,person_name,ds_sso_sessionid进行统一的token计算此 token应该是一个使用
密码加密后生成的一个票据值,当然,这是第三方系统自已的管理逻辑,不属于接入统一认证才产生的概念。这是防止用户使用技术手段对系统使用
的信息进行恶意修改而采用的,具体的方法参考下面的示例。

示例Java AES加解密Java
https://www.jianshu.com/p/ee3487daca34

golang的AES加密和解密的三种模式实现CBC/ECB/CFB
https://blog.csdn.net/evkj2013/article/details/104061752

4、每个请求进行时第三方系统进行拦截判断cookie中的ds_sso_sessionid是否存在不存在则踢到统一认证中心。
存在的话需要与自己本地的redis或ehcache中数据进行检查是不是存在存在则放行不存在则踢到统一认证中心。

5、dologout接口的内容实现清除redis 或者 encache中相关的session_id.

TODO

1、对接入的系统名单进行管理和限制未经授权的系统不允许使用此统一认证。
2、对于退出方法进行扩展采用Httpclient办法对客户端的退出接口进行调用。
3、扩展微信扫码登录。
4、扩展QQ第三方认证登录。
5、扩展手机号登录。需要对手机号进行验证码确认并检查手机号是不是已存在。
6、扩展邮箱登录。(需要对邮箱进行验证链接确认,并检查邮箱是不是已存在。)
7、SpringBoot的接入示例JFinal的接入示例Golang+Gin的接入示例。包括推荐在客户端完成的Cookie校验机制等。