SSO单点登录原理

SSO单点登录原理
最新回答
幼稚园里的幼稚鬼

2023-02-15 01:17:23

SSO(单点登录)的核心原理是通过集中认证机制,使用户在多个相互信任的应用系统中仅需登录一次即可访问所有系统,其实现方式包括共享cookies(已淘汰)、Broker-based、Agent-based、Token-based、基于网关及SAML标准等。 以下为具体实现方式及原理分析:

一、共享cookies(已淘汰)
  • 原理:早期Web阶段利用浏览器同域名下自动传递cookies的机制实现令牌传递。跨域时通过代理或暴露SSO令牌值模拟共享,但依赖同域或暴露令牌的方式存在安全隐患。
  • 缺点:灵活性差,安全性低(如令牌截获风险),现已被更安全的方案取代。
二、Broker-based(基于经纪人)
  • 核心组件:集中认证服务器(如Kerberos、Sesame、IBM KryptoKnight)作为第三方“经纪人”,管理用户账户和认证。
  • 流程

    用户首次登录时向Broker提交凭证;

    Broker验证后生成电子身份令牌,存储于中央数据库;

    用户访问其他系统时,系统通过Broker验证令牌有效性。

  • 优势:减少管理成本,提供独立认证服务,适合大型企业。
  • 案例:Kerberos被UNIX和Windows集成为默认安全服务。
三、Agent-based(基于代理人)
  • 核心组件:部署在服务器端的代理程序,自动处理不同应用的认证逻辑。
  • 流程

    代理程序存储口令表或加密密钥;

    用户访问应用时,代理自动填充凭证或加密通信;

    应用系统通过代理完成认证,无需用户重复输入。

  • 优势:减轻用户认证负担,提升体验。
  • 案例:SSH通过代理实现自动密钥认证。
四、Token-based(基于令牌)
  • 原理:用户登录后获得唯一令牌(如SecureID、WebID),后续访问其他系统时直接提交令牌验证。
  • 流程

    用户首次登录认证系统,获取令牌;

    访问其他系统时,系统验证令牌有效性(如与认证服务器核对);

    令牌有效则允许访问,否则拒绝。

  • 优势:实现简单,支持多应用共享凭证。
  • 案例:FTP、邮件服务器常用口令令牌认证。
五、基于网关
  • 原理:通过网关服务器统一处理所有外部请求,用户先登录网关,再由网关代理访问内部系统。
  • 流程

    用户访问网关,提交凭证;

    网关验证后生成内部会话,转发请求至目标系统;

    目标系统信任网关,无需二次认证。

  • 优势:集中管控访问权限,适合内网环境。
六、基于SAML标准
  • 核心组件:SAML(安全断言标记语言)作为XML标准,定义了认证与授权信息的交换格式。
  • 流程

    用户访问服务提供商(SP);

    SP重定向至身份提供商(IdP)进行认证;

    IdP验证后生成SAML断言(含用户身份信息),返回给SP;

    SP解析断言,完成登录。

  • 优势:跨域、跨平台兼容性强,被OASIS批准为SSO执行标准,OpenSAML等开源项目实现其规范。
  • 案例:企业级SSO解决方案广泛采用SAML。
七、CAS认证时序(补充说明)
  • 流程(参考CAS时序图逻辑):

    用户访问应用系统,系统检测无有效会话,重定向至CAS服务器;

    CAS服务器验证用户身份,生成服务票据(ST);

    用户携带ST返回应用系统,系统验证ST有效性;

    验证通过后建立本地会话,允许访问。

  • 特点:CAS(Central Authentication Service)是开源SSO协议,基于Broker-like架构,但更轻量级。
总结

SSO通过集中认证与令牌传递机制,消除多系统重复登录问题。实现方式从早期共享cookies到现代SAML标准,安全性与灵活性逐步提升。企业可根据规模(如Broker-based适合大型组织)、技术栈(如SAML适合跨平台)及安全需求选择合适方案。