☁️保山阴17~25℃北京 16/7℃上海 23/16℃广州 31/22℃深圳 31/22℃杭州 22/15℃成都 21/13℃全国天气 »登录
0% 预计阅读 3 分钟 · 1165 字

单点登录SSO怎么选协议?OAuth2.0、OIDC与CAS在企业集成中的边界对比

www.kelede.com 48 次阅读 互联网

很多企业内部有十套系统:OA、CRM、ERP、代码仓库、文档平台……每套系统一套账号密码,员工记不住、IT维护不动、离职后账号收不回。单点登录(SSO)的本质是把身份认证从各业务系统抽离出来,统一由一个身份提供方管理。员工登录一次,所有系统都认。

很多团队把OAuth2.0当登录协议用,其实它最初是为"第三方应用授权访问用户资源"设计的(比如用微信登录某App)。它告诉你"这个用户授权了",但不告诉你"这个用户是谁"。要做登录,需要在OAuth2.0之上加身份层,这就是OIDC。企业在选型时要理清:纯第三方授权用OAuth2.0,做企业内部登录用OIDC或CAS。

OIDC在OAuth2.0上加了ID Token,明确返回用户身份信息(用户ID、邮箱、姓名)。它是目前互联网与SaaS集成的主流协议,支持Web、移动端、单页应用。企业如果内部系统要接外部SaaS(比如飞书、钉钉),或者要做前后端分离加多端登录,OIDC是首选。

CAS是高校与传统企业里用得很多的SSO协议,架构简单:一个统一登录服务器,各业务系统通过重定向到CAS登录页完成认证。它的优点是集成简单,缺点是移动端与开放能力弱。企业如果全是Web系统、没有移动端、以浏览器重定向为主,CAS部署快、维护简单。

选完协议只是开始,集成细节决定了SSO好不好用。会话管理、登出联动、多系统信任关系,都要设计。

用户登录A系统后访问B系统,B系统怎么知道用户已登录?靠统一身份服务发的票据或Token。OIDC用ID Token加Access Token,业务系统拿Token去身份服务验签。企业在集成时,要验签而不是只调接口看Token有效——验签在本地做,减少对身份服务的依赖。

用户在A系统点登出,B系统还登录着,这是SSO常见漏洞。要做单点登出:身份服务在用户登出时,通知所有已登录的业务系统清掉本地会话。企业在设计时,登出流程要在需求阶段就写清楚,不要上线后才发现登出不彻底。

员工在HR系统入职后,SSO账号怎么自动创建?通常做法是:HR系统作为账号源,员工入职时自动在身份提供方创建账号,离职时自动禁用。企业在规划SSO时,要把账号生命周期与HR流程打通,而不是靠IT手动开户。

SSO是企业的身份大门,一旦被攻破,所有系统全暴露。安全配置不能省。

统一身份服务要统一密码策略:长度、复杂度、定期更换、错误次数锁定。对管理员、敏感系统访问,强制多因素认证(短信、动态口令、硬件Key)。企业在配置时,不要因为"员工嫌麻烦"就关掉强认证——SSO一旦失守,代价远大于多输一个验证码。

谁在什么时候从哪里登录了哪个系统,都要记录。登录异常(异地登录、频繁失败)要告警。企业的技术团队要把SSO登录日志接入统一审计平台,保留至少半年,满足合规审查要求。

↑