基于SOA的方法概览
基于面向服务的架构(service-oriented architecture ,SOA)的方法使用网关作为验证用户身份的中心点。网关使用开放式标准,并通过单点登录的功能,支持对各种应用程序的无缝访问。通过授权已验证的用户访问所有参与的应用程序,而不需要用户重新输入用户凭证,单点登录简化了企业内的身份验证流程。
这种方法具有以下优点:
- 具体化身份验证服务
对于用于验证用户身份的身份验证服务,其维护是独立于应用程序代码的,而且身份验证信息被保存在LDAP目录中。
要实现域间的身份验证,您可以使用WebLogic LDAP身份验证提供程序,并使用您首选的LDAP配置它。使用外部LDAP支持安全管理员跨多个域进行集中式的用户管理。 - 把身份验证GUI转移到表示层
所提出的方法确保:
o 与登录有关的GUI独立于身份验证服务域。
o 用于呈现登录GUI的资源在表示层中提供。
o 对GUI和身份验证服务进行的修改相互独立。 - 支持基于安全性声明标记语言(Security Assertion
Markup Language,SAML)的安全身份传播
跨应用程序的单点登录是使用SAML——一个用于交换安全性信息的、基于XML的框架——来实现的。 - 支持多个安全性令牌的同时无需修改应用程序
这个方法和基于SAML的安全性令牌不相关。通过配置不同的Credential Mapper和Identity Asserter对(稍后会说明),可以支持其他的安全性令牌类型,而无需修改应用程序。
该方法最小化了部署身份验证服务所需的定制代码量。任何熟悉以下任务的用户都可以轻松配置该方法:创建WebLogic域,配置Web应用程序和利用WebLogic 安全基础[1]。
身份验证网关架构
身份验证网关架构基于周边身份验证(perimeter authentication)的概念,这个概念支持单点登录。周边身份验证是这样一个机制:它基于外部身份验证实体生成的安全性令牌建立用户身份。
下图阐明了身份验证网关架构,包括:
- 使用LDAP的集中式用户管理。
- 使用下列三种组件的基于SAML的身份声明:Credential Mapper、HttpProxyServlet和Identity Asserter (“身份验证网关架构的组件”一节将详细讲述这些组件)。
- 具体化以门户Web应用程序为宿主的登录页面。
图1. 身份验证网关架构
如上图所示,安全域(security domain)功能是作为外部的身份验证实体。安全域担任“身份验证服务”的宿主,提供安全网关给应用程序域。用户在被允许访问应用程序域中的应用程序之前,必须通过安全域的身份验证。
下面给出了流程流的描述。(稍后“身份验证网关架构的组件”一节将详细描述图中的每个组件。)
- 用户登录到系统中。安全域代理Web应用程序接收基于FORM的请求。
- 代理Web应用程序把用户证书传递给身份验证服务提供程序。
- 接下来,身份验证服务提供程序使用LDAP用户管理系统验证用户凭证。
- 验证完毕之后,身份验证服务提供程序生成一个已验证的ID,并将其传递给代理Web应用程序。