• SSO的全方位解决方案


    一、桌面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的产品,在功能上、性能上和安全上都必须有更加完备的考虑。
     
  • 相关阅读:
    tyvj 1031 热浪 最短路
    【bzoj2005】 [Noi2010]能量采集 数学结论(gcd)
    hdu 1394 Minimum Inversion Number 逆序数/树状数组
    HDU 1698 just a hook 线段树,区间定值,求和
    ZeptoLab Code Rush 2015 C. Om Nom and Candies 暴力
    ZeptoLab Code Rush 2015 B. Om Nom and Dark Park DFS
    ZeptoLab Code Rush 2015 A. King of Thieves 暴力
    hdoj 5199 Gunner map
    hdoj 5198 Strange Class 水题
    vijos 1659 河蟹王国 线段树区间加、区间查询最大值
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/7172240.html
Copyright © 2020-2023  润新知