WebSphere Message Broker 认证服务提供一个可选设施,此设施只在 JMS 客户机和 WebSphere Message Broker Real-timeInput 节点之间受支持。
在缺省配置中,认证服务是禁用的。
若要配置产品以使用认证服务,请完成以下步骤。
用户名称服务器将需要支持这些认证协议的信息(特别是密码)分发给代理。
若要配置用户名称服务器以支持认证,则要为 mqsicreateusernameserver 和 mqsichangeusernameserver 命令提供两个参数。
首个参数 AuthProtocolDataSource 描述了包含要支持认证协议所需的信息的操作系统文件的位置。
第二个参数(-j 标志)表示由 AuthProtocolDataSource 参数指向的文件是否包含组或组成员信息以及密码信息。
mqsichangeusernameserver 命令还支持 -d 标志来禁用该选项。
配置代理以支持WebSphere Message Broker认证服务。您需要指定两个与认证和访问控制相关的参数,并使用工作台配置相应的 Real-timeInput 节点以及代理所支持的协议集。
以下步骤显示了如何进行该操作。
名称为 password.dat 和 pwgroup.dat 的两个样本文件与 WebSphere Message Broker 一起提供。
pwgroup.dat 是在使用 -j 标记时可用的样本文件。
缺省情况下,password.dat 是可用的样本文件。
# This is a password file. # Each line contains two required tokens delimited by # commas. The first is a user ID, the second is that user's # password. #USERNAME PASSWORD ======================== subscriber,subpw admin,adminpw publisher,pubpw此文件给出用户名称服务器从操作系统中取出的用户和组信息。在文件中定义的但未在操作系统中定义的用户名称,被代理域作为未知来对待。 在操作系统中定义但未在秘密文件中定义的用户名称,被拒绝对系统的访问。
pwgroup.dat 包含组信息以及用户和密码信息。 每条用户条目都包括组名称列表,此列表指定了包含用户的组。
# This is a password file. #Each line contains two or more required tokens delimited by #commas.The first is a user ID and the second is that user's #password. All subsequent tokens # specify the set of groups that the user belongs to. #USERNAME PASSWORD GROUPS subscriber,subpw,group1,group2,group3 admin,adminpw,group2 publisher,pubpw,group2,group4如上所述,此文件可用于提供代理域的用户、组和密码信息的唯一源。
若要从操作系统文件取出用户和密码信息,要把更新的用户和密码信息部署到代理网络,则应停止用户名服务器和代理,更新文件,然后重新启动用户名服务器和代理。
如果密码是从操作系统取出的,则更新会自动分发到代理。使用通常的操作系统管理工具来更改用户或密码。
对于使用 Java Message Service V5.3 CSD4 之前 WebSphere MQ 类的客户机应用程序,客户机应用程序总是有 PM 级别的认证协议。客户机应用程序和代理在会话的协议选择上协商。 其中代理支持两个协议(即,您已经在代理的工作台定义中设置 PM 或 MP),选择在 工作台中指定的首个协议。
对于使用 Java 消息服务 V5.3、CSD 5 或更高版本 WebSphere MQ 类的客户机应用程序,该应用程序支持认证的两个级别。
TopicConnectionFactory 可以被配置到支持 MQJMS_DIRECTAUTH_BASIC 认证模式或 MQJMS_DIRECTAUTH_CERTIFICATE 认证模式。MQJMS_DIRECTAUTH_BASIC 认证模式等价于 PM 的级别,MQJMS_DIRECTAUTH_CERTIFICATE 认证模式等价于 SR 的级别。
factory.createTopicConnection("user1", "user1pw");
如果未指定凭证或者指定不正确,应用程序接收到包含 MQJMS 错误文本的 JMS 合并的异常。