12 LDAP認証プロバイダの構成

Oracle WebLogic Serverには、いくつかの一般的なLDAPアイデンティティ・ストアに格納されるユーザー情報へのアクセス権を付与するために、LDAP認証プロバイダが組み込まれています。

この章の内容は次のとおりです。

WebLogic Serverに含まれるLDAP認証プロバイダ

WebLogic Serverには、Oracle Internet Directory、Oracle Unified Directoryといったアイデンティティ・ストア用のLDAP認証プロバイダが組み込まれています。 組み込まれているLDAP認証プロバイダは次のとおりです。
  • Oracle Internet Directory認証プロバイダ

  • Oracle Unified Directory認証プロバイダ

  • Active Directory認証プロバイダ

  • Open LDAP認証プロバイダ

  • 汎用LDAP認証プロバイダ

各LDAP認証プロバイダが外部LDAPサーバーにユーザーおよびグループの情報を格納します。主な相違点は、それぞれが対応するLDAPサーバー用の一般的なディレクトリ・スキーマに合わせて構成されていることです。Oracle Internet Directoryプロバイダを、ユーザーおよびグループ属性のLDAPスキーマに合せて構成する方法については、「Oracle Internet Directory認証プロバイダでのユーザーおよびグループの構成」を参照してください。

WebLogic Serverは、特定のLDAPサーバーをサポートおよび証明しません。LDAP v2またはv3準拠のすべてのLDAPサーバーはWebLogic Serverと正常に連係します。以下のLDAPディレクトリ・サーバーについてはテスト済みです。

  • Oracle Internet Directory

  • Oracle Unified Directory

  • Microsoft Windowsプラットフォームの一部として出荷されたActive Directory

  • Open LDAP

LDAP認証プロバイダを使用して他のLDAPサーバーにアクセスすることもできます。ただし、LDAP認証プロバイダ(LDAPAuthenticator)を使用するか、または定義済みのLDAPプロバイダを選択してカスタマイズする必要があります。「他のLDAPサーバーへのアクセス」を参照してください。

ノート:

Active Directory認証プロバイダではMicrosoft Active Directory Application Mode (ADAM)もスタンドアロンのディレクトリ・サーバーとしてサポートしています。

LDAP認証プロバイダを使用するための要件

LDAP認証プロバイダがセキュリティ・レルムに構成されている唯一の認証プロバイダの場合、WebLogic Serverを起動してLDAPディレクトリ内のユーザーまたはグループを使用するには、Adminロールを持つ必要があります。 LDAPディレクトリで、次のいずれかを行います。
  • WebLogic Serverでは、デフォルトでAdminロールにAdministratorsグループが含まれています。LDAPディレクトリにAdministratorsグループがない場合は作成します。WebLogic Serverを起動するLDAPユーザーがこのグループに含まれていることを確認します。

    Active Directory LDAPディレクトリには、Administratorsというデフォルト・グループがあります。WebLogic Serverを起動するユーザーをAdministratorsグループに追加し、「グループ・ベースDN」を定義してAdministratorsグループが見つかるようにします。

  • LDAPディレクトリにAdministratorsグループを作成しない場合(LDAPディレクトリが別の目的でAdministratorsグループを使用する場合など)、LDAPディレクトリに新しいグループを作成(または既存のグループを使用)して、WebLogic Serverを起動するユーザーをそのグループに追加します。そのグループにAdminロールを割り当てます。

ノート:

Adminロールが割り当てられているグループにWebLogic Serverを起動するLDAPユーザーが正しく追加されておらず、セキュリティ・レルムが構成されている認証プロバイダがLDAP認証プロバイダのみである場合は、WebLogic Serverを起動することができません。

LDAP認証プロバイダの構成: 主なステップ

LDAPサーバーに適合するLDAP認証プロバイダを選択したら、プロバイダとLDAPサーバー間の通信を有効にし、LDAPサーバーのユーザーおよびグループの情報にアクセスできる方法を構成し、LDAP認証プロバイダのパフォーマンスを最適化する設定を構成する必要があります。

