Sun Java ロゴ     前へ      目次      索引      次へ     

Sun ロゴ
Sun Java™ System Directory Server 5 2004Q2 管理ガイド 

第 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 にこのサブツリーが含まれている場合は、ユーザーの資格情報が認証ディレクトリに渡されます。

パススルー認証は、次のような流れで機能します。

  1. パススルー認証サブツリー o=NetscapeRoot を含む設定ディレクトリサーバー (認証ディレクトリ) を configdir.example.com ホストにインストールします。
  2. dc=example,dc=com サフィックスにデータを含むユーザーディレクトリサーバー (PTA ディレクトリ) を userdir.example.com ホストにインストールします。
  3. ユーザーディレクトリのインストール時に、たとえば次のような設定ディレクトリの場所を示す LDAP URL の指定が要求されます。
  4. ldap://configdir.example.com/o=NetscapeRoot

  5. インストールプログラムは、指定された LDAP URL を使用してユーザーディレクトリ内で PTA プラグインを設定し、有効化します。
  6. これでユーザーディレクトリが PTA ディレクトリとして設定されました。これは、DN に o=NetscapeRoot が含まれるエントリのすべてのバインド要求を configdir.example.com 設定ディレクトリに送信します。

  7. インストールが完了したら、admin ユーザーとしてユーザーディレクトリへのバインドを試み、ユーザーデータの作成を開始します。
  8. admin エントリは、uid=admin, ou=Administrators,ou=TopologyManagement,o=NetscapeRoot として設定ディレクトリに格納されます。これにより、ユーザーディレクトリは、PTA プラグインの設定で定義されたとおりに、バインド要求を設定ディレクトリにパススルーします。

  9. 設定ディレクトリは、パスワードなどのバインド証明情報を認証し、確認結果をユーザディレクトリに返します。
  10. ユーザーディレクトリは、admin ユーザーのバインドを許可します。


PTA プラグインの設定

PTA プラグインの設定情報は、PTA サーバー上の cn=Pass Through Authentication,cn=plugins,cn=config エントリに指定されます。

ユーザーディレクトリと設定ディレクトリを異なるサーバーインスタンスにインストールした場合は、PTA プラグインのエントリが自動的にユーザーディレクトリの設定に追加されます。両方のディレクトリを同じインスタンスにインストールし、他のディレクトリとのパススルー認証を行う場合は、事前にプラグイン設定エントリを作成する必要があります。

プラグイン設定エントリの作成

  1. プラグイン設定エントリを作成するには、次のコマンドを実行します。
  2. 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.so
    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 はインストールによって異なります。

    プラグインの引数は、LDAP URL を指定し、認証ディレクトリサーバーのホスト名、オプションポート、PTA サブツリーを識別します。ポートを指定しない場合のデフォルトポートは、LDAP が 389、LDAPS が 636 です。また、後述するオプションの接続パラメータを指定することもできます。PTAhostPTAsubtree が存在する場合、プラグインはバインド要求を authenticatingHost に渡さず、バインドはパススルーなしでローカルに処理されます。

  3. 「Directory Server の起動と停止」で説明している手順を実行してサーバーを再起動します。

セキュリティ保護された接続を使用するための PTA の設定

PTA プラグインは、パスワードを含むバインド証明情報を認証ディレクトリに送信するため、セキュリティ保護された接続を使用することをお勧めします。PTA ディレクトリが SSL を経由して認証ディレクトリと通信するように設定するには、次の手順を実行します。

オプションの接続パラメータの設定

PTA プラグインの引数には、LDAP URL の後にオプションの接続パラメータのセットを指定することができます。

ldap[s]://host[:port]/subtree [maxconns,maxops,timeout,ldapver,connlife]

パラメータは、上記の順序で指定する必要があります。これらのパラメータはオプションですが、いずれか 1 つを指定するときは、すべてを指定する必要があります。すべてのパラメータをカスタマイズする必要がない場合は、次のデフォルト値を指定します。subtree パラメータとオプションパラメータの間には、必ず空白文字を挿入してください。

各 LDAP URL プラグインに対して、次のオプションパラメータを設定できます。

PTA プラグイン引数の次の例では、接続の最大数を 10 に増やしていますが、タイムアウトの設定を 1 分 (60 秒) に減らしています。その他のパラメータには、デフォルト値が指定されています。

複数のサーバーとサブツリーの指定

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 サブツリーの変更をいつでも実行できます。

  1. PTA プラグイン設定エントリ (cn=Pass Through Authentication,cn=plugins,cn=config) を編集して、nsslapd-pluginenabled 属性と nsslapd-pluginargN 属性を変更します。設定の編集には、コンソールと ldapmodify ユーティリティのどちらも使用できます。
  2. たとえば次のコマンドは、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

  3. 「Directory Server の起動と停止」で説明している手順を実行してサーバーを再起動します。



前へ      目次      索引      次へ     


Copyright 2004 Sun Microsystems, Inc. All rights reserved.