SSO -单点登录的实现原理

1.什么是单点登录?

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

2.常用的认证系统
  • WEBS-SSO(简单编程,基于Cookie,轻量级)

百度百科:
用户在访问页面1的时候进行了登录,但是客户端的每个请求都是单独的连接,当客户再次访问页面2的时候,如何才能告诉Web服务器,客户刚才已经登录过了呢?浏览器和服务器之间有约定:通过使用cookie技术来维护应用的状态。Cookie是可以被Web服务器设置的字符串,并且可以保存在浏览器中。当浏览器访问了页面1时,web服务器设置了一个cookie,并将这个cookie和页面1一起返回给浏览器,浏览器接到cookie之后,就会保存起来,在它访问页面2的时候会把这个cookie也带上,Web服务器接到请求时也能读出cookie的值,根据cookie值的内容就可以判断和恢复一些用户的信息状态。Web-SSO完全可以利用Cookie技术来完成用户登录信息的保存,将浏览器中的Cookie和上文中的Ticket结合起来,完成SSO的功能。
为了完成一个简单的SSO的功能,需要两个部分的合作:
1、统一的身份认证服务。
2、修改Web应用,使得每个应用都通过这个统一的认证服务来进行身份校验。

  • CAS(独立安装一套系统,重量级)

  • OAuth2.0

    OAuth2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。 OAuth 2.0关注客户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表用户,要么允许第三方应用代表用户获得访问的权限。同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。2012年10月,OAuth 2.0协议正式发布为RFC 6749[1] 。
    我们常用的微信登陆,qq登陆就是这种机制

3.单点登陆的技术实现机制

单 点登录的机制其实是比较简单的,用一个现实中的例子做比较。黄山是安徽著名的旅游景点,也是我常去的地方。在黄山内部有许多独立的景点,例如“迎客松”、“云海”和“大天池”,都可以在各个景点门口单独买票。很多游客需要游玩所有德景点,这种买票方式很不方便,需要在每个景点门口排队买票,钱包拿 进拿出的,容易丢失,很不安全。于是绝大多数游客选择在大门口买一张通票(也叫套票),就可以玩遍所有的景点而不需要重新再买票。他们只需要在每个景点门 口出示一下刚才买的套票就能够被允许进入每个独立的景点。
单点登录的机制也一样,如下图所示,当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录(1);根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据--ticket(2);用户再访问别的应用的时候(3,5)就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性(4,6)。如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。
这里写图片描述

4.新SSO代替shiro session manage
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单点登录(Single Sign-On,简称SSO)是一种身份认证和授权机制,允许用户使用一组凭据(如用户名和密码)登录到多个应用程序或系统中,而无需为每个应用程序单独进行认证。 SSO实现原理通常涉及以下几个主要组件: 1. 身份提供者(Identity Provider,简称IdP):身份提供者是负责用户身份验证和授权的中心服务。它维护用户的身份信息,并为用户生成令牌(Token)。 2. 服务提供者(Service Provider,简称SP):服务提供者是需要接受SSO认证的应用程序或系统。它依赖于身份提供者来验证用户身份,并根据用户的授权信息提供相应的服务。 3. 用户代理(User Agent):用户代理是指用户使用的浏览器或移动设备等客户端应用程序。用户代理在用户登录时与身份提供者进行交互,并在成功认证后将令牌发送给服务提供者。 下面是SSO的基本实现流程: 1. 用户访问服务提供者的应用程序,并尚未进行身份验证。 2. 服务提供者检测到用户未经身份验证,将用户重定向到身份提供者的登录页面。 3. 用户在身份提供者的登录页面上输入凭据(如用户名和密码)进行身份验证。 4. 身份提供者验证用户的凭据,并生成一个令牌,其中包含有关用户身份和授权的信息。 5. 身份提供者将令牌返回给用户代理。 6. 用户代理将令牌发送给服务提供者。 7. 服务提供者接收到令牌后,向身份提供者验证令牌的有效性和真实性。 8. 验证成功后,服务提供者将用户标识为已经通过身份验证,并为用户提供相应的服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值