LDAP認証プロバイダを構成するには、次の主なステップを実行します。

  1. LDAPサーバーに一致するLDAP認証プロバイダを選択し、セキュリティ・レルムのプロバイダ・インスタンスを作成します。次のトピックを参照してください。

  2. WebLogicリモート・コンソールを使用して、LDAP認証プロバイダのプロバイダ固有の属性を構成します。LDAP認証プロバイダごとに、次の属性が存在します。

    1. LDAPサーバーとLDAP認証プロバイダの間の通信を有効にします。デプロイメントをよりセキュアにするために、SSLプロトコルを使用してLDAPサーバーとWebLogic Server間の通信を保護することをお薦めします。SSLを有効にするには、「SSLを有効化」属性を使用します。

    2. LDAP認証プロバイダがLDAPディレクトリを検索する方法を指定するオプションを構成します。

      ノート:

      principal用に入力した値は、対応LDAPサーバーでユーザーやグループを検索できる権限のあるLDAP管理者にする必要があります。LDAP管理者にLDAPサーバーで検索できる権限がないと、エラー・コードが50であるLDAP例外が生成されます。

    3. LDAPディレクトリ構造でのユーザーの場所を指定します。

    4. LDAPディレクトリ構造でのグループの場所を指定します。

      ノート:

      次のLDAPAuthenticatorMBean属性を使用してユーザーまたはグループのLDAP検索フィルタを指定する際、ワイルドカードを使用できますが、特に次の組合せを使用すると、LDAPサーバーのパフォーマンスに悪影響を及ぼすことがあります。

      • AllUsersFilter

      • UserFromNameFilter

      • AllGroupsFilter

      • GroupFromNameFilter

      たとえば、次のフィルタ式では5つのワイルドカード条件を組み合せており、条件ごとにワイルドカードでアスタリスク文字を2文字使用しています。

      (|(cn=*wall*)(givenname=*wall*)(sn=*wall*)(cn=*wall*)(mail=*wall*))
      

      前述のフィルタ例では相当のオーバーヘッドが対応LDAPサーバーで発生する可能性があります。

      さらに、グループ名の末尾にはスペースを含めないでください。

    5. グループのメンバーの配置方法を定義します。

    6. LDAPサーバーで定義されるグローバル・ユニバーサル識別子(GUID)属性の名前を設定します。

      ノート:

      Oracle Internet Directory認証プロバイダを構成する場合は、「Oracle Internet Directory認証プロバイダでのユーザーおよびグループの構成」を参照してください。この節では、ユーザーおよびグループの認証プロバイダ属性を、LDAPディレクトリ構造に一致させる方法について説明します。

    7. LDAPサーバーとの接続用にタイムアウト値を設定します。接続タイムアウトとソケット・タイムのタイムアウト値を指定できます。

      接続タイムアウト(すべてのLDAP認証プロバイダのLDAPServerMBean.ConnectTimeout属性で指定)のデフォルト値はゼロです。このデフォルト設定はタイムアウト制限がないことを示し、LDAP認証プロバイダに構成されているLDAPサーバーが使用できないと、この設定によってWebLogic Serverの実行処理速度が低下する場合があります。さらに、WebLogic Serverに複数のLDAP認証プロバイダが構成されている場合、1つのLDAPサーバーへの接続が失敗すると、それ以外のLDAP認証プロバイダの使用がブロックされます。

      LDAP認証プロバイダのLDAPServerMBean.ConnectTimeout属性をゼロでない値(たとえば、60秒)に設定することをお薦めします。この値は、WebLogicリモート・コンソールまたはWLSTで設定できます。また、LDAP認証プロバイダの次の構成パラメータを追加して、config.xmlファイルでこの値を設定することもできます。

      <wls:connect-time>60</wls:connect-time>
      

      ノート:

      config.xmlファイルは直接編集しないことをお薦めします。

      -Dweblogic.security.providers.authentication.ldap.socketTimeoutのJVM構成オプションで指定されるソケット・タイムアウトにより、LDAPServerMBean.Host属性で指定されるいずれか1つのLDAPサーバーへの接続のタイムアウトを秒単位で設定します。ソケット・タイムアウトのデフォルト値は0です。その場合、ソケット・タイムアウトは接続で設定されません。

      LDAP認証プロバイダの接続タイムアウトとソケット・タイムアウトに設定する適切な値については、「LDAP認証プロバイダのフェイルオーバーの構成」を参照してください。

  3. LDAPサーバーのキャッシュを制御するパフォーマンス・オプションを構成します。LDAP認証プロバイダのパフォーマンスの向上を参照してください。

ノート:

LDAP認証プロバイダをLDAPサーバーに接続できない場合や例外がスローされた場合は、LDAP認証プロバイダの構成をチェックし、対応するLDAPサーバーの設定と一致していることを確認してください。

次のトピックを参照してください。

他のLDAPサーバーへのアクセス

このリリースのWebLogic ServerのLDAP認証プロバイダは、Oracle Internet Directory、Oracle Unified Directory、Active DirectoryおよびOpen LDAPサーバーと容易に連携動作します。 また、LDAP認証プロバイダを使用すると、他のタイプのLDAPサーバーにアクセスできます。汎用LDAP認証プロバイダ(LDAPAuthenticator)または新しいLDAPサーバーにもっともよく適合する既存のLDAPプロバイダを選択し、そのLDAPサーバーのディレクトリ・スキーマと他の属性に合わせて既存の構成をカスタマイズします。

Oracle Unified Directoryを使用する場合、「Oracle Unified Directory認証プロバイダの構成」を参照してください。

Active Directoryを使用する場合、「Active Directory認証プロバイダの参照への遵守」を参照してください。

SSL用のLDAP認証プロバイダの有効化

LDAP認証プロバイダ用にSSLを構成するには、LDAPサーバーで使用するカスタム信頼キーストアを作成して構成し、そのLDAPサーバーに接続する際にLDAP認証プロバイダでSSLプロトコルを使用することを指定する必要があります。

これを行うには、次のステップを実行します。

  1. LDAP認証プロバイダを構成します。「SSL有効」オプションをオンにしていることを確認します。
  2. LDAPサーバー用のルート認証局(CA)の証明書を取得します。
  3. 前述の証明書を使用して信頼キーストアを作成します。たとえば、次の例では、keytoolコマンドを使用してルートCA証明書rootca.pemを含むldapTrustKSという名前のJKSキーストアを作成する例を示しています:
    keytool -importcert -keystore ./ldapTrustKS -trustcacerts -alias oidtrust -file rootca.pem -noprompt -storetype jks

    ノート:

    前述のコマンドを入力すると、keytoolによってキーストアのパスワードの入力を求められます。

    信頼キーストアの作成の詳細は、キーストアの構成を参照してください。

  4. WebLogic Serverのアクセス元の場所にキーストアをコピーします。
  5. WebLogicリモート・コンソールで、「ツリーの編集」を開き、「環境」「サーバー」myServerの順に移動します。「セキュリティ」タブで、「キーストア」サブタブをクリックします。
  6. 必要に応じて、「キーストア」フィールドで、「変更」をクリックして「カスタムIDとカスタム信頼」構成ルールを選択します。
  7. LDAPサーバーとの通信が双方向SSLを使用する場合、カスタムIDキーストア、キーストア・タイプ、およびパスフレーズを構成します。
  8. 「カスタム信頼キーストア」で、作成した信頼キーストアのパスとファイル名を入力します。
  9. 「カスタム信頼キーストアのタイプ」で、jksと入力します。PKCS12キーストアを作成した場合は(-storetype pkcs12)、ここにpkcs12と入力します。
  10. 「カスタム信頼キーストアのパスフレーズ」で、キーストア作成時に使用されたパスワードを入力します。
  11. 変更を適用するには、WebLogic Serverインスタンスを再起動します。

