我认为发明单点登录 【SSO】 的就是个天才
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
不知道你有没有过这种体验—— 公司给你开了 8 个系统账号。CRM 一个密码,OA 一个密码,企业邮箱又一个密码,加上 Jira、Confluence、Wiki、代码仓库、监控平台…… 每天早上来上班,第一件事不是看需求,是先输 5 遍密码。 更离谱的是,每个系统的密码策略还不一样。有的要求大写字母,有的强制加特殊字符,有的 90 天强制改一次。等你终于把所有密码记熟了,突然有一天 OA 提醒你:密码已过期。崩溃不? 然后,有人发明了 SSO(Single Sign-On,单点登录)。 你只需要登录一次。一次。然后你就可以在所有系统之间自由穿梭,不用再输第二遍密码。 就这一个想法,我觉得这个人真是个天才。 SSO 到底是个什么东西?借用一句通俗的解释:
专业一点说:SSO 是一种身份认证机制。用户在一个认证中心完成登录后,就可以访问多个互相信任的应用系统,无需重复认证。 核心就三个字:登一次。 在 SSO 出现之前,世界是什么样的?每个系统各管各的。你有 N 个系统,就有 N 套账号密码体系。 1. 用户体验极差 反复登录、反复输密码。密码多了记不住,只能写在便签上贴显示器旁边——安全部门看了血压要飙。 2. 安全风险极高 便签密码只是冰山一角。用户在多个系统用同一个密码(甚至 123456),只要一个系统被攻破,全线溃败。这叫「水桶效应」——安全取决于最薄弱的那块板。 3. 运维管理噩梦 新员工入职,IT 要挨个系统开账号,半天过去了。员工离职,又要挨个系统注销——漏掉一个,前任还在看你们的数据。这不是危言耸听,真发生过。 算一笔账:1000 人的公司,用 10 个系统,每个管理员处理一个账号要 5 分钟。入职 1 人 = 50 分钟,离职 1 人 = 50 分钟。一年流动 200 人,那就是 10000 分钟 = 166 个小时——将近一个月的工时。 SSO 说:别这样,一次搞定。 天才在哪儿?拆解 SSO 的架构思想SSO 看起来简单,但背后的设计思想极其优雅。我拆成三层来讲: 第一层:信任转移传统模式里,每个系统都要自己验证你是谁。 SSO 把这件事变成了——「你不用自己验,你信我就行」。 认证中心(ID Provider)说这个人没问题,业务系统(Service Provider)就认。这套「我替你背书」的信任模型,本质上是在分布式系统之间建立了一套联邦身份体系。 第二层:票据机制SSO 不把你的密码发给每一个系统。那太危险了。 它用的是一张临时票据(Ticket)。可以理解为:你进高铁站刷了身份证,工作人员给你一张临时通行证,之后你拿这张通行证坐车,不需要再掏身份证。 具体到协议层面,以最常见的 CAS(Central Authentication Service)为例:
第三层:协议解耦最妙的是,SSO 没规定你必须用某种特定技术实现。 你可以用 CAS 协议(经典老牌,教育圈很流行),也可以用 SAML 2.0(企业级的 XML 老大哥),还可以用 OAuth 2.0 / OpenID Connect(互联网时代的宠儿,Google、微信登录本质上都与此相关)。 认证中心不关心业务系统是 Java 还是 Python,前端是 Vue 还是 React。协议就是那个「通用语言」。这叫关注点分离——认证归认证,业务归业务,各司其职。 更大的想象:从 SSO 到 IAMSSO 是入口。一旦有了统一的身份认证中心,你可以在这上面做更多事情:
这套东西演进到今天,叫 IAM(Identity and Access Management,身份与访问管理),是每一个正经公司的 IT 基础设施标配。 而这一切的起点,就是那个朴素的想法:「能不能只登一次?」 所以为什么说他是个天才?因为真正厉害的想法,往往一句话就能讲清楚。 「登一次,处处通。」六个字。 但这六个字背后,是对分布式系统信任模型的深刻理解,是对用户体验和安全的极致平衡,是用一张票据替代密码传递的精巧设计。 这就是那种,你越琢磨越觉得厉害的发明。 简单到极致,就是天才。 该文章在 2026/8/17 18:20:25 编辑过 |
关键字查询
相关文章
正在查询... |