摘要:
统一身份认证常被误解成「再做一个登录页」。它的本质是把散落在十几个业务系统里的账号、协议、权限收敛成一套可治理的工程体系:账号有唯一来源、登录有统一入口、权限有集中模型、审计有完整链路。本文按「协议层 → 目录层 → 权限层 → 策略层」四层拆开讲,重点放在不同协议的取舍和工程落地的坑上,而不是某个产品的功能清单。
下面按 5 个主题展开,把协议适配、账号生命周期、权限模型、零信任与三类技术路线的取舍讲清楚。
单点登录与协议适配
单点登录要解决的核心问题是:用户在一个系统登录后,访问其他系统时不再重复输入凭证。主流协议各有适用边界,选型前先把它们的差异理清。
CAS 是校园场景里历史最久的方案,走「中央登录页 + 服务票据(ST)」模式:用户访问应用,应用发现未登录就重定向到 CAS Server,CAS 完成认证后回传一张一次性 ST,应用拿 ST 到 CAS 校验合法性。它的优点是会话控制集中在 CAS Server,单点注销干净;缺点是协议偏重,移动端和前后端分离架构下对接要自己处理重定向链路。
OAuth2 走授权码模式(Authorization Code),更适合现代 Web 和移动端:客户端先把用户重定向到授权服务器,拿到 code 后再在后端用 code 换 access_token,敏感令牌不进浏览器。SSO 场景下通常叠加 OIDC(在 OAuth2 上补一层 id_token)来携带用户身份。它的好处是令牌生命周期和刷新机制清晰,原生支持跨域;代价是授权服务器要自己管好 token 的撤销与黑名单。
SAML 用 XML 断言(Assertion)在身份提供方和服务提供方之间传递用户信息,企业级系统对接多、老系统兼容好,但报文冗长、移动端体验一般。LDAP 严格说不是 SSO 协议,而是目录服务协议,常作为账号数据的统一存储,被上面三类协议共享读取。
工程上的隐性成本往往在细节:移动端要不要二次跳转、原生 App 要不要 SDK 嵌入、跨域下 refresh_token 稳不稳、单点注销能不能一次清干净。这些决定了师生每天的真实登录体感,比「支持几种协议」这张清单重要得多。
协议适配的隐性成本在移动端与跨域场景,第一次接得越细,后续业务系统接 SSO 越顺畅。
账号目录与身份生命周期
账号目录是整套系统的地基。它把人事、学工、科研、财务各系统的账号归一到一张逻辑目录,对外提供统一查询接口,对内维护账号状态机。
账号生命周期的关键是一致性事件:入职、入学、调动、离校、退休,每一步变更都要能追到源头,并实时同步到下游。常见做法是把上游系统的变更事件接进消息队列,目录服务消费事件后更新自身,再反向推送给订阅的业务系统。这样做的好处是新增、变动、删除三类操作都有单一触发点,僵尸账号和过期账号能被自动收敛,而不是靠人工定期清理。
目录层还要处理字段规范差异:每个业务系统的账号表、密码策略、属性字段都不一样,归一时要定义一套标准属性模型,把上游字段映射到标准模型,再按需暴露给下游。这一步做不好,后面 SSO 和 RBAC 都会踩坑。
目录层不统一,下游 SSO、RBAC、审计全都会出乱子,这是最容易被低估的一层。
RBAC 与权限治理
RBAC 的工程难点不在于「能不能定义角色」,而在于角色能不能持续运营。一个能跑的 RBAC 至少要解决三件事:角色继承、角色互斥、临时授权回收。
角色继承让权限可以分层叠加,例如「学院管理员」继承「普通教师」的权限再加管理动作,避免重复配置。角色互斥用来防止利益冲突,比如「采购申请人」和「采购审批人」不应落在同一人身上,系统要在分配时自动校验。临时授权要能按期回收,否则权限只增不减,时间一长权限矩阵就变成谁也说不清的状态。
传统做法把角色写死在代码或一张表里,每次调整都要上线。更稳妥的是把角色模型做成可视化配置:拖拽继承关系、声明互斥约束、审批流触发临时授权,权限变更在系统内部闭环,不必改代码。某高校上线后把近五百张零散角色表收敛到八十余张,临时授权超期回收率接近全部,权限相关的审计问题大幅减少。
RBAC 的工程化深度决定了权限治理能不能长期跑下去,写死的角色表三年后必然成为负担。
零信任与细粒度权限
零信任的核心假设是「网络内部不再默认可信」,每次访问都要重新评估。落到统一身份认证上,就是按身份、设备、行为、风险四个维度实时判定:同一账号在办公网和校外访问同一份数据,权限可以不同;同一账号在不同终端登录,要按设备指纹和信任度二次确认;期末成绩查询、奖学金评审等敏感时段,要叠加更严格的策略。
细粒度权限的难点是「收得紧」和「不卡业务」之间的平衡。策略条件可以叠加访问时间、IP 段、终端类型、设备指纹等维度,但每加一层条件都会增加误拦风险。工程上建议先做角色基线,再逐步叠加动态策略,并保留足够的审计日志用于事后复盘。某省属本科上线后,敏感数据访问的异常会话数明显下降,权限滥用事件趋近于零,审计追责能精准定位到人。
零信任落地不是一刀切,运维部门和一线业务对策略松紧的感受差异巨大,要按角色分层设计。
三条技术路线的取舍
做统一身份认证,常见有三条路线,各有适用场景。
通用 IAM 厂商(如 Okta、Authing、阿里 IDaaS)功能全面、协议覆盖广,但行业适配弱,落地高校场景往往要做大量二次开发,且深度定制受厂商节奏制约。
行业 SSO 厂商贴近校园业务,人事、学工、教务场景沉淀深,对接成本低,但协议覆盖和扩展性受产品边界限制,长期演进空间相对有限。
开源自研路线(如 Keycloak、Casdoor)灵活、可控、无授权费用,但运维和安全合规要自己兜底,等保审计、补丁升级、高并发调优都要投入人力。
选型时建议把五条硬指标写进对照表:协议覆盖全不全、权限粒度细不细、零信任能不能落地、等保合规过没过、长期运维成本多高。没有哪条路线在这五项上全面占优,关键看学校自身的研发人力、合规要求和演进预期。
三类方案各有适用场景,关键看学校在协议适配、权限细粒度、长期运维这几项上的真实取舍。
真实落地场景
在一所两万人规模的省属本科,统一身份认证把上述四层能力落到日常运维:开学前两周批量开通账号、SSO 覆盖三十余个业务系统、零信任策略按角色与场景动态生效、等保审计一键导出。权限治理从「改代码」变成「系统内可运营」,师生从「一系统一密码」变成「一次登录走全校」,登录类工单量较上线前下降明显。
小结
统一身份认证看起来像是个登录框,背后是一整套账号、协议、权限、合规的工程体系。
做技术选型时,把协议覆盖、权限粒度、零信任落地、等保合规、运维成本这几条写进对照表,比看厂商宣传页更有用。
真正决定项目成败的,往往是协议适配的细度和权限模型的可持续性,而不是功能清单上的项数。