计算机系统应用教程网站

网站首页 > 技术文章 正文

SSO单点登录实现原理详解(图文并茂)

btikc 2024-10-01 08:29:39 技术文章 11 ℃ 0 评论

大家好,我是mikechen。

SSO单点登录经常在大型网站被使用到,下面我就重点来详解SSO单点登录的原理机制@mikechen

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

SSO

SSO,全称是Single Sign-On,是一种身份验证和授权机制,很多时候也被称为SSO单点登录。

SSO,允许用户只需一次登录,就能够访问多个相关系统或服务,而无需在每个系统中都进行单独的身份验证。

SSO单点登录价值

为什么需要SSO,主要包含如下3点:

第一:用户体验提升

用户只需要在一个系统中登录,即可无缝访问其他相关系统,无需多次输入用户名和密码,提高了用户的便利性和体验。

比如:阿里有多个系统,淘宝、天猫、聚划算、飞猪、菜鸟...等等。

用户如果每一次都需要登录,就会非常的繁琐,极大的影响用户体验。

如果一次登录后,别的系统都不需要登录,这会极大的提升用户体验。

第二:提高安全性

SSO,可以集中管理用户的身份验证,减少了密码泄露的风险,同时提供了更好的身份验证和授权控制。

因为用户只需在一个地方进行认证,减少了在多个系统中进行认证可能带来的漏洞。

第三:更加的高效

SSO,统一的身份验证体系使得用户管理更为简化。

例如:当一个用户需要添加或删除权限时,只需要在一个地方进行操作,所以大大的简化了用户登录。


SSO单点登录实现

上面,我谈到了SSO的价值,知道了SSO的作用,下面谈谈SSO的具体实现。

如下图所示:

这里我以CAS来举例,主要会涉及到3大组件:

1.CAS Server(CAS 服务器)

职责: 负责用户的身份验证和授权,管理用户的会话,并生成并管理令牌。

工作流程:

  • 当用户首次登录时,CAS服务器验证用户提供的凭证(通常是:用户名和密码)。
  • 在验证成功后,CAS服务器为用户生成一个令牌,这个令牌包含有关用户身份的信息。
  • CAS服务器将这个令牌返回给CAS客户端,同时也可以生成一个TGT(Ticket Granting Ticket),作为用户会话的全局凭证。
  • 令牌、或TGT、将被用于,后续的单点登录和访问控制。

2.CAS Client(CAS 客户端)

职责: 集成到应用程序中,处理用户的登录和CAS服务器的通信。

工作流程:

  • 当用户尝试访问应用程序时,CAS客户端检查用户是否已经登录。
  • 如果用户未登录,CAS客户端将用户重定向到CAS服务器以进行身份验证。
  • 用户在CAS服务器上成功登录后,CAS服务器返回一个令牌、或TGT。
  • CAS客户端使用这个令牌或TGT与CAS服务器进行验证,并获取用于访问Service的ST(Service Ticket)。

3.Service(受保护的应用)

职责: 表示用户想要访问的资源,每个Service都有一个唯一的标识符。

工作流程:

  • 用户通过CAS客户端尝试访问Service。
  • CAS客户端获取用户的ST并将其与Service一起发送给CAS服务器。
  • CAS服务器验证ST的有效性,并检查用户是否有权访问该Service。
  • 如果验证成功,CAS服务器授予用户访问Service的权限。

这三个组件共同构成了SSO单点登录系统,通过这个系统,用户可以在多个应用之间实现一次登录,即可访问受保护的资源。

以上就是SSO单点登录的介绍,希望对你掌握好SSO有所参考!

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表