SSO单点登陆原理

什么是SSO?

  • 单点登陆( Single Sign-On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一
  • SSO 使得在多个应用系统中,用户只须要 登陆一次 就能够访问全部相互信任的应用系统

SSO 主要实现方式

  1. 共享 cookies

基于共享同域的 cookie 是 Web 刚开始阶段时使用的一种方式,它利用浏览同域名之间自动传递 cookies 机制,实现两个域名之间系统令牌传递问题;另外,关于跨域问题,虽然 cookies 自己不跨域,但能够利用它实现跨域的 SSO 。如:代理、暴露 SSO 令牌值等。
缺点:不灵活并且有很多安全隐患,已经被抛弃。数据库

  1. Broker-based( 基于经纪人 )

这种技术的特色就是,有一个集中的认证和用户账号管理的服务器。经纪人给被用于进一步请求的电子身份存取。中央数据库的使用减小了管理的代价,并为认证提供一个公共和独立的 " 第三方 " 。例如 Kerberos 、 Sesame 、 IBM KryptoKnight (凭证库思想 ) 等。 Kerberos 是由麻省理工大学发明的安全认证服务,已经被 UNIX 和 Windows 做为默认的安全认证服务集成进操做系统。跨域

  1. Agent-based (基于代理人)

在这种解决方案中,有一个自动地为不一样的应用程序认证用户身份的代理程序。这个代理程序须要设计有不一样的功能。好比,它能够使用口令表或加密密钥来自动地将认证的负担从用户移开。代理人被放在服务器上面,在服务器的认证系统和客户端认证方法之间充当一个 " 翻译 " 。例如 SSH 等。安全

  1. Token-based

例如 SecureID,WebID ,如今被普遍使用的口令认证,好比 FTP 、邮件服务器的登陆认证,这是一种简单易用的方式,实现一个口令在多种应用当中使用。服务器

  1. 基于网关
  2. 基于 SAML

SAML(Security Assertion Markup Language ,安全断言标记语言)的出现大大简化了 SSO ,并被 OASIS 批准为 SSO 的执行标准 。开源组织 OpenSAML 实现了 SAML 规范。cookie

CAS 请求认证时序图

CAS 请求认证时序图

  • 最近公司在弄也打算作一个,做个为初步了解,下篇写写具体实现步骤
相关文章
相关标签/搜索