基础概念
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协议
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。
(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
其他相关
多因素认证