Sun Java™ System Directory Server 5.2 2005Q1 管理ガイド |
第 12 章
パススルー認証の実装PTA (パススルー認証) は、1 つのディレクトリサーバーが別のディレクトリサーバーに問い合わせて、バインド要求を認証するメカニズムです。この機能は PTA プラグインによって提供されます。この機能によって、ローカルサフィックスに格納されていないエントリに対するパスワードに基づく単純なバインド操作を、ディレクトリサーバーで受け入れることができるようになります。
Directory Server で PTA を使用することによって、管理者は、Directory Server の別のインスタンス上のユーザディレクトリと設定ディレクトリを管理できます。
注
ユーザーディレクトリと設定ディレクトリを同じサーバー上に置いた場合は、Directory Server コンソール内に PTA プラグインは一覧表示されません。ただし、プラグインを作成して、パススルー認証を利用することはできます。
この章では、PTA プラグインについて、次の項目ごとに説明します。
Directory Server での PTA の使用設定ディレクトリとユーザーディレクトリを Directory Server の別のインスタンスにインストールした場合は、構成管理者 (通常は admin) が管理業務を実行できるように、インストールプログラムによって自動的に PTA が設定されます。
このような場合に PTA が必要になるのは、admin ユーザーのエントリが設定ディレクトリ内の o=NetscapeRoot の下に格納されるためです。このため、admin としてユーザーディレクトリにバインドしようとしても、通常は失敗します。PTA を使用すると、ユーザーディレクトリが、資格情報を設定ディレクトリに転送できるようになります。続けて、設定ディレクトリで、資格が検証されます。検証が完了すると、ユーザーディレクトリは、admin ユーザーによるバインドを許可します。
この例のユーザーディレクトリは、PTA サーバー として機能します。つまり、バインド要求をほかのディレクトリサーバーにパススルーするサーバーです。設定ディレクトリは、認証サーバーとして機能します。つまり、エントリを格納し、要求元クライアントのバインド資格を検証するサーバーです。
この章では、PTA サブツリーという用語も使用します。パススルー認証サブツリーは、PTA サーバー上に存在しないサブツリーです。ユーザーのバインド DN にこのサブツリーが含まれている場合は、ユーザーの資格情報が認証ディレクトリに渡されます。
パススルー認証は、次のような流れで機能します。
- パススルー認証サブツリー o=NetscapeRoot を含む設定ディレクトリサーバー (認証ディレクトリ) を configdir.example.com ホストにインストールします。
- dc=example,dc=com サフィックスにデータを含むユーザーディレクトリサーバー (PTA ディレクトリ) を userdir.example.com ホストにインストールします。
- ユーザーディレクトリのインストール時に、たとえば次のような設定ディレクトリの場所を示す LDAP URL の指定が要求されます。
ldap://configdir.example.com/o=NetscapeRoot
- インストールプログラムは、指定された LDAP URL を使用してユーザーディレクトリ内で PTA プラグインを設定し、有効化します。
これでユーザーディレクトリが PTA ディレクトリとして設定されました。これは、DN に o=NetscapeRoot が含まれるエントリのすべてのバインド要求を configdir.example.com 設定ディレクトリに送信します。
- インストールが完了したら、admin ユーザーとしてユーザーディレクトリへのバインドを試み、ユーザーデータの作成を開始します。
admin エントリは、uid=admin, ou=Administrators,ou=TopologyManagement,o=NetscapeRoot として設定ディレクトリに格納されます。これにより、ユーザーディレクトリは、PTA プラグインの設定で定義されたとおりに、バインド要求を設定ディレクトリにパススルーします。
- 設定ディレクトリは、パスワードなどのバインド資格を認証し、確認結果をユーザディレクトリに返します。
- ユーザーディレクトリは、admin ユーザーのバインドを許可します。
PTA プラグインの設定PTA プラグインの設定情報は、PTA サーバー上の cn=Pass Through Authentication,cn=plugins,cn=config エントリに指定されます。
ユーザーディレクトリと設定ディレクトリを異なるサーバーインスタンスにインストールした場合は、PTA プラグインのエントリが自動的にユーザーディレクトリの設定に追加されます。両方のディレクトリを同じインスタンスにインストールし、他のディレクトリとのパススルー認証を行う場合は、事前にプラグイン設定エントリを作成する必要があります。
プラグイン設定エントリの作成
- プラグイン設定エントリを作成するには、次のコマンドを実行します。
ldapmodify -a -h PTAhost -p port -D "cn=Directory Manager" -w password
dn: cn=Pass Through Authentication,cn=plugins,cn=config
objectClass: top
objectClass: nsSlapdPlugin
objectClass: extensibleObject
cn: Pass Through Authentication
nsslapd-pluginPath: ServerRoot/lib/passthru-plugin.soextension
nsslapd-pluginInitfunc: passthruauth_init
nsslapd-pluginType: preoperation
nsslapd-plugin-depends-on-type: database
nsslapd-pluginId: passthruauth
nsslapd-pluginVersion: 5.2
nsslapd-pluginVendor: Sun Microsystems, Inc.
nsslapd-pluginDescription: pass through authentication plugin
nsslapd-pluginEnabled: on or off
nsslapd-pluginarg0: ldap[s]://authenticatingHost[:port]/PTAsubtree optionsここで、ServerRoot はインストールによって異なります。また拡張子は、HP-UX では .sl、その他の UNIX プラットフォームでは .so、Windows では .dll になります。
プラグインの引数は、LDAP URL を指定し、認証ディレクトリサーバーのホスト名、オプションポート、PTA サブツリーを識別します。ポートを指定しない場合のデフォルトポートは、LDAP が 389、LDAPS が 636 です。また、後述するオプションの接続パラメータを指定することもできます。PTAhost に PTAsubtree が存在する場合、プラグインはバインド要求を authenticatingHost に渡さず、バインドはパススルーなしでローカルに処理されます。
- 「Directory Server の起動と停止」で説明している手順に従って、サーバーを再起動します。
セキュリティ保護された接続を使用するための PTA の設定
PTA プラグインは、パスワードを含むバインド資格を認証ディレクトリに送信するため、セキュリティ保護された接続を使用することをお勧めします。PTA ディレクトリが SSL を経由して認証ディレクトリと通信するように設定するには、次の手順を実行します。
- 第 11 章「認証と暗号化の管理」で説明している方法で、PTA ディレクトリと認証ディレクトリの両方で SSL を設定し、有効化します。
- PTA プラグインの設定を、たとえば次のように作成または変更し、LDAP URL 中の LDAPS とセキュリティ保護されたポートを使用できるようにします。
ldaps://configdir.example.com:636/o=NetscapeRoot
オプションの接続パラメータの設定
PTA プラグインの引数には、LDAP URL の後にオプションの接続パラメータのセットを指定することができます。
ldap[s]://host[:port]/subtree [maxconns,maxops,timeout,ldapver,connlife]
パラメータは、上記の順序で指定する必要があります。これらのパラメータはオプションですが、いずれか 1 つを指定するときは、すべてを指定する必要があります。すべてのパラメータをカスタマイズする必要がない場合は、次のデフォルト値を指定します。subtree パラメータとオプションパラメータの間には、必ず空白文字を挿入してください。
各 LDAP URL プラグインに対して、次のオプションパラメータを設定できます。
- maxconns: PTA サーバーが認証サーバーに対して同時に開くことができる接続の最大数。このパラメータは、認証サーバーにパススルーできる同時バインドの最大数を制限します。デフォルト値は 3 です。
- maxops: 単一の接続中に、PTA ディレクトリサーバーが認証ディレクトリサーバーに同時に送信できるバインド要求の最大数。このパラメータは、同時パススルー認証の数をさらに制限します。デフォルト値は 5 です。
- timeout: PTA サーバーが認証サーバーからの応答を待つ最大遅延時間 (秒単位)。デフォルト値は 300 秒 (5 分) です。
- ldapver: PTA サーバーが認証ディレクトリサーバーへの接続に使用する LDAP プロトコルのバージョン。指定できる値は、LDAPv2 の場合は 2、LDAPv3 の場合は 3です。デフォルト値は 3 です。
- connlife: PTA サーバーが認証サーバーとの接続を再利用できる制限時間 (秒単位)。この制限時間が過ぎてからクライアントが PTA サブツリー内のバインドを要求した場合は、サーバーは PTA 接続を閉じて新たに開き直します。バインド要求が開始され、サーバーによってタイムアウトが超過していると判断されない限り、サーバーは接続を切断しません。このオプションを指定しない場合、または LDAP URL に指定されている認証サーバーが 1 つだけの場合、制限時間は適用されません。複数のホストが指定されている場合は、デフォルトで 300 秒 (5 分) に設定されます。
PTA プラグイン引数の次の例では、接続の最大数を 10 に増やしていますが、タイムアウトの設定を 1 分 (60 秒) に減らしています。その他のパラメータには、デフォルト値が指定されています。
ldaps://configdir.example.com:636/o=NetscapeRoot 10,5,60,3,300
複数のサーバーとサブツリーの指定
PTA プラグインに複数の引数を設定することで、複数の認証サーバー、複数の PTA サブツリー、またはその両方を指定できます。各引数には 1 つの LDAP URL が含まれ、それぞれに接続オプションを設定できます。
同じ PTA サブツリーに対して複数の認証サーバーが存在するときは、認証サーバーはフェイルオーバサーバーとして機能します。PTA 接続のタイムアウト制限に達すると、プラグインはリストに指定されている順序でサーバーに接続します。すべての接続がタイムアウトになった場合は認証が失敗します。
複数の PTA サブツリーが定義されている場合、プラグインはバインド DN に基づいて、対応するサーバーに認証要求をパススルーします。次の例は、2 つの PTA サブツリーを定義する 4 つの PTA プラグイン引数を示しています。それぞれのサブツリーには、認証のためのフェイルオーバサーバーと、サーバー固有の接続パラメータが指定されています。
nsslapd-pluginarg0:ldaps://configdir.example.com/o=NetscapeRoot
10,10,60,3,300
nsslapd-pluginarg1: ldaps://configbak.example.com/o=NetscapeRoot
3,5,300,3,300
nsslapd-pluginarg2: ldaps://east.example.com/ou=East,ou=People,
dc=example,dc=com 10.10,300,3,300
nsslapd-pluginarg3: ldaps://eastbak.example.com/ou=East,ou=People,
dc=example,dc=com 3.5,300,3,300次の例のように、ホスト名を空白で区切って複数のサーバーを指定することもできます。
nsslapd-pluginarg0: ldaps://configdir.example.com:636 configbak.example.com:636/o=NetscapeRoot 10,10,60,3,300
PTA プラグイン設定の変更
PTA プラグインの設定を変更して、有効と無効の切り替え、認証ホストまたは PTA サブツリーの変更をいつでも実行できます。
- PTA プラグイン設定エントリ (cn=Pass Through Authentication,cn=plugins,cn=config) を編集して、nsslapd-pluginenabled 属性と nsslapd-pluginargN 属性を変更します。設定の編集には、コンソールと ldapmodify ユーティリティのどちらも使用できます。
たとえば次のコマンドは、SSL と前述の接続パラメータを使用する PTA プラグインを有効化します。
dn: cn=Pass Through Authentication,cn=plugins,cn=config
changetype: modify
replace: nsslapd-pluginenabled
nsslapd-pluginenabled: on
-
replace: nsslapd-pluginarg0
nsslapd-pluginarg0: ldaps://configdir.example.com:636/
o=NetscapeRoot 10,10,60,3,300
-
replace: nsslapd-pluginarg1
nsslapd-pluginarg1: ldaps://configbak.example.com:636/
o=NetscapeRoot 3,5,300,3,300
^D- 「Directory Server の起動と停止」で説明している手順に従って、サーバーを再起動します。