单点登录实现原理和单点登录服务器设计

热心市民刘先生♛ 热心市民刘先生♛     2023-01-31     395

关键词:

sso单点登录是什么

java实现SSO
什么是SSO
SSO(Single Sign On)单点登录是实现多个系统之间统一登录的验证系统,简单来说就是:有A,B,C三个系统,在A处登录过后,再访问B系统,B系统就已经处于了登录状态,C系统也是一样。举个生活中栗子:你同时打开天猫和淘宝,都进入login界面,都要求你登录的,现在你在淘宝处登录后,直接在天猫处刷新,你会发现,你已经登录了,而且就是你在淘宝上登录的用户。说明他们实现了SSO,并且持有相同的信息。
当然这个特性意味着它的使用场景是:同一公司下的不同子系统,因为对于SSO来说,每一个子系统拥有的信息都一样,是用户的全部信息,如果是不同公司,那这肯定不合适。现在的天猫和淘宝就是这样的一套SSO。

客户端实现步骤

客户端api

1.sso/login?service=http://www.baidu.com 登录接口判断用户是否登录

  • 未登录跳转至登录界面
  • 已登录 返回 https://www.baidu.com/?ticket=ST-4267646-GW54oRgSfRCIdffuJNSt-cas service地址附带ticket

票据 注意票据是一次性的,根据当前访问login接口的service和session组合生成一次ticket 使用后失效

2./sso/validate?ticket=ST-3106711-eQcTqZUlfdU3R2fmL6Wk-cas&service=http://www.baidu.com 票据验证接口

  • 更具票证获取用户账号接口
  • 验证参数有ticket 和service 中的 url 这个url 需和login 中获取票证的url一致

3.如获取用户账号成功则登录当前系统,设置保存当前系统用户状态

服务端

1.login 接口功能

  • 判断是否登录
  • 是: 公共步骤
  • 否:进入登录界面
    • 进行登录将登录后userId 存入session 中

公共步骤:生成 url+sessionId+md5 生成ticket 将ticket存入session中重定向service 中的url 并且附带ticket参数

2.获取用户账号接口validate

  • 根据validate 接口获取对应ticket 和url 在session 中进行校验判断是否已有登录标识,如果有则返回userId信息

3.out接口,退出单点登录接口
-清除对应session缓存的用户信息

单点登录原理和简单实现

...为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系  但这也同时意味着,任何用户都能通过浏览器访问服务... 查看详情

单点登录原理与实现

单点登录原理与实现    关于单点登录,在项目中用到的是对于cookie中设置的domain为二级域名,这样二级域名下的cookie都可以共享,将sessionId存储在cookie中,对于session信息,则是将sessionId和session信息分别作为键值对存储在R... 查看详情

oauth2.0原理流程及其单点登录和权限控制

作者:王克锋kefeng.wang/2018/04/06/oauth2-sso单点登录是多域名企业站点流行的登录方式。本文以现实生活场景辅助理解,力争彻底理清OAuth2.0实现单点登录的原理流程。同时总结了权限控制的实现方案,及其在微服务架构... 查看详情

第十篇单点登录原理和jwt实现(代码片段)

单点登录原理及JWT实现波波烤鸭一、单点登录效果  首先我们看通过一个具体的案例来加深对单点登录的理解。案例地址:https://gitee.com/xuxueli0323/xxl-sso?_from=gitee_search把案例代码直接导入到IDEA中  然后分别修改下server... 查看详情

第十篇单点登录原理和jwt实现(代码片段)

单点登录原理及JWT实现波波烤鸭一、单点登录效果  首先我们看通过一个具体的案例来加深对单点登录的理解。案例地址:https://gitee.com/xuxueli0323/xxl-sso?_from=gitee_search把案例代码直接导入到IDEA中  然后分别修改下server... 查看详情

单点登录——实现原理

    单点登录,Single Sign On,也就是我们平时所说的SSO。一般大型的系统平台,都会用到这个东西。它解决了频繁登录、验证的过程,也就是用户的一次登录得到其他系统的信任。可以说:一次登录,全... 查看详情

shiro单点登录原理实例

...于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录。JasigCAS单点登录系统分为服务器端和客户端,服务器端提供单点登录,多个客户端(子系统)将跳转到该... 查看详情

sso单点登录原理及实现

...类型。2.SSO实现原理a.打开统一的登录界面b.登录,同时向服务器写入Cookiec.进入其他应用d.判断是否有对应的Cookie  如果没有则进入统一的登录界面  如果有则进入下一步验证e.服务器验证Cookie的有效性  如果有效则进入下... 查看详情

如何设计一个单点登录系统?

在上一篇文章如何设计一个单点登录系统(2)?中主要讲解了可跨域SSO系统服务端,客户端在登录,登出过程中分别应该承担的职责,本文将重点聊一下具体技术实现,源码地址:https://github.com/zhoudapeng/zsso首先聊服务端的实现... 查看详情

如何设计一个单点登录系统?

如何设计一个单点登录系统(1)? 中,我着重从单点登录系统的由来,单点登录的概念,一个好的单点登录系统应该具备的特点以及本人亲自实现的一个单点登录系统几方面做了些介绍,这篇文章主要介绍下具体实现方案... 查看详情

单点登录原理与简单实现

...为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系  但这也同时意味着,任何用户都能通过浏览器访问服务... 查看详情

单点登录原理与简单实现

...为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系  但这也同时意味着,任何用户都能通过浏览器访问服务... 查看详情

单点登录原理与简单实现

...为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系   但这也同时意味着,任何用户都能通过浏览器访问... 查看详情

单点登录原理与简单实现

...为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系   但这也同时意味着,任何用户都能通过浏览器访问... 查看详情

单点登录原理与简单实现

...为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系   但这也同时意味着,任何用户都能通过浏览器访问... 查看详情

单点登录原理与简单实现

...为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系但这也同时意味着,任何用户都能通过浏览器访问服务器资... 查看详情

单点登录原理与简单实现

...为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系  但这也同时意味着,任何用户都能通过浏览器访问服务... 查看详情

单点登录原理与简单实现

...为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系  但这也同时意味着,任何用户都能通过浏览器访问服务... 查看详情