理解 IBM InfoSphere MDM Server 安全性,第 2 部分: 验证服务简介

通过示例应用程序客户机解释 MDM Server 8 验证

学习如何通过 IBM® InfoSphere™ Master Data Management(MDM)Server 的验证服务配置和定制一个客户机应用程序。本文详细介绍了两个场景中的配置和实现:一个是 Java™ 应用程序客户机,另一个是 Web 服务应用程序客户机。这个 系列 的其他文章详细描述了如何使用和配置其他不同的 MDM Server 安全组件来解决现实中的业务问题。

Allan Luo, 软件开发人员, WSO2 Inc

作者的照片:Allan LuoAllan Luo 是 MDM Server 开发小组的软件开发人员。目前,他负责实现 MDM Server 参与人域和产品域的业务和技术特性。这项工作涉及到很多方面,包括 Web 服务、安全、UI 组件和内部测试工具。他还对应用服务器和算法电子商务系统实现感兴趣。



Gary Chen, 首席开发人员, WSO2 Inc

作者的照片:Gary ChenGary Chen 是 MDM Server 开发小组的首席开发人员。他的主要工作是设计和领导 WCC、参与人域、产品域和 MDM Server 配置的开发。他还精通很多不同的技术,比如安全性、XML/Web 服务、多线程、NIO 网络和事务管理。



2009 年 1 月 13 日

简介

当启用了安全性时,InfoSphere MDM Server 应用程序客户机必须经过应用服务器的验证才能访问 InfoSphere MDM Server。InfoSphere MDM 应用程序客户机负责利用适当的验证机制登录到应用服务器,并访问 InfoSphere MDM Server。

前提

