前言:
现在咱们对“c语言注册用户名和密码实现登陆能输入学生信息”都比较珍视,兄弟们都需要学习一些“c语言注册用户名和密码实现登陆能输入学生信息”的相关文章。那么小编在网上汇集了一些有关“c语言注册用户名和密码实现登陆能输入学生信息””的相关资讯,希望同学们能喜欢,大家快快来了解一下吧!大家好,我是mikechen。
单点登录经常在大型网站被使用到,也是架构师的必备技能,下面我就重点来详解单点登录系统的原理机制与应用场景@mikechen
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
单点登录
单点登录全称是Single Sign-On,简称 SSO,是一种身份验证和授权机制,允许用户在一次登录后,即可访问多个不同的应用程序或系统。
为什么需要单点登录
例如:阿里旗下有淘宝、天猫...等网站,用户一次操作或交易可能涉及到几十个子系统的协作。
如下图所示:
如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。
所以单点登录要解决的就是,用户只需要登录一次就可以访问所有相互信任的应用系统。
单点登录系统
比如典型的就是CAS单点登录系统,CAS全称是Central Authentication Service,是一种单点登录的一种实现方式。
CAS 是 耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法。
CAS 的核心组件包括:CAS Server、CAS Client、Service三大组件。
如下图所示:
1.CAS Server
CAS 服务器负责用户的身份验证和授权,生成并管理令牌。
用户首次登录时,CAS 服务器会验证用户的凭据,生成一个令牌,并在成功登录后返回给应用。
2.CAS Client
CAS 客户端集成到应用程序中,用于将用户重定向到 CAS 服务器进行登录,并在登录成功后,向 CAS 服务器验证令牌。
3.Service
Service 表示受保护的应用,用户想要访问的资源。每个 Service 都有一个唯一的标识符。
单点登录的实现原理
这里我就以CAS来举例说明单点登录系统:
CAS 主要是提供一个中心化的身份验证服务,允许用户在一次登录后,然后通过生成令牌(Ticket)来访问多个关联的应用,无需为每个应用都重新输入用户名和密码。
如下图所示:
单点登录工作原理如下:
用户访问应用 A: 用户首次访问应用 A,并尚未进行登录,应用 A 检测到用户未登录,将用户重定向到 CAS 服务器。重定向到 CAS 服务器: 应用 A 将用户重定向到 CAS 服务器的登录页面。CAS 登录: 用户在 CAS 登录页面中输入用户名和密码,CAS 服务器验证凭据的有效性,如果成功,生成一个令牌(Ticket)。返回令牌给应用 A: CAS 服务器将令牌返回给应用 A,应用 A 使用令牌向 CAS 服务器请求用户信息,以确认用户身份。访问其他应用: 用户现在已经在应用 A 中登录,并拥有有效的令牌,当用户访问其他应用 B 时,应用 B 发现用户未登录,将用户重定向到 CAS 服务器。返回令牌给应用 B: 用户无需再次输入凭据,CAS 服务器直接返回令牌给应用 B。应用 B 向 CAS 服务器验证令牌: 应用 B 向 CAS 服务器发送令牌,以验证用户的登录状态,如果令牌有效,CAS 服务器将响应用户信息。用户访问其他应用: 用户继续访问其他关联的应用,不需要再次登录,因为 CAS 服务器会验证令牌并提供用户信息。单点登录应用场景
以下是一些常见的 CAS 单点登录应用场景:
1.电子商务平台
对于拥有多个关联网站或子品牌的电子商务公司,CAS 单点登录可以为用户提供在不同站点之间的无缝购物体验。
2.大型企业内部门户
在大型企业中,有许多内部应用,如人力资源系统、财务系统、协作工具等。
CAS 单点登录可以让员工通过一次登录访问所有这些应用,无需为每个应用都输入密码。
3.教育机构门户
学校或大学通常有多个校园门户和在线学习平台,CAS 单点登录可以让学生、教职员工在一次登录后,访问这些不同的平台,提高用户体验。
4.金融服务
金融机构通常提供多个在线服务,如个人银行、投资管理、保险,CAS 单点登录可以方便客户在这些服务之间切换。
以上
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。