Red Hat Training

A Red Hat training course is available for Red Hat Process Automation Manager

第12章 LDAP 接続

Business Central は、ユーザータスクサービスがユーザー、グループ、ロールの情報を LDAP サービスから直接取得できるように、Red Hat Process Automation Manager で LDAP サーバー専用の UserGroupCallback 実装を提供します。

以下の LDAP UserGroupCallback 実装プロパティーは、設定可能です。

表12.1 LDAP UserGroupCallback プロパティー

プロパティー説明

ldap.bind.user

LDAP サーバーに接続するときのユーザー名 (LDAP が匿名アクセスに対応している場合には 任意)

ldap.bind.pwd

LDAP サーバーに接続するときのパスワード (LDAP が匿名アクセスに対応している場合には 任意)

ldap.user.ctx

ユーザー情報を含む LDAP のコンテキスト (必須)

ldap.role.ctx

グループトロールの情報を含む LDAP のコンテキスト (必須)

ldap.user.roles.ctx

ユーザーグループとロールのメンバーシップ情報を含む LDAP のコンテキスト (指定されておらず、ldap.role.ctx プロパティーが代わりに使用されている場合は 任意)

ldap.user.filter

ユーザー情報の検索フィルター。通常代替キー {0} が含まれており、パラメーターと置き換えられます (必須)。

ldap.role.filter

グループおよびロール情報の検索フィルター。通常代替キー {0} が含まれており、パラメーターと置き換えられます (必須)。

ldap.user.roles.filter

ユーザーのグループおよびロールメンバーシップ情報の検索フィルター。通常代替キー {0} が含まれており、パラメーターと置き換えられます (必須)。

ldap.user.attr.id

LDAP に含まれるユーザー ID の属性名 (任意。指定されていない場合には uid プロパティーが代わりに使用されます)

ldap.roles.attr.id

LDAP に含まれるグループおよびロール ID の属性名 (任意。指定されていない場合には cn プロパティーが代わりに使用されます)

ldap.user.id.dn

DN のユーザー ID。ロールの検索前にユーザー DN をクエリーするようにコールバックを指示します (任意、デフォルトは false)

java.naming.factory.initial

初期コンテキストファクトリークラス名。デフォルトは com.sun.jndi.ldap.LdapCtxFactory

java.naming.security.authentication

認証タイプ (許容値は、nonesimple および strong で、デフォルトは simple です)

java.naming.security.protocol

ssl など、使用するセキュリティープロトコル

java.naming.provider.url

LDAP url (デフォルトは ldap://localhost:389。プロトコルが ssl に設定されている場合は ldap://localhost:636)

12.1. LDAP UserGroupCallback 実装

以下のいずれかの方法で、該当の LDAP プロパティーを設定して、LDAP UserGroupCallback 実装を使用できます。

  • プログラム: 該当の LDAPUserGroupCallbackImpl プロパティーでプロパティーのオブジェクトをビルドし、プロパティーオブジェクトで、パラメーターとして LDAPUserGroupCallbackImpl を作成します。

    import org.kie.api.PropertiesConfiguration;
    import org.kie.api.task.UserGroupCallback;
    ...
    Properties properties = new Properties();
    properties.setProperty(LDAPUserGroupCallbackImpl.USER_CTX, "ou=People,dc=my-domain,dc=com");
    properties.setProperty(LDAPUserGroupCallbackImpl.ROLE_CTX, "ou=Roles,dc=my-domain,dc=com");
    properties.setProperty(LDAPUserGroupCallbackImpl.USER_ROLES_CTX, "ou=Roles,dc=my-domain,dc=com");
    properties.setProperty(LDAPUserGroupCallbackImpl.USER_FILTER, "(uid={0})");
    properties.setProperty(LDAPUserGroupCallbackImpl.ROLE_FILTER, "(cn={0})");
    properties.setProperty(LDAPUserGroupCallbackImpl.USER_ROLES_FILTER, "(member={0})");
    
    UserGroupCallback ldapUserGroupCallback = new LDAPUserGroupCallbackImpl(properties);
    
    UserGroupCallbackManager.getInstance().setCallback(ldapUserGroupCallback);
  • 宣言設定: アプリケーションのルートに jbpm.usergroup.callback.properties ファイルを作成するか、システムプロパティーとしてファイルの場所を指定します( -Djbpm.usergroup.callback.properties=FILE_LOCATION_ON_CLASSPATH)。

    ユーザータスクサーバーの起動時に LDAP コールバックを登録するようにしてください。

    #ldap.bind.user=
    #ldap.bind.pwd=
    ldap.user.ctx=ou\=People,dc\=my-domain,dc\=com
    ldap.role.ctx=ou\=Roles,dc\=my-domain,dc\=com
    ldap.user.roles.ctx=ou\=Roles,dc\=my-domain,dc\=com
    ldap.user.filter=(uid\={0})
    ldap.role.filter=(cn\={0})
    ldap.user.roles.filter=(member\={0})
    #ldap.user.attr.id=
    #ldap.roles.attr.id=
関連情報