当前位置: 首页 > 后端技术 > Node.js

单点登录(SSO)及实现方案

时间:2023-04-03 19:20:34 Node.js

Singlesign-onSinglesign-on:单点登录,简称SSO。用户只需登录一次,即可访问所有相关可信应用的资源。企业用的会比较多,内网平台很多,但是你只需要登录一个系统。实施方案单域名:可以在根域名下植入cookie,实现单点登录多域名:常用CAS解决,新增认证中心服务。CAS(CentralAuthenticationService)是实现SSO单点登录的框架CAS实现单点登录的过程:用户访问系统A,判断未登录,则直接跳转到认证中心页面,进入在认证中心页面输入账号和密码,并生成一个token,重定向到系统A,系统A拿到token去认证中心进行认证。如果认证通过,则建立对话。当用户访问系统B,发现没有有效会话时,重定向到认证中心。认证中心发现有全局会话,新建一个commandtoken,重定向到系统B,使用系统B中的token去认证中心验证。验证成功后,建议一个系统B的本地session,具体可以参考下面的文章,里面详细解释了CAS是如何实现单点登录的SSO执行原理探索(终于明白了)一张图看懂重点CAS单点登录原理下面举例说明CAS单点登录的实现过程:1.第一次访问系统A的用户??访问系统A(www.app1.com),跳转到认证中心客户端(www.sso.com),然后输入用户名和密码登录,然后认证中心服务器SSO将cookieSSO植入认证机构(www.sso.com)的域名下,重定向到系统A用生成的ticket参数(www.app1.com?ticket=xxx)系统A(www.app1.com?ticket=xxx)请求系统A的后台serverA,serverA去serverSSO验证,通过后,在下面植入cookieAwww.app1.com2、第二次访问A系统直接携带cookieA访问后台,验证通过后登录成功。3、第三次访问系统B(www.app2.com),跳转到认证中心客户端(www.sso.com)。这时候认证中心的cookieSSO也会带上,发现用户登录了,则直接重定向到系统B(www.app2.com),带上生成的ticket参数(www.app2.com?ticket=xxx)系统B(www.app2.com?ticket=xxx)向系统B请求后台serverB,serverB去serverSSO验证,通过后在www.app2.com下植入cookieB,支付注意饼干生成的时间和种植的位置。cookieSSO,SSO域名下的cookiecookieA,系统A域名下的cookiecookieB,系统B域名下的cookie