使用 WebLogic Server9.2 中的 SAML 配置单点登录

by Vikrant Sawant
01/04/2007

摘要

BEA WebLogic Server 9.2为安全性断言标记语言(Security Assertion Markup Language,SAML)提供了开包即用支持,可根据安全需要通过少量编码甚至不编码便可创建单点登录(SSO)解决方案。借助WebLogic Server 9.2,可在运行于可靠域内的多个在线应用程序之间添加单点登录。SAML标准定义了可靠服务器之间安全信息交换的框架。安全框架的首要功能在于提供了保障应用程序安全的配置工具和API。

本指南介绍了在运行于两个不同WebLogic域的两个简单的Java EE Web应用程序之间配置单点登录功能的步骤。单点登录的SAML配置仅需要使用WebLogic Server 9.2 Administration Console,而无需编写程序。本指南还简要介绍了在单点登录过程中WebLogic容器、安全提供程序以及安全框架之间的基本交互。

简介

SAML标准定义了可靠服务器之间安全信息交换的框架。本指南讲述了如何在两个Web应用程序之间设置SAML授权,并提供了这些应用程序的源代码。

本指南描述了涉及两个Web应用程序的简单示例; appA部署在源(本地)站点,而 appB部署在目标(远程)站点。您将学习到如何使用WebLogic Server 9.2 Administration Console来配置这些应用程序并参与使用SAML实现SSO的过程。

源站点提供身份验证服务,并且当目标站点请求时,可使用SAML Inter-site Transfer Service (ITS)安全地传递身份验证详细信息。源站点的服务器包含ITS servlet,这个可寻址的组件提供了SAML处理功能,例如凭证生成及将用户重定向到目标站点的能力。

图1显示了SSO过程中源站点和目标站点之间的基本交互。

SAML Single Sign-On

图 1. 使用SAML的单点登录过程中源站点和目标站点之间的交互

完整的处理流程如下:

  1. 通过提供用户凭据,用户的浏览器就可以访问应用程序 appA(源站点),该程序位于名为 domainA的WebLogic Server域。
  2. 应用程序 appA将用户凭据传递到身份验证服务提供者。
  3. 如果身份验证成功,则建立已通过身份验证的会话;同时显示 appA欢迎页面。
  4. 用户单击该欢迎页面上的链接,就可以访问应用程序 appB(目标站点)的安全Web页面。应用程序 appB位于另一个名为 domainB的WebLogic Server域。这将触发对Inter-Site Transfer Service (ITS) servlet的调用。
  5. ITS servlet通过调用SAML Credential Mapper请求调用断言。SAML Credential Mapper返回该断言。同时也返回目标站点应用程序Web页面(一个安全的 appB Web页面)的URL;如果源站点配置为使用POST配置文件,则SAML Credential Mapper还返回相应POST表单的路径。
  6. SAML ITS servlet产生包含生成断言的SAML响应;并对其进行签名、Base-64编码、嵌入HTML表单,然后将该表单返回到用户的浏览器。
  7. 用户的浏览器将该窗体以POST格式发送到目标站点的Assertion Consumer Service (ACS)。
  8. 验证该断言。
  9. 若断言成功,用户将被重定向到目标,即 appB应用程序的安全Web页面。
  10. 用户登录到目标站点 appB应用程序,无需在 appB处重新验证身份。

以上所述的单点登录过程不需要开发人员进行编码(当然,为应用程序 appAappB编码除外),另外通过使用Administration Console即可轻松配置单点登录。

页面: 1, 2, 3, 4, 5

下一页 »