BEA WebLogic Platform 8.1 Single Sign-On Enablement:概述

时间:2004-03-10
作者:
浏览次数: 4162
本文关键字:SSO 单点登录安全身份验证

文章工具
推荐给朋友 推荐给朋友
打印文章 打印文章

今天,在Web上应用程序的数量日益增长。这些应用程序通常是由许多不同的组件组成,每个组件可能都有它自己的身份认证方案或用户注册库。结果,开发和实施的人员要面对一个正变得越来越困难的问题,那就是用户如何能通过一次性验证或叫做一次性"登录(sign-on)"就可以访问每一个应用程序组件。这种只要求用户一次性登录应用程序的能力通常被称为"单点登录(Single Sign-On)"或 SSO。
BEA WebLogic PlatformTM 8.1通过一系列的方法解决了许多与SSO支持有关的问题,每种方法都关注应用程序的不同层。除此之外,BEA WebLogic Platform 8.1安全体系结也提供了基本的集成点,叫做"安全服务提供者接口(Security Service Provider Interfaces,SSPI) "(通常简称为提供者),它促进了第三方安全解决方案的集成,并允许这些解决方案通过BEA WebLogic Platform 8.1应用安全基础结构公开为安全服务。这些第三方解决方案包括身份验证解决方案、Web访问管理解决方案、审计解决方案,等等。
Web 层单点登录
随着对Web关注的增长,作为应用程序的用户接口,Web层很快成为最需要SSO出现的地方。在Web层,浏览器的使用者被提示进行应用程序的验证(声明他们的身份)。这个身份被传到应用服务器上以用于验证用户。成功登录的结果是生成一个cookie,它的作用范围是应用服务器驻留的DNS域。然后cookie返回到给向应用程序服务器发送请求的浏览器。默认情况下,当用户退出应用程序或关闭浏览器时,cookie 的生命周期结束。
作为J2EE 1.3 相关的应用程序服务器,BEA WebLogic Server? 8.1支持J2EE 1.3所有必需的身份验证机制。它们包括:(1)基本的身份验证,用户的凭证只由基于64位编码保护;(2)基于表单,凭证不被保护并以纯文本发送;(3)基于凭证,X.509凭证由用户保管,使用SSL或TSL安全协议来确认用户的身份。前两种身份验证形式需要使用像SSL或TSL的安全传送来保护脆弱的凭证安全。
除了J2EE 1.3指定的机制外,通过它的安全基础结构和关联的安全服务提供者,BEA WebLogic Server 8.1经过配置可以支持使用身份验证。使用安全基础结构考虑到了身份验证策略执行的一致性,而不管客户端是浏览器还是应用程序。另外,应用程序不再需要提供自己的Servlet过滤器来完成身份验证。更好的是在不用修改应用程序的情况下就可以更改身份验证机制的类型。举个例子,公司如果想把基本的用户名/密码这种身份验证方法改为更强的身份验证方法,比如标记(token),只需要简单地为新的身份验证方法实现安全服务提供者 (Security Service Provider)。

单点登录的扩展以及跨域的单点登录

BEA WebLogic Server 8.1超越了J2EE 1.3 的规范对SSO的支持,故障转移及群集里其他成员的负载均衡不需要重新对群集中的每个成员进行验证。此外,如果会话是为文件或JDBC的持久化而配置的,那么SSO解决方案可以扩展到在同一个DNS域内的非群集服务器上。
最后,通过指定名字控制cookie的作用域,它可以实现既禁用SSO同时又可以创建一组不同的应用程序或Web组件并使它们加入SSO组。对SSO组的使用允许单一DNS域作为多重应用程序的宿主,其中每一个应用程序都可以控制其他应用程序或Web组件作为特定SSO环境的一部分参与。