本文假设您对以下内容有一定的了解:

  • WebSphere® Application Server 安全性(详细信息请参见 WebSphere Security Handbook
  • Java Authentication and Authorization Service(JAAS)登录模块和回调处理程序
  • Web 服务安全性

用于本系列所有文章的软件栈

对于 MDM Server 的所有讨论都基于 InfoSphere MDM Server 8.0 和相关软件栈。本文假设您熟悉 MDM Server 及其产品手册中使用的术语。

示例应用程序客户机

InfoSphere MDM Server 支持多种应用程序客户机,包括 Web 应用程序客户机、应用程序瘦客户机、J2EE 应用程序客户机和 Applet 应用程序客户机。其中 Web 应用程序客户机和 Java 应用程序瘦客户机是最常用的。本文提供一组示例,以便让您体验如何配置和实现不同的 InfoSphere MDM Server 客户机。每个专题简要地介绍了如何配置和实现应用程序客户机最有用的方面,并提供了关于如何安装和运行这个示例的说明。

Java 应用程序瘦客户机

Java 应用程序瘦客户机必须使用 CSIV2 SAS 协议来访问 WebSphere Application Server 上启用了安全性的 InfoSphere MDM Server。一种选项是使用 WebSphere Application Server 提供的 SAS 客户机。您需要配置 SAS 客户机属性文件,并在 Java 客户机 JVM 参数中设置 CORBA configURL。要了解关于 WebSphere 中的 Java Application Client Authentication 的更多信息,请参阅 WebSphere Security Handbook

如何配置验证

在 sas.client.props 中编辑以下属性来配置验证:

清单 1. 验证属性
com.ibm.CORBA.authenticationTarget=BasicAuth
com.ibm.CORBA.authenticationRetryEnabled=true
com.ibm.CORBA.authenticationRetryCount=3
com.ibm.CORBA.validateBasicAuth=true
. . .
com.ibm.CORBA.loginTimeout=300
com.ibm.CORBA.loginSource=prompt

# RMI/IIOP user identity
com.ibm.CORBA.loginUserid=SampleUser
com.ibm.CORBA.loginPassword=aPassword

当运行 Java 应用程序瘦客户机时,添加一个 JVM 参数,以提供指向 SAS 客户机属性文件位置的 CORBA configURL,比如 java -Dcom.ibm.CORBA.ConfigURL=file:properties/sas.client.props JavaClient

示例代码

创建一个 Java 应用程序客户机,使用以下代码访问 InfoSphere MDM Server 服务:

清单 2. 验证代码
Hashtable ctxParams = new Hashtable(1);
ctxParams.put(Context.PROVIDER_URL, this.CORBA_URL);
ctxParams.put(Context.INITIAL_CONTEXT_FACTORY, this.contextFactory);
. . .
InitialContext ctx = new InitialContext(ctxParams);
obj = ctx.lookup(EJB_HOME_JNDI_NAME);
theDWLServiceControllerHome = (DWLServiceControllerHome) javax.rmi.PortableRemoteObject
    .narrow(obj, DWLServiceControllerHome.class);
DWLServiceController aDWLServiceController = theDWLServiceControllerHome.create();
response = (String) (aDWLServiceController.
    processRequest(getTCRMContext(), SAMPLE_REQUEST));

如何运行示例

下载和解压示例 JavaClient.zip。打开批处理文件 JavaClientSecurityEnabled.bat,对 SERVER_URL、CLIENT_DIR 和 WAS_DIR 进行以下设置:

  • 将 SERVER_URL 设为服务器引导 IIOP,比如 iiop://localhost:2809
  • 将 CLIENT_DIR 设为瘦客户机位置,比如 CLIENT_DIR=C:\JavaClient
  • 将 WAS_DIR 设为 WebSphere Application Server 6.1 主目录,比如 WAS_DIR =C:\IBM\SDP70\runtimes\base_v61

运行脚本 JavaClientSecurityEnabled.bat

如果 InfoSphere MDM Server 启用了安全性,则登录窗口时将提示输入用户名和密码。

图 1. 登录窗口
登录窗口

输入用户名和密码后,安全性属性随请求被传递到服务器。处理请求后将会显示响应。

图 2. MDM Server 响应消息
MDM Server 响应消息

如果要使用 SSL 确保传输通道的安全,那么配置 sas.client.props 和 ssl.client.props。要了解更多关于为 RMI/IIOP 瘦客户机配置 SSL 的信息,请查看 WebSphere Application Server 信息中心中的 ssl.client.props 配置文件。

Web 服务应用程序客户机

MDM Server Web 服务支持消息级安全,可在消息级应用验证机制、完整性和机密性。无论传输层协议是什么,通过基于 SSL 的消息级安全可在多个服务之间实现端到端的安全性。在消息级,将安全令牌、时间戳、签名和加密密钥等安全元素插入到 SOAP 消息头部。当 MDM Server 收到令牌时,它提取用户名和密码,并进行验证。如果它是有效的,则处理消息。

如何配置安全性

本节展示为一个 Web 服务的 Web 客户机配置用户名令牌的场景。配置步骤如下:

  1. 导入 MDM Server 的 Web 服务定义语言(Web service definition languages,WSDL),并创建 Web 服务 Web 客户机。要了解更多关于生成 Web 服务代理和使用 TCP/IP 监视器的信息,请参阅 WebSphere Application Server Information Center 的 “Creating Web services Client” 小节。
  2. 在 WS Extension 中打开部署描述文件,导航到 Request Generator Configuration > Security Token,添加一个用户名令牌,比如 MDMToken。
    图 3. 安全令牌配置
    安全令牌配置
  3. 选择 Username Token 作为令牌类型。
    图 4. Security Token 对话框
    Security Token 对话框
  4. 在 WS binding 选项卡上,导航到 Security Request Generator Binding Configuration > Token Generator,添加一个新的令牌生成器。
    图 5. 令牌生成器配置
    令牌生成器配置
  5. 勾选 Use value type 复选框,并在 Value type 中选择 Username Token
  6. 如果使用固定用户,那么在 Callback handler 中选择 com.ibm.wsspi.wssecurity.auth.callback.NonPromptCallbackHandler,并在 User ID 和 Password 文本域中输入一个可登录到 InfoSphere MDM Server 的用户名和密码。
    图 6. Token Generator 对话框
    Token Generator 对话框
  7. 如果使用动态用户,那么在 Callback handler 中输入一个定制的回调处理程序名称,比如 com.ibm.mdm.ws.callbackhandler.UsernameHandler
    图 7. Token Generator 对话框 2
    Token Generator 对话框 2

示例代码

下面的代码显示一个定制回调处理程序。

清单 3. 定制的回调处理程序
import javax.security.auth.callback.CallbackHanlder

public class UsernameHandler implements CallbackHandler {

. . .

  public void handle(Callback[] callbacks)
              throws IOException,UnsupportedCallbackException {
              
    for (int i = 0; i < callbacks.length; i++) {
      if (callbacks[i] instanceof NameCallback) {
        NameCallback nameCallback = (NameCallback)callbacks[i];
        nameCallback.setName(getUsername());
      } else if (callbacks[i] instanceof PasswordCallback) {
        PasswordCallback pwdCallback =  (PasswordCallback)callbacks[i];
        pwdCallback.setPassword(getPassword().toCharArray());
      } else if(callbacks[i] instanceof PropertyCallback){
        //Get the property if necessary
      } else {
        throw new UnsupportedCallbackException(callbacks[i], "Unrecognized Callback");
      }
    }
    
  }

. . .

}

如何运行示例

遵循以下步骤运行示例:

  1. MDMWSClient.ear 导入到一个工作区,打开 MDMWSClientSample 项目中的 index.jsp
    图 8. Web 服务客户机示例
    Web 服务客户机示例
  2. 在 MDM Web Services EndPoint 文本域中输入一个 MDM 服务端点,比如 http://localhost:9080/PartyWS_HTTPRouter/services/PabrtyPort
  3. 如果使用动态用户,那么在 “user name” 和 “password” 文本域中输入用户名和密码。
  4. 在 Add Party Input Panel 文本域中输入一个 party ID(一个 long 型的数字)和一个名称。
  5. 单击 Submit

如果添加了 party,则 party ID 和名称会显示在 Party Response 面板中。可以使用 TCP/IP 监视器来确认用户名令牌是否随 SOAP 消息一起传递,如清单 4 所示:

清单 4. 示例 SOAP 消息
<soapenv:Envelope
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/
    oasis-200401-wss-wssecurity-secext-1.0.xsd"
    soapenv:mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username>sampleUserName</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/
oasis-200401-wss-username-token-profile-1.0#PasswordText">
samplePassword</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
. . .
</soapenv:Body>
</soapenv:Envelope>

结束语

使用 InfoSphere MDM Server 时必须通过一个应用程序客户机来访问它。本文展示了两个场景,它们实现在启用了安全性的 InfoSphere MDM Server 上经过验证的应用程序客户机。本文还展示了如何通过示例代码配置和定制应用程序客户机。

InfoSphere MDM Sever 还在它的包中提供应用程序客户机,比如 Batch Processor(一个 Java 应用程序瘦客户机)和 Administration and Data Stewardship 应用程序(Web 应用程序客户机)。这些应用程序可以在启用或未启用安全性的 InfoSphere MDM Server 上运行。要想知道如何配置这些应用程序客户机来访问启用了安全性的 InfoSphere MDM Server,请参阅 “InfoSphere MDM Server Installation Guide”。

InfoSphere MDM Server 可在 WebSphere Application Server 或 BEA WebLogic 应用服务器上运行。接下来的文章将阐述如何配置和定制应用程序客户机,以通过 BEA WebLogic 应用服务器上的 InfoSphere MDM Server 的验证。


下载

描述名字大小
示例 Java 客户机JavaClient.zip43KB
示例 Web 服务应用客户机MDMWSClient.ear6.6MB

参考资料

学习

获得产品和技术

  • 用可直接从 developerWorks 下载的 IBM 试用软件 构建您的下一个开发项目。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


这是您第一次登陆到 developerWorks,已经自动为您创建了您的概要文件。 选择您概要文件中可以公开的信息的信息(如姓名、国家/地区,以及公司),这些信息同时也会与您所发布的内容相关联。 您可以随时更新您的 IBM 账号。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=363315
ArticleTitle=理解 IBM InfoSphere MDM Server 安全性,第 2 部分: 验证服务简介
publish-date=01132009