单点登录原理详解(图文全面总结)

单点登录原理详解(图文全面总结)

单点登录是大型架构的必备技能,也是大厂经常会考察和涉及的核心内容,下面我就重点详解单点登录原理@mikechen

单点登录

单点登录(Single Sign-On,SSO)是一种用户身份验证机制,使得用户在一次登录后可以访问多个应用系统,无需每次都进行登录验证。

单点登录原理详解(图文全面总结)

单点登录(SSO),的核心目标:是简化用户的认证过程,提升用户体验,同时保证安全性。

比如:用户只需登录一次,即可访问多个应用程序、或系统,提高用户体验;

而且,单点登录系统,可以集中管理用户身份、和访问控制,减少安全风险;

并且,单点登录系统,还可以简化用户管理、和密码管理,降低管理成本。

所以,很多大型网站或者大厂,都会使用到单点登录。

 

单点登录原理

单点登录的实现原理,会包含如下组件:

单点登录原理详解(图文全面总结)

CAS Server(CAS 服务器)

CAS Server ,是 SSO 系统的核心,它负责:验证用户的身份。

主要会包含如下功能:

身份验证

当用户首次访问受保护的资源时,会重定向到 CAS Server 进行身份验证,比如:用户输入用户名和密码后,CAS Server 验证其合法性。

票据生成

验证通过后,CAS Server 会生成一个唯一的 Ticket(票据),这个 Ticket 包含了用户身份的相关信息。

CAS Client(CAS 客户端)

CAS Client :代表需要保护的应用、或服务,也就是服务提供者。

主要会包含如下功能:

票据验证

当用户访问 CAS Client 的受保护资源时,CAS Client 会检查用户是否持有有效的 Ticket;

如果没有有效的 Ticket,CAS Client 会将用户重定向到 CAS Server ,并进行身份验证。

资源访问

如果 Ticket 有效,CAS Client 就会允许用户访问相应的资源。

Ticket(票据)

Ticket: 是一个加密的字符串,包含了:用户身份信息…等等个人信息,类似于一张通行证。

每个 Ticket 只能使用一次,防止被恶意利用,并且,Ticket 有效期,过期后无效。

单点登录,整体流程如下:

单点登录原理详解(图文全面总结)

首先,用户登录

用户访问单点登录系统,并输入登录凭据(如:用户名、和密码)。

其次,身份验证

单点登录系统,对用户的登录凭据进行身份验,。如果身份验证成功,系统将生成一个会话令牌或票据(如Cookie、或Token)。

单点登录系统,将会话令牌、或票据,发送给用户的浏览器、或客户端。

然后,票据验证

保护资源接收到用户的请求后,会将会话令牌、或票据,发送给单点登录系统进行验证。

最后,授权

如果票据验证成功,单点登录系统将向保护资源返回授权结果,允许用户访问保护资源。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