この項目には、mod_ibm_ldap モジュールを使用する既存のディレクティブからオープン・ソースの LDAP モジュール (mod_authnz_ldap および mod_ldap) の使用に移行するために役立つ情報が記載されています。移行により、ご使用の LDAP 構成は将来的にも確実にサポートされるようになります。
オープン・ソースの LDAP 機能は 2 つのモジュールで提供されます。AuthLDAP ディレクティブは mod_authnz_ldap モジュールで提供され、LDAP ディレクティブは mod_ldap モジュールで提供されます。LDAP 機能を使用可能にするためには、両方のモジュールをロードする必要があります。以下のセクションを通して、オープン・ソースの LDAP モジュールを総称して mod_ldap と呼びます。
mod_ldap モジュールでは、コード・ページ・ディレクトリーを指定するためのディレクティブは提供されません。コード・ページ・ディレクトリーは自動的に適切なディレクトリーにインストールされ、インストールされた場所から移動させることはできません。
ldapCodePageDir /location/of/codepages
mod_ldap モジュールでは、LDAP 構成ファイルを指定するためのディレクティブは提供されません。LDAP 構成ファイルを指定するための mod_ldap ディレクティブはありませんが、LDAP 構成を別のファイルに入れたい場合は、Apache の include ディレクティブを使用できます。
ldapConfigFile ldap.prop変換後:
Include /location/of/ldap_conf/apache_ldap.conf
mod_ibm_ldap の LDAPConfigfile ディレクティブを移行するもう 1 つの方法として、mod_authn_alias モジュールの AuthnProviderAlias コンテナーを使用して ldap ディレクティブのグループを 1 つ以上作成し、必要な場所で別名ラベルを参照してそれらを使用する方法があります。
mod_ldap モジュールは、LDAP 認証セキュリティーのために LDAP 拡張機能とともに require ディレクティブを提供します。
IBM HTTP Server に対してこれまで require valid-user を使用していた場合、この require ディレクティブを変更せずにそのまま残すことができます。最高レベルの LDAP 認証セキュリティーを実現するには、require valid-user をより的確な形式に移行する必要があります。詳細については、次の require ディレクティブ (ldap-user、ldap-dn、ldap-attribute、ldap-group、ldap-filter、および valid-user) に関する Apache の資料を参照してください。
LdapRequire filter "(&(objectclass=person)(cn=*)(ou=OurUnit)(o=OurOrg))" LdapRequire group MyDepartment変換後:
require ldap-filter &(objectclass=person)(cn=*)(ou=OurUnit)(o=OurOrg) require ldap-group cn=MyDepartment,o=OurOrg,c=US
mod_ldap モジュールでは、認証タイプを指定するディレクティブは提供されません。AuthLDAPBindDN ディレクティブに値が指定されている場合、基本認証が使用可能です。AuthLDAPBindDN ディレクティブに値が指定されていない場合は、従来の mod_ibm_ldap モジュールでの None 認証タイプ (匿名アクセス) が使用可能です。
ldap.application.authType=[None | Basic | Cert]
mod_ldap モジュールは、アプリケーション認証タイプを指定するための AuthLDAPBindDN ディレクティブを提供します。
AuthLDAPBindDN ディレクティブに値が指定されている場合、authType ディレクティブの値は Basic です。AuthLDAPBindDN ディレクティブが使用可能ではない場合、authType ディレクティブの値は None です。LDAPTrustedClientCert ディレクティブに値が指定されている場合、authType ディレクティブの値は Cert です。
ldap.application.DN=cn=ldapadm,ou=OurDirectory,o=OurCompany,c=US変換後:
AuthLDAPBindDN "cn=ldapadm,ou=OurDirectory,o=OurCompany,c=US"
mod_ldap モジュールは、バインド・パスワードを指定するための AuthLDAPBindPassword ディレクティブを提供します。値は構成ファイル内にプレーン・テキストで保管されます。したがって、構成ファイルへのアクセスを制限する必要があります。
ldap.application.password=mypassword変換後:
AuthLDAPBindPassword mypassword
mod_ldap モジュールでは、パスワードを隠しておくためのディレクティブは提供されません。AuthLDAPBindPassword ディレクティブは、単にパスワードを指定するための手段であり、値は構成ファイル内にプレーン・テキストで保管されます。したがって、構成ファイルへのアクセスを制限する必要があります。
ldap.application.password.stashfile=/path/to/stashfile.sth
mod_ldap モジュールは、LDAP キャッシュのタイムアウトを指定するための LDAPCacheTTL ディレクティブを提供します。LDAPCacheTTL ディレクティブの有効範囲はグローバルであるため、構成ファイルの最上位に配置する必要があります。ldap.cache.timeout ディレクティブは構成ファイルの任意の場所に配置可能であったため、この点が mod_ibm_ldap モジュールとは異なります。
ldap.cache.timeout=60変換後:
LDAPCacheTTL 60デフォルト値は 600 秒です。
mod_ldap モジュールは、グループを確認するオブジェクト・クラスを指定するための AuthLDAPSubGroupClass ディレクティブを提供します。mod_ibm_ldap モジュールではすべての値を単一のディレクティブ行に指定していましたが、mod_ldap モジュールでは、すべての値を 1 行で指定するか、または複数行で指定 (各行にディレクティブと値を 1 つ) することができます。
ldap.group.dnattributes=groupOfNames GroupOfUniqueNames変換後:
AuthLDAPSubGroupClass groupOfNames AuthLDAPSubGroupClass groupOfUniqueNamesこれらはデフォルト値です。
mod_ldap モジュールは、現在のグループのサブグループ・メンバーを確認するラベルを指定するための AuthLDAPSubGroupAttribute ディレクティブを提供します。mod_ibm_ldap モジュールでは指定できるラベルは 1 つのみでしたが、mod_ldap モジュールでは複数のラベルを指定できます。すべてのラベルを 1 行のディレクティブにリストするか、または各ラベルを個別のディレクティブ行にリストして複数行のディレクティブを提供することができます。
ldap.group.memberattribute=member変換後:
AuthLDAPSubGroupAttribute member AuthLDAPSubGroupAttribute uniqueMember
mod_ldap モジュールは、現在のグループの任意のメンバー (ユーザーやサブグループなど) を確認するラベルを指定するための AuthLDAPGroupAttribute ディレクティブを提供します。mod_ibm_ldap モジュールではすべてのラベルを 1 行のディレクティブに指定していましたが、mod_ldap モジュールでは、すべてのラベルを 1 行のディレクティブで指定するか、または各ラベルを個別のディレクティブ行で指定することができます。
ldap.group.membreattributes=member uniqueMember変換後:
AuthLDAPGroupAttribute member AuthLDAPGroupAttribute uniqueMember
mod_ldap モジュールでは、ユーザーおよびグループの別個のフィルターを指定するためのディレクティブは提供されません。mod_ldap モジュールは AuthLDAPURL ディレクティブの最後部で提供されるフィルターを使用します。mod_authn_alias モジュールで提供される AuthnProviderAlias コンテナー・ディレクティブを使用して、必要な ldap ディレクティブを含む my_ldap_user_alias および my_ldap_group_alias の別名を個々に作成することができます。それにより、許可がグループ・メンバーシップを通じて制御される場所でグループ別名を使用できます。
ldap.group.name.filter=(&(cn=%v1)(|(objectclass=groupofnames)(objectclass=groupofuniquenames)))
mod_ldap モジュールは、ネストされたグループ内でユーザーの検索を試行する際、試行を停止するまでに実行される再帰的な検索の深さを制限するための AuthLDAPMaxSubGroupDepth ディレクティブを提供します。
ldap.group.search.depth=5変換後:
AuthLDAPMaxSubGroupDepth 5デフォルト値は 10 です。
mod_ldap モジュールでは、ユーザー認証に使用される LDAP サーバーとは異なる LDAP サーバーをグループ・メンバーシップの許可用に指定するためのディレクティブは提供されません。
また、コンテナー用に AuthLDAPURL ディレクティブで LDAP グループ・サーバーを指定する必要があります。各グループに関して正確なフィルターを確実に指定してください。
ldap.group.URL=ldap://groups_ldap.server.org:389/o=OurOrg,c=US ldap.group.URL=ldaps://groups_ldap.server.org:636/o=OurOrg,c=US
mod_ldap モジュールでは、LDAP サーバーに対して確立された接続が活動停止状態になった後、タイムアウトするまでの時間を指定するためのディレクティブは提供されません。mod_ldap モジュールは LDAP サーバーが接続を終了した際には自動的に検出しますが、接続を終了させることはありません。
ldap.idleConnection.timeout=60
LDAPTrustedGlobalCert ディレクティブにパスワードが指定されていない場合、mod_ldap モジュールは自動的に (/path/to/keyfile.kdb を LDAPTrustedGlobalCert ディレクティブに指定された鍵ファイルと見なして) /path/to/keyfile.sth ファイルを使用します。
鍵ファイル・パスワードを指定する方法の詳細については、LDAPTrustedGlobalCert ディレクティブに関する Apache の資料を参照してください。値は構成ファイル内にプレーン・テキストで保管されます。したがって、構成ファイルへのアクセスを制限する必要があります。
ldap.key.file.password.stashfile=/path/to/ldap.sth
mod_ldap モジュールは、証明書をロードする際に使用される鍵ファイルを指定するための LDAPTrustedGlobalCert ディレクティブを提供します。また、mod_ldap モジュールはこれらのディレクティブを使用して構成ファイル内にプレーン・テキストのパスワードを指定します。したがって、構成ファイルへのアクセスを制限する必要があります。
ldap.key.filename=/path/to/keyfile.kdb変換後:
LDAPTrustedGlobalCert CMS_KEYFILE /path/to/keyfile.kdb myKDBpassword
LDAPTrustedGlobalCert SAF saf_keyring
mod_ldap モジュールは、KDB 鍵ファイルから使用する証明書を指定するための LDAPTrustedClientCert ディレクティブを提供します。デフォルトの証明書が使用されている場合、これらのディレクティブに値を指定する必要はありません。
ldap.key.label=certname_from_kdb変換後:
LDAPTrustedClientCert CMS_LABEL certname_from_kdb
mod_ldap モジュールは、分散ディレクトリー・ツリーでユーザーの検索を試行する際、試行を停止するまでに追跡する参照の数を制限するための LDAPReferralHopLimit ディレクティブを提供します。
ldapReferralHopLimit 5変換後:
LDAPReferralHopLimit 5デフォルト値は 5 です。
mod_ldap モジュールは、分散ディレクトリー・ツリーでユーザーを検索する際、参照の追跡を使用可能または使用不可にするための LDAPReferrals ディレクティブを提供します。
ldapReferrals On変換後:
LDAPReferrals Onデフォルト値は ON です。
mod_ldap モジュールは、許可レルムを指定するための AuthName ディレクティブを提供します。
ldap.realm=Some identifying text変換後:
AuthName "Some identifying text"
mod_ldap モジュールは、検索要求を中止するまでの時間を指定するための LDAPSearchTimeout ディレクティブを提供します。
ldap.search.timeout=10変換後:
LDAPSearchTimeout 10デフォルト値は 10 秒です。
mod_ldap モジュールは、LDAP サーバーとの通信に使用するネットワーク・トランスポート・タイプを指定するための LDAPTrustedMode ディレクティブを提供します。
AuthLDAPURL ディレクティブでポートが指定されない場合、mod_ldap モジュールは LDAPTrustedMode ディレクティブを無視して、SSL のネットワーク・トランスポート値を指定します。詳細は、LDAPTrustedMode および AuthLDAPURL ディレクティブに関する Apache の資料を参照してください。
ldap.transport=TCP (or SSL)変換後:
LDAPTrustedMode NONE (or SSL)ldaps://URL が指定されている場合は、モードは SSL になり、LDAPTrustedMode の設定値は無視されます。
mod_ldap モジュールは、LDAP サーバーのホスト名とポート、およびサーバーに接続する際に使用するベース識別名を指定するための AuthLDAPURL ディレクティブを提供します。また、mod_ldap モジュールはユーザー属性、有効範囲、ユーザー・フィルター、およびトランスポート・モードを指定する手段も提供します。詳細は、AuthLDAPURL ディレクティブに関する Apache の資料を参照してください。
ldap.URL=ldap://our_ldap.server.org:389/o=OurOrg,c=US ldap.URL=ldaps://our_ldap.server.org:636/o=OurOrg,c=US変換後:
AuthLDAPURL ldap://our_ldap.server.org:389/o=OurOrg,c=US?cn?sub?(objectclass=person) AuthLDAPURL ldaps://our_ldap.server.org:636/o=OurOrg,c=US?cn?sub?(objectclass=person)
mod_ldap モジュールでは、ユーザー認証タイプを指定するためのディレクティブは提供されません。mod_ldap モジュールは、提供されるユーザー ID およびパスワードの資格情報に基づいてユーザーを認証します。
ldap.user.authType=Basic [Basic | Cert | BasicIfNoCert]
mod_ldap モジュールでは、クライアント証明書をフィルターするためのディレクティブは提供されません。mod_ldap モジュールはクライアント証明書を直接処理しません。
ldap.user.cert.filter=(&(objectclass=person)(cn=%v1)(ou=%v2)(o=%v3)(c=%v4))
mod_ldap モジュールでは、提供された資格情報をサブコンポーネントに構文解析するためのディレクティブは提供されません。mod_ibm_ldap モジュールは ldap.user.name.fieldSep ディレクティブを使用して、資格情報を %v1、%v2、... %vN のトークンに構文解析するために使用する分離文字を指定します。
ldap.user.name.fieldSep=/ ,
mod_ldap モジュールでは、ユーザー名フィルターを指定するためのディレクティブは提供されません。mod_ldap モジュールは、ユーザー名フィルターを AuthLDAPURL ディレクティブの一部として指定します。
AuthLDAPURL ディレクティブは、ディレクティブに指定されたユーザー属性と提供されるフィルターを組み合わせて検索フィルターを作成します。提供されるフィルターは、標準の検索フィルター仕様に従います。また mod_ldap モジュールでは、mod_ibm_ldap モジュールで使用可能な %vx のトークンの構文解析機能も提供されません。
ldap.user.name.filter=(&(objectclass=person)(cn=%v1 %v2))
mod_ldap モジュールでは、LDAP バージョンを指定するためのディレクティブは提供されません。mod_ldap モジュールは LDAP バージョン 3 のみを使用します。
ldap.version=2 (or 3)
mod_ldap モジュールでは、接続の試行が失敗した際に再試行するまでの時間を指定するためのディレクティブは提供されません。接続の試行が失敗した場合、mod_ldap モジュールは一定の間隔で接続を再試行することはありません。接続の試行は、要求が失敗するまでに最大 10 回自動的に再試行されます。
新規の要求により、その同じ LDAP サーバーへのアクセスが必要な場合、接続は再度、最大 10 回再試行されます。再試行の抑制は、LDAP サーバーに送信される新規要求のボリュームに基づきます。
ldap.waitToRetryConnection.interval=300