SiteMinder - Single sign on (SSO)

来源:互联网 发布:u盘测速软件 编辑:程序博客网 时间:2024/05/15 01:15
SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。SSO技术实现机制  当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性。如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。  要实现SSO,需要以下主要的功能:  1、所有应用系统共享一个身份认证系统。  统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行效验,判断其有效性。   2、所有应用系统能够识别和提取ticket信息  要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。WEB-SSO的实现  用户在访问页面1的时候进行了登录,但是客户端的每个请求都是单独的连接,当客户再次访问页面2的时候,如何才能告诉Web服务器,客户刚才已经登录过了呢?浏览器和服务器之间有约定:通过使用cookie技术来维护应用的状态。Cookie是可以被Web服务器设置的字符串,并且可以保存在浏览器中。当浏览器访问了页面1时,web服务器设置了一个cookie,并将这个cookie和页面1一起返回给浏览器,浏览器接到cookie之后,就会保存起来,在它访问页面2的时候会把这个cookie也带上,Web服务器接到请求时也能读出cookie的值,根据cookie值的内容就可以判断和恢复一些用户的信息状态。Web-SSO完全可以利用Cookie结束来完成用户登录信息的保存,将浏览器中的Cookie和上文中的Ticket结合起来,完成SSO的功能。   为了完成一个简单的SSO的功能,需要两个部分的合作:  1、统一的身份认证服务。  2、修改Web应用,使得每个应用都通过这个统一的认证服务来进行身份效验。SiteMinder 简介  Netegrity SiteMinder 是一个支持目录、基于标准的系统,它可以帮助您使用不同种类的 Web 和应用服务器、操作系统以及应用程序开发平台。使用 SiteMinder,您可以容易地实现安全策略,保护 Web 应用程序和资源。它使您能够按照以用户为中心的、基于策略的安全模型来管理身份验证和授权特权。SiteMinder 通过管理复杂的安全和管理需求,还能够帮助开发人员交付安全的 Web 应用程序。  SiteMinder 在它的基础设施中包括两个用于实现 SSO 的关键组件。第一个是 Policy Server。关于目录、用户和资源的规则及其他相关信息就存储在这里。第二个组件是 webagent,这是安装在需要实现 SSO 的 Web 服务器或应用服务器上的软件。下图描述了这些组件如何工作以及如何在支持 SiteMinder 的环境中交互:图 1. SiteMinder 环境   SiteMinder 支持各种 Web 服务器,包括运行在 Windows NT/2000 和 Solaris 上的 Domino(还包括运行在 OS/390 上的 Domino Go Web 服务器)。当前,最新的 SiteMinder 版本是 5.5 版。不过,本文提供的大多数配置信息也适用于 4.x 版(我们将在适当的场合指出特定于版本的区别)。欲了解关于 SiteMinder 的详细技术信息,请参考 SiteMinder Web 页。为 webagent 配置 SiteMinder Policy Server  让我们查看一下 Policy Server 是如何用于执行 SiteMinder 环境中的 SSO 的。Policy Server 是存储 webagent 的策略定义的中心位置。在任何目标 Web 服务器上部署 webagent 之前,您需要在 Policy Server 上定义各种策略和特定于代理的对象。  Policy Server 提供了确定已安装的 webagent 应该如何操作的选项。每个 webagent 都应该在 Policy Server 上定义以下内容:代理概要文件包含关于代理的 IP 地址或主机名称的信息。 Agent Configuration 对象是在 SiteMinder 5.x 中可用的一个特性,它包含关于代理的 IP 地址或主机名称的信息。 Host Configuration 对象在 SiteMinder 5.x 中可用,它包含关于 Policy 主机和 Policy Server 相关设置的信息。 Policy Domain 是一组相关的领域(realm)、规则、答复以及策略(请参阅下面这些列表项)。 领域使用身份验证方案的一个定义来定义要保护/解除保护的资源。 规则定义了受保护的/不受保护的资源的特定 Web 操作。它还允许或拒绝访问。 答复是一个可选特性,它定义了发送给目标 Web 服务器的 HTTP 头部。它们可以是静态的,或者是根据每个请求而定制生成的。 用户目录定义了一个用户资源库(基本上都是基于 LDAP 的)。 策略定义了规则、领域、用户目录和答复的组合。   下图描绘了 Policy Server 上为 webagent 配置的组件之间的关系:图 3. Policy Server 上为 webagent 配置的组件之间的关系 Refer:http://www.ibm.com/developerworks/cn/lotus/siteminder_roadmap/