在工作流中,与组织模型的交互是非常重要的功能,能否提供对多种组织存储方式的支持,以及能够满足复杂的组织结构支持,对工作流系统来说,是非常重要的。
本篇就简要介绍Oracle BPEL Workflow Service中的Identity Service。Identity Service是Workflow Service中很重要的服务,主要完成用户、组的查找,以及授权和认证。可以通过OracleAS JAAS Provider(JAZN)、Oracle内嵌的Directory服务、第三方LDAP服务器、或者客户自定义的存储实现。
Identity Service的配置文件
Identity Service的配置文件名为is_config.xml,默认在%SOA_Oracle_Home%\bpel\system\services\confi 目录下,其schema文件存储在%SOA_Oracle_Home%\bpel\system\services\schema\is_config.xsd。 在http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28982/service_config.htm#BABBDHFF 网页上有详细的结构介绍,此处不再累述。
Identity Servie支持三种plugin方式:JAZN provider, third-party LDAP directories, or custom repository plug-ins,分别是通过providerType属性来声明,值分别为JAZN, LDAP, or CUSTOM 如下是默认is_config.xml内容 view plaincopy to clipboardprint?
<ISConfiguration xmlns="http://www.oracle.com/pcbpel/identityservice/isconfig">
<configurations>
<configuration realmName="jazn.com">
<provider providerType="JAZN" name="XML" service="Identity">
<property name="usersPropertiesFile" value="users-properties.xml"/>
</provider>
</configuration>
</configurations>
</ISConfiguration>
<ISConfiguration xmlns="http://www.oracle.com/pcbpel/identityservice/isconfig">
<configurations>
<configuration realmName="jazn.com">
<provider providerType="JAZN" name="XML" service="Identity">
<property name="usersPropertiesFile" value="users-properties.xml"/>
</provider>
</configuration>
</configurations>
</ISConfiguration>
注意:如果providerType为JAZN,则需要声明realmName属性,并且其值必须为jazn.xml作包含的ream名称。jazn.xml在 %SOA_Oracle_Home%\j2ee\oc4j_soa\config 目录下,参考jazn.xml和system-jazn-data.xml文件。
当然,你可以使用custom repository方式,如下例子。其中客户自己实现的Identity Service类,必须实现oracle.tip.pc.services.identity.BPmidentityService这个接口类。
view plaincopy to clipboardprint?
<?xml version = "1.0" encoding = "UTF-8"?>
<ISConfiguration xmlns="http://www.oracle.com/pcbpel/identityservice/isconfig">
<configurations>
<configuration realmName="jazn.com">
<provider providerType="<FONT color=#0000ff>JAZN</FONT>" name="xml" service="<FONT color=#ff0000>Identity</FONT>">
<property name="userPropertiesFile" value="users-properties.xml"/>
</provider>
<FONT color=#0000ff><provider providerType="CUSTOM"
name="CustomPlugIn" service="<FONT color=#ff0000>Authentication</FONT>"
class="package.name.CustomAuthenticationService" /></FONT>
</configuration>
</configurations>
</ISConfiguration>
<?xml version = "1.0" encoding = "UTF-8"?>
<ISConfiguration xmlns="http://www.oracle.com/pcbpel/identityservice/isconfig">
<configurations>
<configuration realmName="jazn.com">
<provider providerType="JAZN" name="xml" service="Identity">
<property name="userPropertiesFile" value="users-properties.xml"/>
</provider>
<provider providerType="CUSTOM"
name="CustomPlugIn" service="Authentication"
class="package.name.CustomAuthenticationService" />
</configuration>
</configurations>
</ISConfiguration>
其中,针对provider中的service类型,主要有三种:Identity、Authentication、Authorization,默认是Identity。 采用XML-Based JAZN Provider 参考: http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28982/service_config.htm#BABDGHAG 使用Oracle Internet Direcatory 参考: http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28982/service_config.htm#BABDAGFH 使用第三方LDAP Server 参考: http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28982/service_config.htm#BABHBEGH 使用客户自定义的存储实现 其实,最主要是对oracle.tip.pc.services.identity.BPmidentityService这个接口的实现。这个内容改天再详细叙述。
原文出处:http://gocom.primeton.com/blog11229_16519.htm