QR 코드 스캔 QR 코드 업로드
도메인 스토어
링크 차단을 방지할 플랫폼 유형 선택
허용된 플랫폼 유형 선택

企业应用设计——SSO单点登录

你有没有碰到过这种办公场景:公司内部系统越建越多,OA、CRM、财务、报表……每打开一个就要输一遍账号密码,一天下来登录比干活还累,密码还经常记混。其实这背后就是一个很朴素的需求——能不能只登录一次,就能在所有这些系统里自由切换?

这个问题的答案,就是单点登录,也就是我们常说的SSO。



它很像罗振宇在跨年演讲里提到的一个概念,叫“新基础设施”。他举了完美日记的例子,说这个品牌两年就走完了传统企业十几年的路,靠的就是成熟的供应链、电商平台、物流、支付这些已经铺好的基础设施,企业只需要专注做好自己的核心能力。在企业软件的世界里,其实也有类似的逻辑——很多通用能力已经像水电一样,可以拿来就用,不用每一行代码都从零开始写。SSO单点登录,就是其中非常典型的一项。

在软件开发的早期,每上一个系统,程序员就得从头写一套用户登录模块。后来系统多了,A系统用一套账号,B系统又用另一套,员工得同时记住好几组密码,IT部门天天被“密码忘了”的求助轰炸。为了解决这个问题,大家先想到的是把用户数据打通,比如把数据库里的用户表统一起来,让所有系统都读同一份账号信息。这样至少不用记好几套密码了,但麻烦并没有彻底消失:你每打开一个新系统,还是得重新输一遍密码。刚登录完OA,切到财务系统,页面一跳转,又让你再登一次。次数一多,体验实在说不上好。

正是在这种背景下,SSO单点登录出现了。它的目标很明确:你只要在一个地方登录一次,其他所有相互信任的系统就都能识别你的身份,不用再反复登录。

为了把这件事说清楚,可以用一个生活场景来类比一下。

员工小明第一天去公司报到,领到了一张一卡通。他走到大门口,门卫大爷要查他的卡,可小明还没办卡呢。大爷翻开通讯录,找到人力资源部的电话,让小明自己跟人力说。小明报了姓名、手机号、部门,人力小姐姐在系统里一查,确认有这个人,就给了他一张卡。小明拿着卡给大爷看,大爷不放心,又打电话问人力这张卡是不是真的。人力说有效,大爷这才放行。



之后,小明拿着这张卡去食堂吃饭,去便利店买东西,对方只需要确认这张卡是公司发的、真实有效,就不用每次都跑回人力资源部证明自己是谁。下班后把卡一还,这张身份凭证也就失效了。

这个流程,就很像经典的SSO实现框架CAS,也就是中央认证服务。把它还原成技术语言,大致是这样:用户想访问一个业务系统,比如OA,系统里的过滤器会先判断他有没有登录过。如果没登录,系统就会把用户重定向到一个统一的认证中心。认证中心返回一个登录页面,用户输入用户名和密码,认证中心验证通过后,会生成一张“票”,再把用户带回原来的业务系统。

业务系统拿到这张票,还必须再跑去找认证中心确认:“这票是真的吗?”认证中心确认有效,业务系统才让用户进去,正常显示页面。当用户再访问另一个业务系统,比如财务系统,同样会带着这张票去认证中心验证。认证中心一看,票还在有效期内,就直接放行,用户也就不用再输密码了。

整个过程的核心,就是“认证中心”这个角色。它把身份校验这件事从各个业务系统里抽离出来,统一管理。业务系统只负责问“这人是谁”,不自己管密码。

当然,SSO并不只有这一种玩法。除了CAS,还有几种常见的实现方式,各有各的适用场景。SAML更多出现在企业级的老系统里,尤其是一些SaaS服务的集成。OAuth则更偏向授权,比如你用一个网站登录时,允许它访问你在另一个网站上的头像、好友列表,但不需要把密码告诉它。而OIDC是在OAuth 2.0的基础上加了一层身份认证,专门用来解决“你是谁”的问题,现在很多互联网应用都用它来做第三方登录。此外,也有一些商业方案,比如Oracle OAM、阿里云的IDaaS,适合对稳定性、合规性要求更高的大型企业。具体用什么,还是得看业务实际需求,没有哪个方案是绝对最好的。



很多人觉得SSO只是让登录更方便,但它的意义其实要深得多。



从数据应用的角度看,SSO把用户身份数据统一起来之后,企业就能更好地追踪用户行为,打通不同系统之间的用户画像。这对私域流量的建设、数据中台的搭建都很有帮助。现在很多面向C端的产品,内部也在用SSO的思路,把会员体系、积分系统、客服系统串在一起,用户一个账号就能走遍所有场景。

从产品研发的角度看,好处也很直接。首先,底层数据结构统一了,以后再有新系统接入,直接对接认证中心就行,不用再重复造轮子。其次,统一的鉴权机制也让数据安全更容易管控,认证中心的高可用性可以保证整体系统的稳定性。最后,开发效率会明显提升,尤其在大型业务系统背后,往往需要几十个微服务协同工作,没有一套统一的身份识别机制,光是权限管理就能把人搞疯。

说到底,SSO解决的不仅仅是“登录”这一步的体验问题,它更像是一个企业数字化能力的地基。地基打得牢,上面的应用才能盖得又快又稳。