级别: 初级 李志 (goodlz@21cn.com), 软件部工程师, IBM
2004 年 3 月 01 日 本文就以 IBM Directory Server V5.1 这种 LDAP Server 为例,介绍如何在开发和运行环境中使用 LDAP 方式为 WebSphere 流程策划器提供人员支持服务。
引言
前一部分主要介绍了如何在工作流开发工具中指定参与人员,以及设计和配置 LDAP 目录。接下来,我们将配置 WebSphere 企业版的运行环境使用 LDAP Server提供认证服务,并把工作流部署到应用服务器上,从而验证 LDAP 方式下人员服务的可行性。
1. 设置 WebSphere 企业版运行环境
接下来,我们要设置 WSADIE 中的 WebSphere 企业版测试运行环境,使服务器支持 LDAP 认证方式。WebSphere 企业版生产运行环境的配置与此相同。
1)打开 WSADIE,单击"文件"/"新建"/"其他",在弹出的"新建"对话框中选择"服务器",单击"服务器和服务器配置",选择"下一步",在"创建服务器和服务器配置"窗口中输入服务器名"Test",并在"服务器类型"框中选择"WebSphere V5.0"下的"EE测试环境",单击"完成"建立企业版测试运行环境。
2)切换到"业务集成"透视图,在"J2EE层次结构"视图中,展开"服务器"树,双击"Test",在弹出窗口中切换到"配置"选项卡,选中"启用管理控制台"。右击"J2EE层次结构"视图中的"Test",选择"控制"/"启动",启动服务器。
3)打开网络浏览器,输入网址"http://localhost:9090/admin",进入 WebSphere Application Server 管理控制台。
4)展开页面左边导航栏的"资源"节点,选择"Staff插件提供程序",点击右边的插件"LDAP Staff Plugin Provider",如下图所示:
图1 Staff插件提供程序
5)点击"Staff插件配置",在新页面中选择"LDAP Staff Plugin Configuration sample",再点击"定制属性",进入"定制属性"页面。
6)"定制属性"页面显示了以下选项:
- AuthenticationAlias : 可选属性。如果不设置,会匿名登陆到 LDAP 服务器。该属性代表了用于连接 LDAP 服务器的认证别名。该别名必须在 WebSphere 应用服务器管理控制台的"安全"-〉"JAAS 配置"-〉"J2C 认证数据"下定义。
- AuthenticationType :可选属性。缺省情况下,如果不设置 AuthenticationAlias,认证类型为"anonymous"(匿名),否则为"simple"(简单)类型。
- BaseDN :必填内容。该属性是指 WebSphere 应用服务器进行搜索操作的根节点,只有节点下面的目录单元才在搜索范围内。
- ContextFactory :必填内容。设置 Java 类的 JNDI 上下文工厂,如"com.sun.jndi.ldap.LdapCtxFactory"。
- ProviderURL :必填内容。设置 URL 指向 LDAP 服务器地址和端口。如"ldap://localhost:389"。
- SearchScope :必填内容。定义了在 LDAP 服务器中进行搜索的范围。可选值为"objectScope"、"onelevelScope"和"subtreeScope",分别表示搜索BaseDN的当前层、底下一层和所有子层。
- additionalParameterName1-5 :可选属性,用于设置附加的连接属性。
这里我们点击"BaseDN",在"配置"页面中输入值"o=ibm",并点击"确定"按钮。
7)展开页面左边导航栏的"用户注册表"栏,点击"LDAP"项,在右边的"LDAP 用户注册表"中输入 LDAP 服务器信息。选择刚在我们在 LDAP 服务器中建立的一个用户作为管理员,在"服务器用户标识"和"服务器用户密码"栏目中输入它的 uid 属性值和 userPassword 值,在"类型"中选择"IBM_Directory_Server",输入主机名"localhost",指定缺省端口为"389"。输入基本专有名称,也就是 baseDN 为"o=ibm"(我们已介绍过baseDN的用途)。在"绑定专有名称"和"绑定密码"中输入 LDAP 服务器的管理员 DN 及密码。选中"忽略大小写"项,并按"确定"按钮。
图2 LDAP 用户注册表
8)在页面左边导航栏中选择"全局安全性",在右边的页面中点选"已启用"按钮。选择"活动用户注册表"类型为"LDAP",点击"确定"按钮。如页面上方出现的提示信息未报错,点击"保存"按钮保存设置。
9)重启服务器以使安全设置生效。
2. 配置 LDAP 转换文件
使用 LDAP 方式,WSADIE环境下的缺省的人员查询定义文件位于 $WSADIE_HOME\runtimes\ee_v5\ProcessChoreographer\Staff 目录下,WAS 企业版环境下的缺省的人员查询定义文件位于$WASE_HOME\ProcessChoreographer\Staff 目录下, 文件名称为 LDAPTransformation.xsl。该文件的作用是将我们在 WSADIE 开发工具中输入的人员参数转化为后台 LDAP 所能识别的格式。
我们需要对该文件做一些修改,以符合我们的应用中对角色的调用需求。如果是在 staff 活动中指定的人员是组或者用户,则不需要更改配置。
1)首先备份该文件,以后可以从错误修改中恢复。
2)打开文件,可以看到下面一行:<xsl:variable name="RoleFilter">(OrgType=Role)</xsl:variable>
这里描述了角色的对象类型,我们把它改成下面的形式以符合实际的类型:br><xsl:variable name="RoleFilter">(objectclass=accessRole)</xsl:variable>
3)定位到下面这一段,
<!-- Begin template GetDepartmentAndRoleMembers -->
<xsl:template name="GetDepartmentAndRoleMembers">
……
……
……
</xsl:template>
<!-- End template GetDepartmentAndRoleMembers -->
|
这一段 XML 代码定义了查询角色的模板,主要分成以下几个部分:
- <xsl:param></xsl:param> 部分:传递我们在 WSADIE 中输入的参数,包括角色名,是否嵌套等。
- <sldap:search></sldap:search>部分:基于 LDAP 搜索器来定位人员、组或角色。
- Base DN 属性:可选,定义在哪个 LDAP 子树下进行搜索。如果忽略,系统将使用我们刚才在"Staff插件配置"中设置的base DN。
- filter 属性:将我们输入的角色名转化成符合 LDAP 规范的过滤器字符串,注意字符串中不能出现回车符。用户可以通过修改"filter"变量更改过滤类型,
- searchScope 属性:设置搜索范围,可选值为"objectScope"、"onelevelScope"和"subtreeScope",分别表示搜索BaseDN的当前层、底下一层和所有子层。
- recursive 属性:可选,指定是否递归地查找嵌套组或嵌套角色中的成员。缺省值为"yes"。
这里我们需要做出三处修改:
- 把 <xsl:attribute name="filter"> 节点改成搜索角色的 cn 属性,并把搜索串约束在一行之内。
- 把 <xsl:attribute name="searchScope"> 节点的搜索范围改成 subtreeScope,这样可以搜索 baseDN 下深层的子节点。
- 增加了 baseDN 节点,把输入的 Domain 值赋给它作为搜索起点。
您也可以根据自己应用的需要进行修改其他属性。文后的下载区提供修改后的转换文件,您可以把它跟缺省的文件作一下比较,以便更深入地了解。
4)在 <xsl:template name="Role Members"> 节点下增加 Domain 节点,传递我们在开发界面中输入的 Domain 值。修改后的节点如下所示:
<!-- Begin template Role Members -->
<xsl:template name="Role Members">
……
……
……
……
<xsl:with-param name="Domain">
<xsl:value-of select="staff:parameter[@id='Domain']"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!-- End template Role Members -->
|
5)保存文件。
3. 发布应用至运行环境
1)在"业务集成"透视图的"服务"视图中,右击服务项目,在特性窗口中选择人员选项卡。在人员插件配置的JNDI名称框中输入"bpe/staff/sampleldapconfiguration",使用我们刚才定义的插件,如下图所示:
图3 使用 LDAP 人员插件
2) 保存修改。
3)在服务器视图中,右击服务器并选择"部署进程"。
4. 运行和验证工作流
1)确保 IBM Directory Server 正在运行,否则启动 ibmslapd 命令。
2)启动企业版测试服务器。
3)启动流程,并使流程运行到staff_1活动。
4)用网络浏览器访问 Workflow 人员客户端 http://localhost:9080/bpe/webclient,使用 业务员 jenry 或 mary 的用户ID和密码登录。可以看到以下工作项 (workitem)。(运行环境为V5.02,其他版本界面稍有不同)
图4 Workflow 人员客户端
5)选中待处理事宜,点击"声称"按钮声称该活动。
6)选中待处理事宜,点击"完成"按钮。在新页面中输入完成活动必需的值,再点击"完成"按钮,如下图所示。
图5 完成活动
7)以完成活动的业务员的经理身份登录,会发现待批信息已经传递给他了,如下图所示。如果以另一位经理的身份登录,不会看到新的信息,说明我们的目的已经达到。
图6 处理待批信息
5. 总结
上文主要介绍了如何在开发和运行环境中使用 LDAP 方式为 WPC 提供人员支持服务。LDAP 服务器能提供丰富的人员查询方式,包括通过名称或ID查找用户,查找组或角色中的用户,查找某位员工的经理等,还可以通过上下文变量对多个人员活动的参与者进行关联,是一种比较灵活的方式。
这里有一些参考资料,可以加深您对 WPC 的了解:
1.
WPC 资料集
2.
为带有内嵌JMS 的补偿工作流安装和配置 WebSphere Application Server Enterprise Process Choreographer BPE 容器
3.
WebSphere InfoCenter
4.
Redbook:WebSphere Application Server Enterprise V5 and Programming Model Extensions WebSphere Handbook Series
5.
Redbook:Exploring WebSphere Studio Application Developer Integration Edition 5.0
6.
相关文章
下载
这里是附带的定制后的LDAP转换文件(
LDAPTransformation.xsl文件)与第一部分相同。
参考资料
WebSphere企业流程策划器专题
为带有内嵌JMS 的补偿工作流安装和配置 WebSphere Application Server Enterprise Process Choreographer BPE 容器
http://www.ibm.com/developerworks/cn/wsdd/techjournal/0309_bittles/bittles.shtml
WebSphere InfoCenter
http://publib.boulder.ibm.com/infocenter/wasinfo/index.jsp
Redbook:WebSphere Application Server Enterprise V5 and Programming Model Extensions WebSphere Handbook Series
http://publib-b.boulder.ibm.com/Redbooks.nsf/9445fa5b416f6e32852569ae006bb65f/1e02f10b11292bc985256ca9007891dd?OpenDocument
Redbook:Exploring WebSphere Studio Application Developer Integration Edition 5.0
http://publib-b.boulder.ibm.com/Redbooks.nsf/9445fa5b416f6e32852569ae006bb65f/4045b1d4f7973a3d85256cb100064ee4?OpenDocument
WBI应用实践 -- WAS 5 EE中的流程策划器
http://www.ibm.com/developerworks/cn/wsdd/library/techarticles/xujinbo/wasee/waseewf.shtml
关于作者
对本文的评价
|