12 LDAP認証プロバイダの構成
Oracle WebLogic Serverには、いくつかの一般的なLDAPアイデンティティ・ストアに格納されるユーザー情報へのアクセス権を付与するために、LDAP認証プロバイダが組み込まれています。
この章の内容は次のとおりです。
WebLogic Serverに含まれるLDAP認証プロバイダ
-
Oracle Internet Directory認証プロバイダ
-
Oracle Virtual Directory認証プロバイダ
-
Oracle Unified Directory認証プロバイダ
-
iPlanet認証プロバイダ(Oracle Directory Server Enterprise Edition用)
-
Active Directory認証プロバイダ
-
Open LDAP認証プロバイダ
-
Novell認証プロバイダ
-
汎用LDAP認証プロバイダ
各LDAP認証プロバイダが外部LDAPサーバーにユーザーおよびグループの情報を格納します。主な相違点は、それぞれが対応するLDAPサーバー用の一般的なディレクトリ・スキーマに合わせて構成されていることです。Oracle Internet DirectoryおよびOracle Virtual Directory認証プロバイダを、ユーザーおよびグループ属性のLDAPスキーマに合わせて構成する方法については、「Oracle Internet DirectoryおよびOracle Virtual Directory認証プロバイダでのユーザーおよびグループの構成」を参照してください。
WebLogic Serverは、特定のLDAPサーバーをサポートおよび証明しません。LDAP v2またはv3準拠のすべてのLDAPサーバーはWebLogic Serverと正常に連係します。以下のLDAPディレクトリ・サーバーについてはテスト済みです。
-
Oracle Internet Directory
-
Oracle Virtual Directory
-
Oracle Unified Directory
-
Oracle Directory Server Enterprise Edition(旧名Sun iPlanet)
-
Microsoft Windowsプラットフォームの一部として出荷されたActive Directory
-
Open LDAP
-
Novell Directory Service (NDS)
LDAP認証プロバイダを使用して他のLDAPサーバーにアクセスすることもできます。ただし、LDAP認証プロバイダ(LDAPAuthenticator
)を使用するか、または定義済みのLDAPプロバイダを選択してカスタマイズする必要があります。「他のLDAPサーバーへのアクセス」を参照してください。
ノート:
Active Directory認証プロバイダではMicrosoft Active Directory Application Mode (ADAM)もスタンドアロンのディレクトリ・サーバーとしてサポートしています。
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を起動するユーザーをそのグループに追加します。WebLogic Server管理コンソールでグループにAdmin
ロールを割り当てます。
ノート:
Admin
ロールが割り当てられているグループにWebLogic Serverを起動するLDAPユーザーが正しく追加されておらず、セキュリティ・レルムが構成されている認証プロバイダがLDAP認証プロバイダのみである場合は、WebLogic Serverを起動することができません。
LDAP認証プロバイダの構成: 主なステップ
LDAP認証プロバイダを構成するには、次の主なステップを実行します。
-
LDAPサーバーに一致するLDAP認証プロバイダを選択し、セキュリティ・レルムのプロバイダ・インスタンスを作成します。次のトピックを参照してください。
-
WebLogic Server管理コンソールを使用する場合、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの認証とIDアサーション・プロバイダの構成に関する項を参照してください。
-
WebLogic Scripting Tool (WLST)を使用する場合、『WebLogic Scripting Toolの理解』のセキュリティ・データの管理(WLSTオンライン)に関する項を参照してください。また、この項では、あるLDAP認証プロバイダから別の認証プロバイダに切り替えるためにWLSTを使用する方法も説明します。
-
-
WebLogic Server管理コンソールを使用して、LDAP認証プロバイダのプロバイダ固有の属性を構成します。LDAP認証プロバイダごとに、次の属性が存在します。
-
LDAPサーバーとLDAP認証プロバイダの間の通信を有効にします。デプロイメントをよりセキュアにするために、SSLプロトコルを使用してLDAPサーバーとWebLogic Server間の通信を保護することをお薦めします。SSLを有効にするには、「SSLを有効化
」属性を使用します。
-
LDAP認証プロバイダがLDAPディレクトリを検索する方法を指定するオプションを構成します。
ノート:
principal
用に入力した値は、対応LDAPサーバーでユーザーやグループを検索できる権限のあるLDAP管理者にする必要があります。LDAP管理者にLDAPサーバーで検索できる権限がないと、エラー・コードが50であるLDAP例外が生成されます。 -
LDAPディレクトリ構造でのユーザーの場所を指定します。
-
LDAPディレクトリ構造でのグループの場所を指定します。
ノート:
次のLDAPAuthenticatorMBean属性を使用してユーザーまたはグループのLDAP検索フィルタを指定する際、ワイルドカードを使用できますが、特に次の組合せを使用すると、LDAPサーバーのパフォーマンスに悪影響を及ぼすことがあります。
-
AllUsersFilter
-
UserFromNameFilter
-
AllGroupsFilter
-
GroupFromNameFilter
たとえば、次のフィルタ式では5つのワイルドカード条件を組み合せており、条件ごとにワイルドカードでアスタリスク文字を2文字使用しています。
(|(cn=*wall*)(givenname=*wall*)(sn=*wall*)(cn=*wall*)(mail=*wall*))
前述のフィルタ例では相当のオーバーヘッドが対応LDAPサーバーで発生する可能性があります。
さらに、グループ名の末尾にはスペースを含めないでください。
-
-
グループのメンバーの配置方法を定義します。
-
LDAPサーバーで定義されるグローバル・ユニバーサル識別子(GUID)属性の名前を設定します。
ノート:
Oracle Internet DirectoryまたはOracle Virtual Directory認証プロバイダを構成する場合は、「Oracle Internet DirectoryおよびOracle Virtual Directory認証プロバイダでのユーザーおよびグループの構成」を参照してください。この節では、ユーザーおよびグループの認証プロバイダ属性を、LDAPディレクトリ構造に一致させる方法について説明します。
-
LDAPサーバーとの接続用にタイムアウト値を設定します。接続タイムアウトとソケット・タイムのタイムアウト値を指定できます。
接続タイムアウト(すべてのLDAP認証プロバイダの
LDAPServerMBean.ConnectTimeout
属性で指定)のデフォルト値はゼロです。このデフォルト設定はタイムアウト制限がないことを示し、LDAP認証プロバイダに構成されているLDAPサーバーが使用できないと、この設定によってWebLogic Serverの実行処理速度が低下する場合があります。さらに、WebLogic Serverに複数のLDAP認証プロバイダが構成されている場合、1つのLDAPサーバーへの接続が失敗すると、それ以外のLDAP認証プロバイダの使用がブロックされます。LDAP認証プロバイダの
LDAPServerMBean.ConnectTimeout
属性をゼロでない値(たとえば、60秒)に設定することをお薦めします。この値は、WebLogic Server管理コンソールまたは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認証プロバイダのフェイルオーバーの構成」を参照してください。
-
-
LDAPサーバーのキャッシュを制御するパフォーマンス・オプションを構成します。WebLogic Server管理コンソールの「構成」→「プロバイダ固有」および「パフォーマンス」ページでキャッシュを構成します。LDAP認証プロバイダのパフォーマンスの向上を参照してください。
ノート:
LDAP認証プロバイダを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プロトコルを使用することを指定する必要があります。
これを行うには、次のステップを実行します。
「SSLの構成」を参照してください。WebLogic Server管理コンソールを使用してキーストアを構成し、SSLを有効化するための詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプに記載されている次のトピックを参照してください。
動的グループとWebLogic Server
WebLogicプリンシパルでのGUIDおよびLDAP DNデータの使用
LDAP認証プロバイダを構成する場合、LDAPサーバーで定義されるGUID属性の名前をそのプロバイダに対して正しく指定します。WebLogic Serverに含まれる各LDAP認証プロバイダのデフォルトのGUID属性名を表12-1に示します。
表12-1 WebLogic ServerのLDAP認証プロバイダのGUID属性名
プロバイダ | デフォルトのGUID属性名 |
---|---|
WebLogic認証プロバイダ |
|
Oracle Internet Directory認証プロバイダ |
|
Oracle Virtual Directory認証プロバイダ |
|
Active Directory認証プロバイダ |
|
Oracle Unified Directory認証プロバイダ |
|
iPlanet認証プロバイダ |
|
Novell認証プロバイダ |
|
Open LDAP認証プロバイダ |
|
脚注1
組込みLDAPサーバーのGUID属性名は変更できないため、WebLogic認証プロバイダに、構成可能な対応属性はありません。
脚注2
Oracle Virtual Directory認証プロバイダに構成するGUID属性名は、Oracle Virtual Directoryにこの属性名のマッピングがあるかどうかによって異なります。マッピングは、Oracle Virtual Directoryと接続するLDAPサーバーで定義される名前から変更されるこの属性の名前を指定します。マッピングが存在する場合、マッピングで定義される名前を指定します。たとえば、マッピングでGUID属性の名前がOVDguid
に変更される場合、OVDguid
をGUID属性名として使用するようにOracle Virtual Directory認証プロバイダを構成します。マッピングが存在しない場合、LDAPサーバーで定義される名前を指定します。たとえば、LDAPサーバーがSun iPlanet Directoryで、Sun iPlanet DirectoryがGUID属性名をnsuniqueid
と定義する場合、nsuniqueid
を使用するようにOracle Virtual Directory認証プロバイダを構成します。
脚注3
Active Directory認証プロバイダではMicrosoft Active Directory Application Mode (ADAM)もスタンドアロンのディレクトリ・サーバーとしてサポートしています。
プリンシパル・オブジェクトでのGUIDとDNデータの使用については、「JAAS認可を使用するドメインの構成」を参照してください。
Oracle Internet DirectoryおよびOracle Virtual Directory認証プロバイダでのユーザーおよびグループの構成
Oracle Internet Directory認証プロバイダおよびOracle Virtual Directory認証プロバイダで、ユーザーおよびグループをLDAPサーバー内で特定する方法を指定するデフォルト値を変更できます。
ユーザーおよびグループの名前タイプの構成
Oracle Internet DirectoryおよびOracle Virtual Directory認証プロバイダは、デフォルトでは次の表に示すクラス属性タイプを使用してLDAPディレクトリ内のユーザーおよびグループを検索するように構成されています。
表12-2 検索で使用されるクラス属性タイプ
クラス | 属性 | タイプ |
---|---|---|
ユーザー・オブジェクト・クラス |
ユーザー名 |
|
グループ・オブジェクト・クラス |
グループ名 |
|
LDAPディレクトリ構造内に定義されているユーザー名属性タイプまたはグループ名属性タイプが、使用している認証プロバイダのデフォルト設定と異なる場合は、それらのプロバイダの設定を変更する必要があります。以下の節では、これらの設定を変更する方法について説明します。
ノート:
LDAPサーバー内のユーザーまたはグループの名前に無効な文字が含まれている場合、Oracle Internet Directory認証プロバイダおよびOracle Virtual Directory認証プロバイダはそれらの名前を読み取ることができません。無効な文字は次のとおりです。
-
カンマ(
,
) -
プラス記号(
+
) -
引用符(
"
) -
バックスラッシュ(
\
) -
山カッコ(
<
および>
) -
セミコロン(
;
)
無効な文字を含むグループ名やユーザー名は、これらの認証プロバイダでは無視されます。(WebLogic Serverでは、通常、無効な文字を含むグループ名はサポートされません。Oracle WebLogic Server管理コンソール・オンライン・ヘルプのグループの作成に関する項を参照してください。)
この項には次のトピックが含まれます:
ユーザー名属性タイプを変更する
Oracle Internet DirectoryおよびOracle Virtual Directory認証プロバイダは、デフォルトではタイプがcn
に設定されたユーザー名属性で構成されています。LDAPディレクトリ構造内のユーザー名属性タイプが別のタイプ(たとえばuid
)である場合は、以下の認証プロバイダ属性を変更する必要があります。
-
AllUsersFilter
-
UserFromNameFilter
-
UserNameAttribute
たとえば、LDAPディレクトリ構造のユーザー名属性タイプがuid
である場合は、上に示した認証プロバイダ属性を表12-3のように変更する必要があります。変更が必要な部分がboldで示されています。
表12-3 ユーザー・オブジェクト・クラスのユーザー名属性タイプの変更
属性名 | デフォルト設定 | 変更後の新しい設定 |
---|---|---|
|
|
|
|
|
|
|
|
|
脚注4
ユーザーまたはグループに対してLDAP検索フィルタを指定する際には、ワイルドカードを使用できます。ただし、特にユーザー名またはグループ名属性に対してアスタリスクのワイルドカードを複数使用すると、LDAPサーバーのパフォーマンスに悪影響を及ぼします。
ユーザー名属性タイプの構成の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプにある次のトピックを参照してください。
グループ名属性タイプを変更する
Oracle Internet DirectoryおよびOracle Virtual Directory認証プロバイダは、デフォルトではグループ名属性タイプがcn
に設定された静的および動的グループ・オブジェクト・クラスで構成されています。LDAPディレクトリ構造内のグループ名属性タイプに別のタイプ(たとえばuid
)が使用されている場合は、次の認証プロバイダ属性を変更する必要があります。
-
AllGroupsFilter
-
GroupFromNameFilter
-
StaticGroupNameAttribute
(静的グループ用) -
DynamicGroupNameAttribute
(動的グループ用)
たとえば、グループ・オブジェクト・クラスのLDAPディレクトリ構造でグループ名属性タイプとしてuid
を使用している場合は、認証プロバイダ属性を表12-4のように変更する必要があります。変更が必要な部分がboldで示されています。
表12-4 グループ名属性タイプの変更
属性名 | デフォルト設定 | 必要な変更 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
脚注5
ユーザーまたはグループに対してLDAP検索フィルタを指定する際には、ワイルドカードを使用できます。ただし、特にユーザー名またはグループ名属性に対してアスタリスクのワイルドカードを複数使用すると、LDAPサーバーのパフォーマンスに悪影響を及ぼします。
グループ名属性の構成の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプにある次のトピックを参照してください。
静的グループの構成
Oracle Internet DirectoryおよびOracle Virtual Directory認証プロバイダは、デフォルトでは以下のように設定された静的グループで構成されています。
-
静的グループ・オブジェクト・クラス名は
groupofuniquenames
-
静的メンバーDN属性のタイプは
uniquemember
一方、これらの認証プロバイダのどちらかを構成するOracle Internet DirectoryまたはOracle Virtual DirectoryのLDAPサーバーのディレクトリ構造では、静的グループが次のように定義されているかもしれません。
-
静的グループ・オブジェクト・クラス名は
groupofnames
-
静的メンバーDN属性のタイプは
member
LDAPデータベース・スキーマにgroupofnames
という静的グループ・オブジェクト・クラス名とmember
タイプの静的メンバーDN属性が含まれている場合は、Oracle Internet DirectoryまたはOracle Virtual Directory認証プロバイダの属性設定を表12-5のように変更する必要があります。変更が必要な部分がboldで示されています。
表12-5 Oracle Internet DirectoryおよびOracle Virtual Directory認証プロバイダでの静的グループの属性設定
属性 | デフォルト設定 | 必要な変更 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
脚注6
ユーザーまたはグループに対してLDAP検索フィルタを指定する際には、ワイルドカードを使用できます。ただし、特にユーザー名またはグループ名属性に対してアスタリスクのワイルドカードを複数使用すると、LDAPサーバーのパフォーマンスに悪影響を及ぼします。
静的グループの構成の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプにある次のトピックを参照してください。
Oracle Internet Directory認証プロバイダの構成例
このプロバイダを構成するには、次のステップを実行します。
-
WebLogic Server管理コンソールで新しいOracle Internet Directory認証プロバイダを作成します。
-
管理コンソールで、「セキュリティ・レルム」→「レルム名」→「プロバイダ」→「認証」ページに移動します。
-
「新規」をクリックして、新しい認証プロバイダを追加します。
-
任意の名前を入力し、タイプとして「
OracleInternetDirectoryAuthenticator
」を選択します。 -
「OK」をクリックします。
-
-
新しいOracle Internet Directory認証プロバイダを構成します。
-
新しく作成したプロバイダの名前をクリックします。
-
「JAAS制御フラグ・オプションの設定」の説明に従って、「共通」ページで「制御フラグ」の値を必要に応じて設定します(REQUIRED、REQUISITE、OPTIONALまたはSUFFICIENT)。
-
「プロバイダ固有」ページに移動します。
-
使用するOracle Internet Directoryサーバーの値で「接続」セクションを構成します。ポートは、Oracle Internet Directory LDAPポートにする必要があります。この例では、次の値を使用します。
Host: hostname.com Port: 3060 Principal: cn=orcladmin Credential: password SSLEnabled is unchecked
-
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 -
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) -
「LDAP認証プロバイダの構成:主なステップ」の説明に従い、必要に応じて他のすべてのセクションを構成します。この例では、すべてデフォルト値が使用されています。
-
変更内容を保存します。
-
-
必要な場合は、Oracle Internet Directory認証プロバイダがリストの最初になるように、プロバイダの順序を設定します。
-
WebLogic Serverを再起動して、変更を完了します。
-
設定を検証します。
WebLogic Server管理コンソールで、「セキュリティ・レルム」→「レルム名」→「ユーザーとグループ」ページに移動します。Oracle Internet Directory 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 Server管理コンソールで設定できません。WebLogic Serverセキュリティ・パラメータを構成するためのオプションの詳細は、『Oracle WebLogic Serverコマンド・リファレンス』のセキュリティに関する項を参照してください。
以下の例は、LDAP認証プロバイダのLDAPフェイルオーバーが構成されている場合のシナリオを示しています。
LDAPフェイルオーバーの例1
次のシナリオでは、LDAP認証プロバイダの「ホスト」属性に、directory.knowledge.com:1050
、people.catalog.com
、199.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オプション | 値 |
---|---|
ホスト |
|
パラレル接続遅延 |
|
接続タイムアウト |
|
ソケット・タイムアウト |
|
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オプション | 値 |
---|---|
ホスト |
|
パラレル接続遅延 |
|
接続タイムアウト |
|
ソケット・タイムアウト |
|
Oracle Unified Directory認証プロバイダの構成
- WebLogic Server管理コンソールで、「セキュリティ・レルム」→「レルム名」→「プロバイダ」→「認証」ページに移動します。
- 「新規」をクリックして、新しい認証プロバイダを追加します。
- 認証プロバイダの名前を入力し、「タイプ」は
OracleUnifiedDirectoryAuthenticator
を選択します。 - 「OK」をクリックします。
- 「セキュリティ・レルム」→「RealmName」→「プロバイダ」→「認証」ページで、作成したOracle Unified Directory認証プロバイダの名前をクリックし、「構成」→「プロバイダ固有」ページを選択します。
- Oracle Unified Directory用の接続属性に加え、必要に応じて他の属性も構成します。
- ページの下部にある「GUID属性」フィールドに
entryuuid
が表示されていることを確認します。 - 「保存」をクリックします。
ノート:
Oracle Unified Directory認証プロバイダを構成し、そのプロバイダ用に構成されたLDAPユーザーとしてWebCenterにログインした後、アイデンティティ・ストアにユーザーが見つからないと述べるWCS
エラーを受け取ることがあります。このエラーは、セキュリティ・レルムのDefaultAuthenticatorプロバイダがREQUIREDに設定されている場合に受け取ります。回避策として、DefaultAuthenticatorプロバイダのJAAS制御フラグをSUFFICIENTに変更します。「JAAS制御フラグ・オプションの設定」を参照してください。
Active Directory認証プロバイダの参照への遵守
LDAPServerMBean.FollowReferrals
属性が有効化されていることを確認して、LDAP参照に従うようにActive Directory認証プロバイダを構成する必要があります。 この属性はデフォルトで有効化されていますが、厳密に有効化されていることを確認することをお薦めします。
WLSTまたはWebLogic Server管理コンソールを使用してこの属性を有効化できます。WebLogic Server管理コンソールを使用する場合、この属性はActive Directory認証プロバイダの「構成」→「プロバイダ固有」ページから使用できます。
Oracle Directory Server Enterprise Edition用LDAP認証プロバイダでのグループ検索の構成
uid
属性を指すmemberuid
という属性があります。これは一般的なLDAP静的グループと異なります(一般的なLDAP静的グループではユーザー・エントリDNを指すためにmember
またはuniquemember
属性が使用されます)。
IPlanetAuthenticatorMBeanには、WLSTまたはWebLogic Server管理コンソールを使用して設定できる次の属性が含まれ、これらを使用して所定のユーザーがメンバーになっているグループを検索できます。これは、member
またはuniqueMember
属性に基づくユーザーとグループのメンバーシップ検索(すなわち静的グループ検索)にかわるものです。
-
UseMemberuidForGroupSearch
— この属性を有効にすると、ユーザーがメンバーになっているグループを検索するときにグループ・エントリのmemberuid
属性が使用されます。(デフォルトでは、UseMemberuidForGroupSearch
属性は無効です。その場合、グループの検索にはmember
またはuniqueMember
属性が使用されます。) -
GroupFromUserFilterForMemberuid
— 所定のユーザー名についてグループを検索する際にLDAP検索フィルタを指定するために使用できます。
WebLogic Server管理コンソールを使用して、所定のメンバーがメンバーであるグループを検索するには:
- iPlanet認証プロバイダの「構成」→「プロバイダ固有」ページに移動します。
- 「グループ検索用のMemberuidの使用」を選択します。
- 「Memberuid用のユーザー・フィルタからのグループ」にLDAP検索フィルタを指定します。デフォルト値は(
&(memberuid=%M)(objectclass=groupofuniquenames))
です。
LDAP認証プロバイダのパフォーマンスの向上
WebLogic Serverでは、グループ・メンバーシップ・キャッシュ、接続プール・サイズおよびユーザー・キャッシュの設定を最適化するなど、LDAP認証プロバイダのパフォーマンスを向上させる方法をいくつか使用することができます。
LDAP認証プロバイダのパフォーマンスを向上させるには:
-
LDAP認証プロバイダで使用されるグループ・メンバーシップ・キャッシュを最適化します。「グループ・メンバーシップ・キャッシュの最適化」を参照してください。
-
接続プール・サイズとユーザー・キャッシュを最適化します。「接続プール・サイズとユーザー・キャッシュの最適化」を参照してください。
-
セキュリティ・レルムのプリンシパル検証プロバイダのキャッシュを公開して、そのしきい値を増加させます。「プリンシパル検証プロバイダ・キャッシュの最適化」を参照してください。
-
Active Directory認証プロバイダを使用する場合、このプロバイダが
tokenGroups
オプションを使用してグループ・メンバーシップのルックアップを実行するように構成します。tokenGroups
オプションは、完全にフラット化されたユーザーのグループ・メンバーシップをシステムID (SID)値の配列として保持しています。このSID値はActive Directoryにおいて特別な索引付けがされており、これによりルックアップのレスポンスが高速になります。「Active Directory認証プロバイダの構成によるパフォーマンスの向上」を参照してください。 -
汎用LDAP認証プロバイダを使用している場合、
LDAPAuthenticatorMBean
APIを使用して、グループ・メンバーシップおよびユーザー・キャッシュから収集したヒット/失敗統計を分析できます。一般LDAP認証プロバイダのキャッシュ統計の分析を参照してください。 -
新しいLDAP認証プロバイダを構成したり、既存のものを変更したりするときには、このプロバイダと対応するLDAPサーバーとの間の接続をテストするAPIが呼び出されます。構成時のLDAP接続のテストを参照してください。
グループ・メンバーシップ・キャッシュの最適化
LDAP認証プロバイダ用のグループ・メンバーシップ・キャッシュを最適化するには、次の属性を設定します(WebLogic Server管理コンソールの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サーバー間の接続パフォーマンスを向上できます。これらの最適化を行うには、次のステップを実行します。
-
次の方法のいずれかを使用して、LDAP接続プール・サイズを100に設定します。
-
WebLogicドメインの
bin
ディレクトリにあるsetDomainEnv
スクリプトの次のシステム・プロパティを定義します。-Dweblogic.security.providers.authentication.LDAPDelegatePoolSize=100
-
WebLogic Server管理コンソールで、構成するLDAP認証プロバイダの「プロバイダ固有」ページ(「セキュリティ・レルム」>myrealm>「プロバイダ」>「認証」>使用するLDAP認証プロバイダ>「プロバイダ固有」)を選択し、「接続プール・サイズ」というラベルのフィールドで100を指定します。
-
-
WebLogic Server管理コンソールで次のステップを完了させ、LDAPサーバーで使用するキャッシュを有効化して拡大します。
-
LDAP認証プロバイダの「プロバイダ固有」ページ(「セキュリティ・レルム」>myrealm>「プロバイダ」>「認証」>使用するLDAP認証プロバイダ>「プロバイダ固有」)を選択します。
-
最下部までスクロールし、「キャッシュの有効化」がチェックされていることを確認します。
-
「キャッシュ・サイズ」というラベルのフィールドで、値を3200 KBに指定します。
-
「キャッシュTTL」というラベルのフィールドで、「グループ階層キャッシュTTL」値に一致するTTL値を指定します(「グループ・メンバーシップ・キャッシュの最適化」を参照)。値を6000に設定することをお薦めします。
-
LDAPサーバーに結果のタイムアウト値を設定します。現在の「プロバイダ固有」構成ページで、「結果タイム・リミット」というラベルのフィールドで値を1000 msに指定します。
-
-
WebLogic Serverを再起動して、変更を有効にします。
iPlanet認証プロバイダでの動的グループの構成によるパフォーマンスの向上
動的グループでは、メンバー名のリストは表示されません。かわりに、動的グループのメンバーシップは、ユーザー属性の一致によって作成されます。動的グループのグループ・メンバーシップは動的に計算される必要があるため、大規模なグループではパフォーマンスの問題が発生するおそれがあります。iPlanet認証プロバイダを適切に構成することで、動的グループが関係する個所のパフォーマンスを向上できます。
iPlanet認証プロバイダの「ユーザー動的グループDN属性」属性には、ユーザーが所属する動的グループの識別名(DN)を指定するLDAPユーザー・オブジェクトの属性を指定します。この属性が指定されていない場合、WebLogic Serverは、動的グループのURLを評価することでユーザーがグループのメンバーかどうかを判定します。デフォルトでは「ユーザー動的グループDN属性」はnullです。「ユーザー動的グループDN属性」に他の何らかの値を設定してパフォーマンスを向上させる場合は、iPlanet認証プロバイダに以下の属性を設定します。
UserDynamicGroupDNAttribute="wlsMemberOf" DynamicGroupNameAttribute="cn" DynamicGroupObjectClass="" DynamicMemberURLAttribute=""
WebLogic Server管理コンソールでこれらの属性を設定するには:
- 「セキュリティ・レルム」→「レルム名」→「プロバイダ」→「認証」を展開します。
- iPlanet認証プロバイダの「プロバイダ固有」タブで「ユーザー動的グループDN属性」を設定します。「動的グループ・オブジェクト・クラス」および「動的メンバーURL属性」をnullに設定(フィールド内の値を削除)し、「動的グループ名属性」の設定はcnのままにしておきます。
プリンシパル検証プロバイダ・キャッシュの最適化
LDAP認証プロバイダのパフォーマンスを向上させるために、必要に応じて、WebLogicプリンシパル検証プロバイダによって使用されるキャッシュの設定を大きくすることができます。WebLogicプリンシパル検証プロバイダによって使用されるプリンシパル検証プロバイダ・キャッシュは、署名されたWLSAbstractPrincipalをキャッシュします。プリンシパル検証プロバイダ・キャッシュを最適化するには、使用しているセキュリティ・レルム用のこれらの属性を設定します(WebLogic Server管理コンソールの該当セキュリティ・レルムの「構成」→「パフォーマンス」ページ)。
-
「WebLogicプリンシパル検証プロバイダ・キャッシュを有効化」 - WebLogicプリンシパル検証プロバイダがキャッシュを使用するかどうかを示します。この設定は、セキュリティ・レルム内の認証プロバイダがWebLogicプリンシパル検証プロバイダとWLSAbstractPrincipalを使用する場合にのみ適用されます。このオプションはデフォルトでは有効になっています。
-
「キャッシュ内の最大WebLogicプリンシパル数」 - 有効性が検証されたWLSAbstractPrincipalに対して使用される最長時間未使用(LRU)キャッシュの最大サイズです。デフォルトの設定は500です。この設定は「WebLogicプリンシパル検証プロバイダ・キャッシュを有効化」が有効な場合にのみ適用されます。
Active Directory認証プロバイダの構成によるパフォーマンスの向上
Active Directory認証プロバイダでtokenGroups
オプションを使用するように構成するには、次の属性を設定します(WebLogic Server管理コンソールのActive Directory認証プロバイダの「構成」→「プロバイダ固有」ページ)。
-
「グループ・メンバーシップ・ルックアップでトークン・グループを使用する」 - 標準の再帰的なグループ・メンバーシップ・ルックアップ・アルゴリズムではなく、Active Directoryの
tokenGroups
ルックアップ・アルゴリズムを使用するかどうかを指定します。デフォルトでは、このオプションは有効ではありません。ノート:
tokenGroups
オプションへのアクセスが必要になります(つまり、LDAPディレクトリにアクセスするユーザーにはtokenGroups
オプションの読込み権限が必要になり、tokenGroupsオプションはユーザー・オブジェクトのスキーマになければなりません)。 -
「SIDによるグループ・ルックアップのキャッシングの有効化」 - SIDによるグループ名のルックアップ結果がキャッシュされるかどうかを指定します。この設定は、「グループ・メンバーシップ・ルックアップでトークン・グループを使用する」オプションが有効になっている場合にのみ適用されます。
-
「キャッシュ内のSIDによるグループ・ルックアップ最大数」 - グループ・ルックアップにSIDを保持するための最長時間未使用(LRU)キャッシュの最大サイズです。この設定は、「グループ・メンバーシップ・ルックアップでトークン・グループを使用する」属性および「SIDによるグループ・ルックアップのキャッシングの有効化」属性の両方が有効になっている場合にのみ適用されます。
一般LDAP認証プロバイダのキャッシュ統計の分析
汎用LDAP認証プロバイダを使用している場合、LDAPAuthenticatorMBean APIを使用して、グループ・メンバーシップおよびユーザー・キャッシュから収集したヒット/失敗統計を分析できます。キャッシュ統計を解析するには、キャッシュ収集およびキャッシュの統計を有効化する必要があります。これは、WebLogic Server管理コンソールまたはWebLogic Scripting Tool (WLST)を使用して実行できます。
-
WebLogic Server管理コンソールの使用 — 管理コンソールを使用してキャッシュ収集および統計を有効にするには、次のステップを実行します。
-
「セキュリティ・レルム」→「レルム名」→「プロバイダ」→「認証」を展開します。
-
LDAP認証プロバイダのための「プロバイダ固有」タブで、「キャッシュの有効化」および「キャッシュ統計情報の有効化」エントリのチェックボックスを選択します。
-
変更を保存します。レルムの自動再起動が有効になっている場合、変更をアクティブ化した後でドメインを再起動する必要はありません。
-
-
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
認証プロバイダについてはサポートされません。