第15章 LDAP 接続

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

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

表15.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)

15.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=

関連情報