「SSLの構成」を参照してください。WebLogicリモート・コンソールを使用してキーストアを構成し、SSLを有効にする方法の詳細は、Oracle WebLogic Remote Consoleオンライン・ヘルプに記載されている次のトピックを参照してください。

動的グループとWebLogic Server

多くのLDAPサーバーには、動的グループまたは仮想グループの概念があります。 多くのLDAPサーバーには、動的グループまたは仮想グループの概念があります。これらは、ユーザーとグループのリストで構成されるグループではなく、グループに属するユーザーの集合を定義するポリシー文、問合せ、またはコードを格納するグループです。あるグループが動的としてマークされる場合、ユーザーはグループ・メンバーシップへの何らかの変更が有効になる前にログアウトし、ログインし直す必要があります。動的という用語は、グループを定義する方法を指します。WebLogic Server内でのグループの実行時セマンティクスを指すものではありません。

WebLogicプリンシパルでのGUIDおよびLDAP DNデータの使用

ユーザーがWebLogic Serverに認証される場合、認証プロバイダはユーザーとグループのプリンシパルでサブジェクトを作成します。プリンシパルには、ユーザーとグループの名前がそれぞれ含まれます。 WebLogic Serverに含まれるLDAP認証プロバイダは、これらのプリンシパルの属性として、ユーザーとグループのグローバル・ユニバーサル識別子(GUID)とLDAP識別名(DN)のデータも格納します。デフォルトでは、WebLogicプリンシパルでGUIDやDNのデータは使用されません。ただし、WebLogicドメインがJAAS認可を使用するように構成される場合、Javaポリシー決定で生じるプリンシパルの比較操作でGUIDとDNのデータを使用できます。

LDAP認証プロバイダを構成する場合、LDAPサーバーで定義されるGUID属性の名前をそのプロバイダに対して正しく指定します。WebLogic Serverに含まれる各LDAP認証プロバイダのデフォルトのGUID属性名を表12-1に示します。

表12-1 WebLogic ServerのLDAP認証プロバイダのGUID属性名

プロバイダ デフォルトのGUID属性名

WebLogic認証プロバイダ

orclguid脚注1

Oracle Internet Directory認証プロバイダ

orclguid

Active Directory認証プロバイダ

objectguid脚注 2

Oracle Unified Directory認証プロバイダ

entryuuid

Open LDAP認証プロバイダ

entryuuid

脚注1

組込みLDAPサーバーのGUID属性名は変更できないため、WebLogic認証プロバイダに、構成可能な対応属性はありません。

脚注2

Active Directory認証プロバイダではMicrosoft Active Directory Application Mode (ADAM)もスタンドアロンのディレクトリ・サーバーとしてサポートしています。

プリンシパル・オブジェクトでのGUIDとDNデータの使用については、「JAAS認可を使用するドメインの構成」を参照してください。

Oracle Internet Directory認証プロバイダでのユーザーおよびグループの構成

Oracle Internet Directory認証プロバイダで、ユーザーおよびグループをLDAPサーバー内で特定する方法を指定するデフォルト値を変更できます。

ユーザーおよびグループの名前タイプの構成

Oracle Internet Directoryプロバイダは、デフォルトでは次の表に示すクラス属性タイプを使用してLDAPディレクトリ内のユーザーおよびグループを検索するように構成されています。

表12-2 検索で使用されるクラス属性タイプ

クラス 属性 タイプ

ユーザー・オブジェクト・クラス

ユーザー名

cn

グループ・オブジェクト・クラス

グループ名

cn

LDAPディレクトリ構造内に定義されているユーザー名属性タイプまたはグループ名属性タイプが、使用している認証プロバイダのデフォルト設定と異なる場合は、それらのプロバイダの設定を変更する必要があります。以下の節では、これらの設定を変更する方法について説明します。

ノート:

