单点登录SSO、CAS与OAuth2

基础概念

SSO 单点登录(Single sign-on)是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。(来自百度百科)

CAS 中央认证服务(Central Authentication Service)
CAS是一种针对Web的企业多语言单点登录解决方案,并试图成为您的认证和授权需求的综合平台。(https://github.com/apereo/cas
CAS是一个企业级的开放源代码单点登录解决方案,包含Java服务器组件和各种用PHP,PL / SQL,Java等多种语言编写的客户端库。(https://wiki.jasig.org/display/CASUM/Introduction

Kerberos 是一种计算机网络 认证协议。(来自wiki)

OpenID 是一种开放标准和分散的认证协议。

OAuth 是一种访问授权的开放标准。

SAML 安全断言标记语言(Security Assertion Markup Language) 是一种开放标准,用于在认证和授权数据之间交换身份验证和授权数据

LDAP 轻量级目录访问协议(Lightweight Directory Access Protocol )

CAS 协议

https://apereo.github.io/cas/5.1.x/protocol/CAS-Protocol.html
http://www.coin163.com/java/cas/cas.html

Kerberos协议

完整的Kerberos认证协议

TODO 后续补充
http://gost.isi.edu/publications/kerberos-neuman-tso.html
http://blog.csdn.net/wulantian/article/details/42418231

OAuth 2.0的运行流程

OAuth 2.0的运行流程如下图,摘自RFC 6749。

OAuth 2.0的运行流程图

(A)用户打开客户端以后,客户端要求用户给予授权。
(B)用户同意给予客户端授权。
(C)客户端使用上一步获得的授权,向认证服务器申请令牌。
(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。
(E)客户端使用令牌,向资源服务器申请获取资源。
(F)资源服务器确认令牌无误,同意向客户端开放资源。

授权码模式

授权码模式运行流程图

(A)用户访问客户端,后者将前者导向认证服务器。
(B)用户选择是否给予客户端授权。
(C)假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码。
(D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。
(E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。
https://oauth.net/2/
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

关键技术

对称加密 DES AES
非对称加密 RSA
散列算法 MD5 SHA/SHA-1
数据签名
数据证书
HTTPS/SSL
Spring Security

其他相关

多因素认证

推荐阅读更多精彩内容

  • 1. CAS 简介 1.1. What is CAS ? CAS ( Central Authenti...
    人在码途阅读 9,260评论 3 51
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 131,835评论 18 138
  • 1. 微服务架构介绍 1.1 什么是微服务架构? 形像一点来说,微服务架构就像搭积木,每个微服务都是一个零件,并使...
    静修佛缘阅读 5,679评论 0 39
  • 原来,在爱情里是不分先来后到的。 遇见了,是缘分。 你爱她,是你的事。 倘若有幸彼此相爱,岂不是一种福分! 所以,...
    西瓜小西瓜阅读 398评论 0 1
  • 五大关键数据指标、三个关键思路。 五大关键数据指标是活跃用户量、转化、留存、复购、GMV;三个关键思路是商品运营、...
    韩小凯阅读 10,301评论 0 11