SSO的全方位解决方案 - Kerberos协议(RFC 1510)
2017-07-14 21:08
585 查看
一、桌面SSO和WEB-SSO的局限性
前面我们的解决方案(桌面SSO和WEB-SSO)都有一个共性:要想将一个应用集成到我们的SSO解决方案中,或多或少的需要修改应用程序。Web应用需要配置一个我们预制的filter;
桌面应用需要加上我们桌面SSO的JAAS模块(至少要修改JAAS的配置文件)。
但是,有很多程序是没有源代码和无法修改的,例如常用的远程通讯程序telnet和ftp等等一些操作系统自己带的常用的应用程序。这些程序是很难修改加入到我们的SSO的解决方案中。
二、全方位的SSO解决方案能够-Kerberos协议(RFC 1510)
Kerberos是一个全方位的解决方案,可以解决上述问题。Kerberos是网络安全应用标准(http://web.mit.edu/kerberos/),由MIT学校发明,被主流的操作系统所采用。
在采用kerberos的平台中,登录和认证是由操作系统本身来维护,认证的凭证由操作系统来保存,整个桌面都可以处于同一个SSO的系统保护中。
操作系统中的各个应用(如ftp,telnet)只需要通过配置就能加入到SSO中。
使用Kerberos最大的好处在于它的安全性。通过密钥算法的保证和密钥中心的建立,可以做到用户的密码根本不需要在网络中传输,而传输的信息也会十分的安全。
目前支持Kerberos的操作系统包括Solaris, windows,Linux等等主流的平台。
不过要搭建一个Kerberos的环境比较复杂,KDC(密钥分发中心)的建立也需要相当的步骤。
Kerberos拥有非常成熟的API,包括Java的API。使用Java Generic Security Services(GSS) API并且使用JAAS中对Kerberos的支持(详细信息请参见Sun的Java&Kerberos教程http://java.sun.com/ j2se/1.5.0/docs/guide/security/jgss/tutorials/index.html),要将我们这个样例改造成对Kerberos的支持也是不难的。
值得一提的是在JDK6.0 (http://www.java.net/download/jdk6)当中直接就包含了对GSS的支持,不需要单独下载GSS的包。
三、SSO系列方案总结
本文的阐述了SSO的基本原理,并提供了一种实现方式。通过对源代码的分析来掌握开发SSO服务的技术要点和充分理解SSO的应用范围。
但是,本文仅仅说明了身份认证的服务,而另外一个和身份认证密不可分的服务----权限效验,却没有提到。
要开发出真正的SSO的产品,在功能上、性能上和安全上都必须有更加完备的考虑。
相关文章推荐
- 单点登录(SSO)的核心--kerberos身份认证协议技术参考(一)
- 单点登录(SSO)的核心--kerberos身份认证协议技术参考(二)
- 单点登录(SSO)的核心--kerberos身份认证协议技术参考(二)
- 单点登录(SSO)的核心--kerberos身份认证协议技术参考(三)
- 单点登录(SSO)的核心--kerberos身份认证协议技术参考(一)
- 单点登录(SSO)的核心--kerberos身份认证协议技术参考
- 单点登录(SSO)的核心--kerberos身份认证协议技术参考(三)
- 单点登录(SSO)的核心--kerberos身份认证协议技术参考
- 单点登录(SSO)的核心--kerberos身份认证协议技术参考(一)
- 单点登录(SSO)的核心--kerberos身份认证协议技术参考(二)
- 单点登录(SSO)的核心--kerberos身份认证协议技术参考(三)
- WebLogic平台的Web SSO(SAML)解决方案
- FW: Kerberos协议
- Radius 认证协议介绍-兼rfc导读
- .NET基于Redis缓存实现单点登录SSO的解决方案
- Android 微博登录“sso package or sign error” 错误解决方案! (转)
- HTTP协议下用Web Service上传大文件的解决方案
- RFC 2867 为通道协议的 RADIUS 计费拓展 中文翻译
- RFC,其实也就这么多了,不会再多了,基本协议是固定的
- 一个单点登陆(SSO)解决方案