LDAPサーバー内のユーザーまたはグループの名前に無効な文字が含まれている場合、Oracle Internet Directory認証プロバイダはそれらの名前を読み取ることができません。無効な文字は次のとおりです。

  • カンマ(,)

  • プラス記号(+)

  • 引用符(")

  • バックスラッシュ(\)

  • 山カッコ(<および>)

  • セミコロン(;)

無効な文字を含むグループ名やユーザー名は、プロバイダでは無視されます。(WebLogic Serverでは、通常、無効な文字を含むグループ名はサポートされません。Oracle WebLogic Remote Consoleオンライン・ヘルプグループの作成に関する項を参照してください。)

この項には次のトピックが含まれます:

ユーザー名属性タイプを変更する

Oracle Internet Directory認証プロバイダは、デフォルトではタイプがcnに設定されたユーザー名属性で構成されています。LDAPディレクトリ構造内のユーザー名属性タイプが別のタイプ(たとえばuid)である場合は、以下の認証プロバイダ属性を変更する必要があります。

  • AllUsersFilter

  • UserFromNameFilter

  • UserNameAttribute

たとえば、LDAPディレクトリ構造のユーザー名属性タイプがuidである場合は、上に示した認証プロバイダ属性を表12-3のように変更する必要があります。変更が必要な部分がboldで示されています。

表12-3 ユーザー・オブジェクト・クラスのユーザー名属性タイプの変更

属性名 デフォルト設定 変更後の新しい設定

UserNameAttribute

cn

uid

AllUsersFilter脚注 3

(&(cn=*)(objectclass=person))

(&(uid=*)(objectclass=person))

UserFromNameFilter

(&(cn=%u)(objectclass=person))

(&(uid=%u)(objectclass=person))

脚注3

ユーザーまたはグループに対してLDAP検索フィルタを指定する際には、ワイルドカードを使用できます。ただし、特にユーザー名またはグループ名属性に対してアスタリスクのワイルドカードを複数使用すると、LDAPサーバーのパフォーマンスに悪影響を及ぼします。

ユーザー名属性タイプを構成するには、Oracle WebLogic Remote Consoleオンライン・ヘルプ認証プロバイダまたはIDアサーション・プロバイダの構成に関する項を参照してください。

グループ名属性タイプを変更する

Oracle Internet Directory認証プロバイダは、デフォルトで、グループ名属性タイプがcnに設定された静的および動的グループ・オブジェクト・クラスで構成されています。LDAPディレクトリ構造内のグループ名属性タイプに別のタイプ(たとえばuid)が使用されている場合は、次の認証プロバイダ属性を変更する必要があります。

  • AllGroupsFilter

  • GroupFromNameFilter

  • StaticGroupNameAttribute (静的グループ用)

  • DynamicGroupNameAttribute (動的グループ用)

たとえば、グループ・オブジェクト・クラスのLDAPディレクトリ構造でグループ名属性タイプとしてuidを使用している場合は、認証プロバイダ属性を表12-4のように変更する必要があります。変更が必要な部分がboldで示されています。

表12-4 グループ名属性タイプの変更

属性名 デフォルト設定 必要な変更

StaticGroupNameAttribute

cn

uid

DynamicGroupNameAttribute

cn

uid

AllGroupsFilter脚注 4

(&(cn=*)(|(objectclass=groupofUniqueNames)(objectclass=orcldynamicgroup)))

(&(uid=*)(|(objectclass=groupofUniqueNames)(objectclass=orcldynamicgroup)))

GroupFromNameFilter脚注 4

(|(&(cn=%g)(objectclass=groupofUniqueNames))(&(cn=%g)(objectclass=orcldynamicgroup)))

(|(&(uid=%g)(objectclass=groupofUniqueNames))(&(uid=%g)(objectclass=orcldynamicgroup)))

脚注4

ユーザーまたはグループに対してLDAP検索フィルタを指定する際には、ワイルドカードを使用できます。ただし、特にユーザー名またはグループ名属性に対してアスタリスクのワイルドカードを複数使用すると、LDAPサーバーのパフォーマンスに悪影響を及ぼします。

グループ名属性を構成するには、Oracle WebLogic Remote Consoleオンライン・ヘルプ認証プロバイダまたはIDアサーション・プロバイダの構成に関する項を参照してください。

静的グループの構成

Oracle Internet Directory認証プロバイダは、デフォルトでは次のように設定された静的グループで構成されています。

  • 静的グループ・オブジェクト・クラス名はgroupofuniquenames

  • 静的メンバーDN属性のタイプはuniquemember

一方、この認証プロバイダを構成するOracle Internet DirectoryのLDAPサーバーのディレクトリ構造では、静的グループが次のように定義されている場合があります。

  • 静的グループ・オブジェクト・クラス名はgroupofnames

  • 静的メンバーDN属性のタイプはmember

LDAPデータベース・スキーマにgroupofnamesという静的グループ・オブジェクト・クラス名とmemberタイプの静的メンバーDN属性が含まれている場合は、Oracle Internet Directory認証プロバイダの属性設定を表12-5のように変更する必要があります。変更が必要な部分がboldで示されています。

表12-5 Oracle Internet Directory認証プロバイダでの静的グループの属性設定

属性 デフォルト設定 必要な変更

StaticGroupObjectClass

groupofuniquenames

groupofnames

StaticMemberDNAttribute

uniquemember

member

AllGroupsFilter脚注 5

(&(cn=*)(|(objectclass=groupofUniqueNames)(objectclass=orcldynamicgroup)))

(&(cn=*)(|(objectclass=groupofnames)(objectclass=orcldynamicgroup)))

GroupFromNameFilter脚注5

(|(&(cn=%g)(objectclass=groupofUniqueNames))(&(cn=%g)(objectclass=orcldynamicgroup)))

(|(&(cn=%g)(objectclass=groupofnames))(&(cn=%g)(objectclass=orcldynamicgroup)))

脚注5

ユーザーまたはグループに対してLDAP検索フィルタを指定する際には、ワイルドカードを使用できます。ただし、特にユーザー名またはグループ名属性に対してアスタリスクのワイルドカードを複数使用すると、LDAPサーバーのパフォーマンスに悪影響を及ぼします。

静的グループを構成するには、Oracle WebLogic Remote Consoleオンライン・ヘルプ認証プロバイダまたはIDアサーション・プロバイダの構成に関する項を参照してください。

Oracle Internet Directory認証プロバイダの構成例

サンプルのOracle Internet Directory認証プロバイダの設定方法と、その構成を検証するための簡単な方法を使用する仕方を学習します。

このプロバイダを構成するには、次のステップを実行します。

  1. 新しいOracle Internet Directory認証プロバイダを作成します。WebLogicリモート・コンソールを使用して、Oracle WebLogic Remote Consoleオンライン・ヘルプ認証プロバイダまたはIDアサーション・プロバイダの構成に関する項で説明されているプロセスに従います。タイプとしてOracleInternetDirectoryAuthenticatorを選択します。

  2. 新しいOracle Internet Directory認証プロバイダを構成します。

    1. 「JAAS制御フラグ・オプションの設定」の説明に従って、「制御フラグ」を必要に応じて設定します。

    2. 「プロバイダ固有」タブに移動します。

    3. 使用するOracle Internet Directoryサーバーの値で接続設定を構成します。ポートは、Oracle Internet Directory LDAPポートにする必要があります。この例では、次の値を使用します。

      Host: hostname.com
      Port: 3060
      Principal: cn=orcladmin
      Credential: password
      SSLEnabled is unchecked
      
    4. Oracle Internet Directoryの構成に従って、「ユーザー」セクションを構成します。

      「ユーザー名属性タイプを変更する」で説明しているように、「すべてのユーザーのフィルタ」および「名前指定によるユーザー・フィルタ」フィールドには特に注意してください。これらの値は、「ユーザー名属性」フィールドの値を反映している必要があります

      「ユーザー名属性」フィールドのデフォルト値はcnです。したがって、フィルタ・フィールドのデフォルト値はそれぞれ、(&(cn=)...)(&(*cn=%u)...)になります。「ユーザー名属性」の値を変更した場合は、フィルタ・フィールドの値もそれに応じて置き換える必要があります

      ノート:

      これらのフィルタ・フィールド値の先頭または最後に空白が含まれている場合、Oracle Internet Directoryからユーザー・リストが正しくフェッチされず、Oracle Internet Directory認証プロバイダを使用して認証できない可能性があります。

      この例では、次の値を使用します。キーの変更はboldで示されています。

      User Base DN: cn=Users,dc=us,dc=oracle,dc=com
      All Users Filter: (&(uid=*)(objectclass=person))
      User From Name Filter: (&(uid=%u)(objectclass=person))
      User Seearch Scope: subtree
      User Name Attribute: uid
      User Object Class: person
      
    5. Oracle Internet Directoryの構成に従って、「グループ」セクションを構成します。

      「グループ名属性タイプを変更する」で説明しているように、Oracle Internet Directory認証プロバイダはデフォルトで、グループ名属性タイプがcnに設定された静的および動的グループ・オブジェクト・クラスで構成されています。LDAPディレクトリ構造内のグループ名属性タイプに別のタイプが使用されている場合は、それに合せて他の認証プロバイダ属性を変更する必要があります。

      さらに、「静的グループの構成」で説明しているように、Oracle Internet Directory認証プロバイダは、デフォルトでは静的グループ・オブジェクト・クラス名がgroupofuniquenames、および静的メンバーDN属性のタイプがuniquememberとして構成されています。

      LDAPデータベース・スキーマに、デフォルト設定ではなく、groupofnamesという静的グループ・オブジェクト・クラス名とmemberタイプの静的メンバーDN属性が含まれている場合は、属性設定を表12-5のように変更する必要があります。

      この例では、次の値を使用します。一致させる必要のあるキー値はboldで示されています。

      Group Base DN: cn=Groups,dc=us,dc=oracle,dc=com
      All Groups Filter: (&(cn=*)(objectclass=groupofUniqueNames))
      
      Static Group Name Attribute: cn
      Static Group Object Class: groupofuniquenames
      Static Member DN attribute: uniquemember
      Static Group DNs from Member DN Filter: (&(uniquemember=%M)(objectclass=groupofuniquenames))
      
      Dynamic Group Name Attribute: (empty)
      Dynamic Group Object Class:   (empty)
      Dynamic Member URL Attribute: (empty)
      User Dynamic Group DN Attribute:  (empty)
      
    6. 「LDAP認証プロバイダの構成:主なステップ」の説明に従い、必要に応じて他のすべてのセクションを構成します。この例では、すべてデフォルト値が使用されています。

    7. 変更内容を保存します。

  3. 必要な場合は、Oracle Internet Directory認証プロバイダがリストの最初になるように、プロバイダの順序を設定します。

  4. WebLogic Serverを再起動して、変更を完了します。

  5. 設定を検証します。

LDAP認証プロバイダのフェイルオーバーの構成

複数のLDAPサーバーと連携するLDAPプロバイダを構成し、1つのLDAPサーバーが利用できない場合のフェイルオーバーを有効にできます。 LDAPAuthenticatorMBean.Host属性を使用して、追加のLDAPサーバーの名前を指定します。各ホスト名は、末尾のスペースやポート番号が入ってもかまいません。また、LDAP認証プロバイダの「パラレル接続遅延」属性および「接続タイムアウト」属性を設定します
  • パラレル接続遅延 - 複数のサーバーに同時に接続を試みるときに遅延する秒数を指定します。接続の試行はリストの最初のサーバーに対して行われます。現在のホストへの接続が失敗した場合にのみ、リスト中の次のエントリが試行されます。この設定では、ホストがダウンしている場合にアプリケーションが許容しがたいほど長い時間ブロックされる場合があります。値が0より大きい場合、指定した遅延秒数が経過すると、別の接続設定スレッドが開始されます。値が0の場合、接続の試行はシリアライズされます。

  • 接続タイムアウト - LDAPサーバーへの接続が確立されるまでに待機する最長時間を秒単位で指定します。値が0に設定されている場合(デフォルト)、最大の時間制限はなく、TCP/IPレイヤーがタイム・アウトになって接続の失敗を返すまでWebLogic Serverは待機します。

    複数のホストが「ホスト」属性で設定されていると、すべての指定ホストとの接続試行における合計タイムアウト値を接続タイムアウトにより制御します。

    TCP/IPの構成に応じて、接続タイムアウトを60秒以上の値に設定することをお薦めします。

  • ソケット・タイムアウト -「ホスト」属性で指定される1台のホストとの接続が確立されるまでに待機する最長時間を秒単位で指定します。WebLogic Serverが動作するJVMの-Dweblogic.security.providers.authentication.ldap.socketTimeout=secondsセキュリティ・パラメータを使用することでのみソケット・タイムアウトを指定します。ソケット・タイムアウトのデフォルト値は0です。その場合、ソケット・タイムアウトは設定されません。

    ソケット・タイムアウトはWebLogicリモート・コンソールで設定できません。WebLogic Serverセキュリティ・パラメータを構成するためのオプションの詳細は、『Oracle WebLogic Serverコマンド・リファレンス』セキュリティに関する項を参照してください。

以下の例は、LDAP認証プロバイダのLDAPフェイルオーバーが構成されている場合のシナリオを示しています。

LDAPフェイルオーバーの例1

次のシナリオでは、LDAP認証プロバイダの「ホスト」属性に、directory.knowledge.com:1050people.catalog.com199.254.1.2という3つのサーバーが構成されています。これらのLDAPサーバーのステータスは次のとおりです。

  • directory.knowledge.com:1050はダウンしています

  • people.catalog.comはアクティブです

  • 199.254.1.2はアクティブです

WebLogic Serverはdirectory.knowledge.comに接続しようとします。3秒後やソケット接続で例外がスローされた場合、接続の試行はタイムアウトになり、WebLogic Serverは指定された次のホスト(people.catalog.com)に接続しようとします。WebLogic Serverは、この接続のLDAPサーバーとしてpeople.catalog.comを使用します。それ以外の場合、さらに3秒後にWebLogic Serverで199.254.1.2との接続を試行します。この処理は続行しますが、全体のLDAPサーバー接続処理が10秒を超過すると失敗します。

表12-6 LDAP構成の例1

LDAPオプション

ホスト

directory.knowledge.com:1050 people.catalog.com 199.254.1.2

パラレル接続遅延

0

接続タイムアウト

10

ソケット・タイムアウト

3

LDAPフェイルオーバーの例2

次のシナリオでは、WebLogic Serverはdirectory.knowledge.comに接続しようとします。1秒後(「パラレル接続遅延」属性で指定)、接続の試行はタイムアウトになり、WebLogic Serverは指定された次のホスト(people.catalog.com)とdirectory.knowledge.comに同時に接続しようとします。people.catalog.comとの接続が成功すると、WebLogic Serverは、この接続のLDAPサーバーとしてpeople.catalog.comを使用します。people.catalog.comとの接続が成功すると、WebLogic Serverでdirectory.knowledge.comとの接続を取り消します。

表12-7 LDAP構成の例2

LDAPオプション

ホスト

directory.knowledge.com:1050 people.catalog.com 199.254.1.2

パラレル接続遅延

1

接続タイムアウト

10

ソケット・タイムアウト

3

Oracle Unified Directory認証プロバイダの構成

WebLogicリモート・コンソールを使用してOracle Unified Directory認証プロバイダを構成します。ステップは次のとおりです。
  1. Oracle WebLogic Remote Consoleオンライン・ヘルプ認証プロバイダまたはIDアサーション・プロバイダの構成に関する項で説明されているプロセスに従います。タイプとしてOracleUnifiedDirectoryAuthenticatorを選択します。
  2. Oracle Unified Directory用の接続属性に加え、必要に応じて他の属性も構成します。
  3. 「GUID属性」フィールドにentryuuidが表示されていることを確認します。
  4. 「保存」をクリックします。

ノート:

Oracle Unified Directory認証プロバイダを構成し、そのプロバイダ用に構成されたLDAPユーザーとしてWebCenterにログインした後、アイデンティティ・ストアにユーザーが見つからないと述べるWCSエラーを受け取ることがあります。このエラーは、セキュリティ・レルムのDefaultAuthenticatorプロバイダがREQUIREDに設定されている場合に受け取ります。回避策として、DefaultAuthenticatorプロバイダのJAAS制御フラグをSUFFICIENTに変更します。「JAAS制御フラグ・オプションの設定」を参照してください。

Active Directory認証プロバイダの参照への遵守

Active DirectoryがLDAP参照を使用する場合、LDAPServerMBean.FollowReferrals属性が有効化されていることを確認して、LDAP参照に従うようにActive Directory認証プロバイダを構成する必要があります。 この属性はデフォルトで有効化されていますが、厳密に有効化されていることを確認することをお薦めします。

WLSTまたはWebLogicリモート・コンソールを使用してこの属性を有効化できます。

LDAP認証プロバイダのパフォーマンスの向上

WebLogic Serverでは、グループ・メンバーシップ・キャッシュ、接続プール・サイズおよびユーザー・キャッシュの設定を最適化するなど、LDAP認証プロバイダのパフォーマンスを向上させる方法をいくつか使用することができます。

LDAP認証プロバイダのパフォーマンスを向上させるには:

グループ・メンバーシップ・キャッシュの最適化

LDAP認証プロバイダのグループ・メンバーシップ・キャッシュを最適化するには、次の属性を設定します。

  • グループ・メンバーシップ検索 - 「プロバイダ固有」ページから使用できます。この属性はグループ検索が深さにおいて制限されるかどうかを制御します。このオプションによって、ネストされたグループへの検索の深さの程度が制御されます。ネストされたグループ階層の最初のレベルのみを使用する構成の場合、このオプションによって検索がグループの最初のレベルに制限されるのでユーザー検索時のパフォーマンスが向上します。

    • 制限された検索を定義した場合は、「グループ・メンバーシップ検索の最大レベル」も定義する必要があります。

    • 制限されない検索を定義した場合、「グループ・メンバーシップ検索の最大レベル」は無視されます。

  • グループ・メンバーシップ検索の最大レベル - 「プロバイダ固有」ページから使用できます。この属性は、「グループ・メンバーシップ検索」が定義されている場合にグループ・メンバーシップ検索の深さを制御します。指定できる値は次のとおりです。

    • 0 - 直接のグループのみが検索されることを示します。つまり、グループAのメンバーシップを検索する場合、グループAの直接のメンバーのみが検出されます。グループBがグループAのメンバーである場合、そのメンバーはこの検索では検出されません。

    • 任意の正の数字 - 検索するレベル数を示します。たとえば、このオプションを1に設定した場合、グループAのメンバーシップの検索ではグループAの直接のメンバーが返されます。グループBがグループAのメンバーである場合、この検索ではグループBのメンバーも検出されます。ただし、グループCがグループBのメンバーである場合、この検索ではグループCのメンバーは検出されません。

  • グループ・メンバーシップ・ルックアップの階層キャッシングを有効化— 「パフォーマンス」ページから使用できます。この属性は、再帰的なメンバーシップ・ルックアップ中に見つかったグループ・メンバーシップ階層がキャッシュされるかどうかを示します。見つかった各サブツリーがキャッシュされます。キャッシュは、あるグループがメンバーになっているグループを保持します。この設定は、「グループ・メンバーシップ検索」属性が有効になっている場合にのみ適用されます。このオプションはデフォルトでは無効にされています。

  • キャッシュ内の最大グループ階層数 - 「パフォーマンス」ページから使用できます。この属性は、グループ・メンバーシップ階層を保持する最長時間未使用(LRU)キャッシュの最大サイズを指定します。値を1024に設定することをお薦めします。この設定は、「グループ・メンバーシップ・ルックアップの階層キャッシングの有効化」が有効になっている場合にのみ適用されます。

  • グループ階層キャッシュTTL - 「パフォーマンス」ページから使用できます。この属性は、キャッシュされたエントリがキャッシュ内に何秒間留まるかを指定します。デフォルトでは60秒です。値を6000に設定することをお薦めします。

キャッシュを設定する場合は、以下の点に留意する必要があります。

  • キャッシュの有効化には、パフォーマンスと正確性のトレードオフが伴います。キャッシュを使用することでデータの取得は高速化されますが、そのデータは使用可能な最新のものではないおそれがあります。

  • 存続時間(TTL)には、古くなっているおそれがあるデータを受け入れる時間の程度を設定します。この値はビジネス上のニーズによって大きく異なります。ユーザーに対してグループ・メンバーシップを頻繁に変更する場合は、長時間のTTLではグループ関連の変更がしばらくの間反映されないことがあります。この場合は短時間のTTLを使用します。ユーザーの追加後、グループ・メンバーシップがほとんど変更されない場合は、TTLが多少長くてもかまいません。

  • キャッシュ・サイズは、キャッシュTTL同様、使用可能なメモリー量と関連します。TTLの間にロードされるエントリ数を考慮し、その数を基準にキャッシュのサイズを設定してください。TTLが長時間になるほど、大きいキャッシュ・サイズが必要になる傾向があります。

接続プール・サイズとユーザー・キャッシュの最適化

任意のLDAP認証プロバイダを構成するとき、LDAP接続プールとユーザー・キャッシュのサイズを最適化することによって、WebLogic ServerとLDAPサーバー間の接続パフォーマンスを向上できます。これらの最適化を行うには、次のステップを実行します。

  1. 次の方法のいずれかを使用して、LDAP接続プール・サイズを100に設定します。

    • WebLogicドメインのbinディレクトリにあるsetDomainEnvスクリプトの次のシステム・プロパティを定義します。

      -Dweblogic.security.providers.authentication.LDAPDelegatePoolSize=100
      
    • WebLogicリモート・コンソールで、構成するLDAP認証プロバイダのプロバイダ固有のページに移動し、「接続プール・サイズ」フィールドに100を指定します。

  2. WebLogicリモート・コンソールで次のステップを完了させ、LDAPサーバーで使用するキャッシュを有効化して拡大します。

    1. 構成するLDAP認証プロバイダのプロバイダ固有のページで、「キャッシュの有効化」オプションが有効になっていることを確認します。

    2. 「キャッシュ・サイズ」フィールドで、値を3200 KBに指定します。

    3. 「キャッシュTTL」フィールドで、「グループ階層キャッシュTTL」値に一致するTTL値を指定します(「グループ・メンバーシップ・キャッシュの最適化」を参照)。値を6000に設定することをお薦めします。

    4. LDAPサーバーに結果のタイムアウト値を設定します。現在の「プロバイダ固有」構成ページで、「結果タイム・リミット」というラベルのフィールドで値を1000 msに指定します。

  3. WebLogic Serverを再起動して、変更を有効にします。

プリンシパル検証プロバイダ・キャッシュの最適化

LDAP認証プロバイダのパフォーマンスを向上させるために、必要に応じて、WebLogicプリンシパル検証プロバイダによって使用されるキャッシュの設定を大きくすることができます。WebLogicプリンシパル検証プロバイダによって使用されるプリンシパル検証プロバイダ・キャッシュは、署名されたWLSAbstractPrincipalをキャッシュします。プリンシパル検証プロバイダ・キャッシュのパフォーマンスを最適化するには、使用しているセキュリティ・レルムに次の属性を設定します。

  • 「WebLogicプリンシパル検証プロバイダ・キャッシュを有効化」 - WebLogicプリンシパル検証プロバイダがキャッシュを使用するかどうかを示します。この設定は、セキュリティ・レルム内の認証プロバイダがWebLogicプリンシパル検証プロバイダとWLSAbstractPrincipalを使用する場合にのみ適用されます。このオプションはデフォルトでは有効になっています。

  • 「キャッシュ内の最大WebLogicプリンシパル数」 - 有効性が検証されたWLSAbstractPrincipalに対して使用される最長時間未使用(LRU)キャッシュの最大サイズです。デフォルトの設定は500です。この設定は「WebLogicプリンシパル検証プロバイダ・キャッシュを有効化」が有効な場合にのみ適用されます。

Active Directory認証プロバイダの構成によるパフォーマンスの向上

Active Directory認証プロバイダでtokenGroupsオプションを使用するように構成するには、次の属性を設定します。

  • 「グループ・メンバーシップ・ルックアップでトークン・グループを使用する」 - 標準の再帰的なグループ・メンバーシップ・ルックアップ・アルゴリズムではなく、Active DirectoryのtokenGroupsルックアップ・アルゴリズムを使用するかどうかを指定します。デフォルトでは、このオプションは有効ではありません。

    ノート:

    tokenGroupsオプションへのアクセスが必要になります(つまり、LDAPディレクトリにアクセスするユーザーにはtokenGroupsオプションの読込み権限が必要になり、tokenGroupsオプションはユーザー・オブジェクトのスキーマになければなりません)。

  • 「SIDによるグループ・ルックアップのキャッシングの有効化」 - SIDによるグループ名のルックアップ結果がキャッシュされるかどうかを指定します。この設定は、「グループ・メンバーシップ・ルックアップでトークン・グループを使用する」オプションが有効になっている場合にのみ適用されます。

  • 「キャッシュ内のSIDによるグループ・ルックアップ最大数」 - グループ・ルックアップにSIDを保持するための最長時間未使用(LRU)キャッシュの最大サイズです。この設定は、「グループ・メンバーシップ・ルックアップでトークン・グループを使用する」属性および「SIDによるグループ・ルックアップのキャッシングの有効化」属性の両方が有効になっている場合にのみ適用されます。

一般LDAP認証プロバイダのキャッシュ統計の分析

汎用LDAP認証プロバイダを使用している場合、LDAPAuthenticatorMBean APIを使用して、グループ・メンバーシップおよびユーザー・キャッシュから収集したヒット/失敗統計を分析できます。キャッシュ統計を解析するには、キャッシュ収集およびキャッシュの統計を有効化する必要があります。これは、WebLogicリモート・コンソールまたはWebLogic Scripting Tool (WLST)を使用して実行できます。

  • WebLogicリモート・コンソールの使用 - キャッシュの収集および統計を有効にするには、次のステップを実行します。

    1. 「ツリーの編集」で、「セキュリティ」「レルム」「myRealm」「認証プロバイダ」の順に移動します。

    2. LDAP認証プロバイダのための「プロバイダ固有」タブで、「キャッシュの有効化」および「キャッシュ統計情報の有効化」オプションをオンにします。

    3. 変更を保存します。レルムの自動再起動が有効になっている場合、変更をアクティブ化した後でドメインを再起動する必要はありません。

  • WebLogic Scripting Tool (WLST)の使用 — キャッシュ統計情報には、WebLogic Scripting Tool (WLST)を使用して、ランタイムMBean (LdapAuthenticatorRuntimeMBean)を介してアクセスできます。次の例は、キャッシュ統計情報を取得するためのWLSTの使用方法を示しています。

    connect('','','t3://host:port')
    Please enter your username :
    Please enter your password :
    ...
    serverRuntime()
    cd("ServerSecurityRuntime/")
    cd("$servername")
    cd("RealmRuntimes/myrealm/AuthenticatorRuntimes/OracleInternetDirectoryAuthenticator")
    ls()
     
    The cache statistics data:
    ----
    -r--   GroupCacheHits                               47
    -r--   GroupCacheQueries                            49
    -r--   GroupCacheSize                               1
    -r--   GroupCacheStatStartTimeStamp                 2015-07-15 19:24:02.702
    -r--   Name                                         OracleInternetDirectoryAuthenticator
    -r--   ProviderName                                 OracleInternetDirectoryAuthenticator
    -r--   Type                                         LdapAuthenticatorRuntime
    -r--   UserCacheHits                                296
    -r--   UserCacheQueries                             300
    -r--   UserCacheSize                                2
    -r--   UserCacheStatStartTimeStamp                  2015-07-15 19:24:01.64

ノート:

キャッシュ統計情報は、DefaultAuthenticator認証プロバイダについてはサポートされません。

構成時のLDAP接続のテスト

JDBC接続テストと同様に、WebLogic Serverは、認証プロバイダとLDAPサーバーの間の接続をテストします。

「プロバイダ固有」ページで、新しいLDAP認証プロバイダの構成、または既存のものを変更して構成変更を保存すると、WebLogic Serverはこのプロバイダと対応するLDAPサーバーの間の接続をテストします。テストが成功した場合は、設定が保存され、それらを有効化できます。テストが失敗した場合は、問題を示すエラー・メッセージが表示されます。設定は保存されません。