单点登录全方位详解 (图文全面总结)

单点登录是非常核心的分布式系统,在互联网大型架构有普遍的使用,下面我就全面来详解单点登录@mikechen

单点登录

单点登录(SSO)是一种身份认证机制,用户只需在一个地方进行身份验证,之后便可访问系统中的所有相关资源,而无需在每个系统中重复登录。

单点登录全方位详解 (图文全面总结)-mikechen

传统的用户登录系统,要求每个应用都独立进行身份验证,这不仅增加了管理成本,也影响了用户体验。

为了解决这一问题,单点登录(SSO,Single Sign-On)应运而生,它允许用户在一次认证后,能够访问多个应用系统而无需重新登录。

其核心目标是实现“一次登录,多次使用”,这种技术在提升用户体验的同时,减少了因频繁登录带来的安全风险。

单点登录原理

SSO的核心原理:是通过引入一个中央的认证服务,使得所有需要认证的应用系统,依赖于该认证服务来验证用户身份。

用户在一次认证后,获得一个身份令牌(Token),该令牌可以用于访问所有信任的应用系统,而不需要再次输入用户名和密码。

单点登录全方位详解 (图文全面总结)-mikechen

CAS的基本原理,是通过一个中央认证服务器(CAS Server)来集中管理用户的身份验证。

核心组件包括:

CAS Server(身份提供者,IdP):负责用户身份的验证、和票据的颁发。

Service Provider(SP,服务提供者):需要验证用户身份的应用系统,SP与CAS Server合作,确保用户身份验证。

Ticket:CAS的认证过程依赖于票据机制,用户在认证过程中会获得一个Ticket,SP使用该Ticket向CAS Server验证用户身份。

核心流程,大致如下:

1:首次登录

用户在认证中心进行身份验证。

认证中心颁发身份验证令牌、或Cookie。

2:访问受保护资源:

用户访问其他应用系统,应用系统验证用户身份信息。

应用系统,允许用户访问受保护的资源。

3:登出

用户在认证中心、或应用系统登出。

认证中心、或应用系统清除用户身份信息。

 

单点登录应用

许多大型互联网应用都包含多个子系统,例如:电商平台的购物、支付、售后等…模块。

最典型的,就是阿里的有非常多的系统,通过SSO实现登陆一次,即可访问别的系统。

例如,用户登录了淘宝,那么用户登录天猫的时候,也会自动登录。

单点登录全方位详解 (图文全面总结)-mikechen

 

还有大型企业,通常拥有众多内部应用系统,如办公自动化系统、财务系统、人力资源系统等。

如果每个系统都需要单独登录,会给员工带来极大的不便。

通过部署SSO,员工只需一次登录,即可访问所有授权的内部系统,大大提高了工作效率。

mikechen

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

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

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

评论交流
    说说你的看法