超越Web层
在企业级的应用程序中,很少有所有组成应用程序的组件都包含在Web层或驻留在同一应用服务器上的情况。因此,SSO解决方案必须支持所有组件的集成。
BEA WebLogic Server 8.1提供的SSO支持超越Web层的扩展,可以把传统系统和其他J2EE应用服务器集成起来,作为标准产品的一部分功能。除此之外,支持这种功能的机制可以被客户、安全产品开发商或ISV扩展以提供更强的功能。
传统系统的单点登录
作为BEA WebLogic Server 8.1提供的SSO解决方案的一部分,由J2EE连接器体系结构(JCA)定义的应用程序适配器(Adapter)可以获取与构成业务解决方案中其他组件进行身份验证所需的凭证。凭证获取功能是BEA WebLogic Server 8.1 作为安全基础结构的一部分提供的。连接器容器可以为目标自动检索到适当的凭证集合,这是以信息在部署描述符中以及包含在凭证映射提供者(Credential Mapping Providers)中的映射为基础的。然后凭证信息被传送给适配器以用于验证目标。
凭证映射提供者负责把请求者的身份和所需的资源映射到适当的凭证集,以便为请求者验证所需的资源。为了更方便的管理,在映射中用到的请求者的身份既可以是请求者验证的用户名也可以是请求者所在组的名字。
每个凭证映射提供者可以关联一种或多种凭证格式。特定凭证映射提供者支持的凭证格式在提供者实例化时向BEA WebLogic Server注册。BEA WebLogic Server 8.1提供了默认的凭证映射提供者,它可以以用户名密码的形式管理凭证。另外凭证映射提供者可以通过定制和实现来支持如Kerberos票据和SAML断言这种凭证格式。
其他J2EE应用服务器的单点登录
只要符合Common Secure Interoperability v2(CSIv2)规范的Level 0,就允许BEA WebLogic Server 8.1在Internet Inter-Orb(IIOP)协议下与EJB(Enterprise Java Beans)驻留的其他相关的J2EE应用服务器分享一个安全SSO环境。
BEA WebLogic Server 8.1支持必需的Generic Security Services Username Password(GSSUP)身份验证机制,以验证另一个相关的J2EE应用服务器,并支持担当这种身份验证目标的能力。当在两个信任关系的容器中配置时,它也支持使用定义在Common Secure Interoperability v2中的身份标记。
另一种在J2EE应用服务器中发生的SSO情况是,当应用程序与外来的JAVA 消息服务(JAVA Messaging Service ,JMS)提供者如IBM MQSeries使用Message Driven Beans交互的时候。在这种情况下,EJB容器必须为外来的JMS实现进行自我身份验证,以获取应用程序代码分派的队列消息。因为有J2EE连接适配器,BEA WebLogic Server 8.1用凭证映射提供者获得所需的凭证来验证外来的JMS提供者。
凭证映射提供者可以通过BEA WebLogic Server管理控制台的配置来把外来的JMS提供者及请求者的身份映射到适当的凭证集合。另外,因为凭证映射提供者可以由客户和外部供应商编写,所以可以得到包括增强的映射的自定义实现方式。
对周边身份验证的支持
随着如Web 服务这种新的集成范例的出现以及在企业里对扩展SSO日益增长的需要,对发生在应用服务器外部的身份验证支持的需求变得越来越普遍。周边身份验证这一术语通常被描述为验证远程用户身份的过程在应用程序或企业的周边完成。它是这样完成的:远程用户指定一个尚待证实在身份,以及某些对应的证明材料完成验证。身份验证代理实际上为身份验证的一致性做担保,它可以有很多形式,包括虚拟专用网络(VPN)、防火墙、SSO解决方案,或其他形式的全局身份识别服务。
每个身份验证代理都有共同的特征:它执行身份验证的过程导致了必须现的中间产物或标记的产生以决定关于身份验证用户的信息。对于不同的供应商标记的格式是不同的,OASIS正试图用XML定义一个标准的标记格式。但除了这些,如果应用程序和基础结构构建时没有设计支持这种概念,企业就必须要求远程用户向网络中的每个应用程序重新进行身份验证。
BEA WebLogic Server 8.1一直被设计为通过支持身份声明把SSO观念扩展到周边。如果是安全基础结构的关键部分,身份声明的概念允许客户或合作者定制BEA WebLogic Server 8.1,进而使用周边身份验证方案(如开放式安全平台(Open Platform for Security,OPSEC),安全声明标记语言(Security Assertion Markup Language,SAML))或增强协议(如Common Secure Interoperability v2)提供的身份验证机制来实现这一功能。
支持周边身份验证需要使用支持一个或多个标记格式的身份声明提供者(Identity Asserter Provider)。你可以注册多个不同身份声明提供者,以便随时使用。BEA WebLogic Server 8.1把标记作为普通业务请求的一部分来发送,这些业务请求可以使用不同的支持协议予以发送。一旦请求被接收,操作协议消息处理的实体认出在消息中存在的标记。这一信息用于安全基础结构的调用,调用适当的身份声明提供者处理标记的确认。身份验证实现方式必须完成任何必要的动作来确定标记的有效性和信任,并通过合理的担保度来提供用户的身份而不需要用户为应用程序进行重新身份验证。

从图中你可以看到,最公共的部分是通过与第三方产品集成提供的Web 单点登录 (SSO)。在这个例子中一个组织可以利用第三方 Web SSO 解决方案来为WebLogic基础结构实现 SSO。
步骤1:没有经过身份验证的用户试图访问资源。
步骤2:请求由web服务器重新定位到Web SSO解决方案。
步骤3:Web SSO解决方案询问用户的凭证并验证用户。
步骤4:请求随同身份验证的标记一起传递到WebLogic资源。
步骤5:包含了用户想要访问的资源的容器把访问请求委托给WebLogic应用程序安全基础结构。
步骤6:然后WebLogic安全服务接收到了第三方 Web SSO 解决方案提供的标记并把它传递给身份声明。
步骤7:身份声明通过第三方 Web SSO解决方案来确认标记。
步骤8:身份声明把用户信息连同标记发送到登录模块。
步骤9:登录模块把用户登录到WebLogic环境而不需要重新验证用户。
结束语
BEA WebLogic Server 8.1提供了构建企业应用程序的丰富SSO环境。在当今企业环境的问题上,SSO的能力远远超越了其他J2EE应用服务器。开放的安全框架允许SSO的功能与第三方安全解决方案集成,并考虑到了定制来满足公司在任何时候改变的需求。获取更多有关BEA WebLogic 8.1的安全信息,请访问http://edocs.bea.com/wls/docs81/security.html

Source: BEA WebLogic Platform 8.1 Single Sign-On Enablement:概述

posted on 2007-03-01 19:29  Joey Liang  阅读(611)  评论(0编辑  收藏  举报