SSO单点登录原理及实现

一、SSO简介

单点登录( Single Sign-On , 简称 SSO )是多个相关但独立的软件系统访问控制的一个属性。通过使用该属性,用户登录与单个ID和密码来访问所连接的一个或多个系统,而不使用不同的用户名或密码,或在某些配置中无缝登录在每个系统上,它是比较流行的服务于企业业务整合的一种解决方案。总结一句话,SSO 使得在多个应用系统中,用户只需要 登录一次 就可以访问所有相互信任的应用系统。

二、登录

1、流程图

在这里插入图片描述

2、流程图详解

① 验证局部会话
用户访问系统A受保护资源,系统A验证局部会话不存在,跳转至SSO认证中心,并将系统A当前请求地址和系统A的统一回调地址作为参数传递过去。
② 验证全局会话
SSO认证中心验证全局会话不存在,将用户引导至登录页面。
③ SSO登录
用户输入用户名、密码提交至SSO认证中心登录,身份认证成功之后创建全局会话并生成ticket令牌,将ticket令牌作为参数跳转到系统A。
④ 验证ticket令牌有效性
系统A调用SSO认证中心验证ticket令牌有效性,SSO认证中心验证ticket令牌有效之后,保存系统A的注销地址,并返回系统A令牌验证结果。
⑤ 创建局部会话
系统A接收到令牌有效之后,创建局部会话,并跳转到用户访问资源。

三、注销

1、流程图

在这里插入图片描述

2、流程图详解

① 系统A发起注销请求
系统A获取ticket令牌,将ticket令牌作为参数向SSO认证中心发起注销请求。
② SSO认证中心执行注销
SSO认证中心校验ticket令牌有效性,销毁全局会话,取出ticket令牌对应的所有注册的SSO客户端地址,向客户端发送注销请求,并跳转到登录页面。
③ SSO客户端执行注销
客户端销毁局部会话。

3、触发注销

① 用户人工发起注销
② 全局会话超时自动触发注销

参考资料:CAS单点登录(一)——初识SSO

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值