Red Hat Training

A Red Hat training course is available for Red Hat Directory Server

19.12. パススルー認証の使用

パススルー認証 (PTA) は、ある Red Hat Directory Server インスタンスがバインド要求を認証できるメカニズムです。パススルー認証は PTA プラグインを介して実装されます。有効にすると、Directory Server インスタンスは、ローカルデータベースに保管されないエントリーの単純なバインド操作 (パスワードベース) を受け入れます。
Directory Server は、PTA を使用して、Directory Server の別のインスタンスでユーザーおよび設定ディレクトリーを管理します。
設定ディレクトリーとユーザーディレクトリーが Directory Server の別のインスタンスにインストールされている場合は、設定プログラムは PTA を自動的に設定し、Configuration Administrator ユーザー(通常は admin)が管理役割を実行できるようにします。
この場合、admin ユーザーエントリーは設定ディレクトリーの o=NetscapeRoot 接尾辞に保存されるため、ここでは PTA が必要です。そのため、通常 admin は失敗するため、ユーザーディレクトリーへのバインドを試みます。PTA により、ユーザーディレクトリーは、認証情報を設定ディレクトリーに送信し、その認証情報を設定ディレクトリーを検証できます。次に、ユーザーディレクトリーにより、admin ユーザーがバインドできるようになります。
この例のユーザーディレクトリーは、別の Directory Server にバインド要求を通過する PTA Directory Server として機能します。設定ディレクトリーは、認証ディレクトリー として機能し、エントリーが含まれるサーバーとして機能し、要求するクライアントのバインド認証情報を検証します。
パススルーサブツリー は、PTA ディレクトリーに 存在しない サブツリーです。ユーザーのバインド DN にこのサブツリーが含まれる場合、ユーザーの認証情報が認証ディレクトリーに渡されます。

図19.2 簡易的な PAM パススルー認証プロセス

簡易的な PAM パススルー認証プロセス
注記
PTA プラグインは、同じサーバーインスタンスがユーザーディレクトリーおよび設定ディレクトリーに使用される場合は、Directory Server コンソールには一覧表示されないことがあります。
パススルー認証が機能する仕組みを以下に示します。
  1. 設定 Directory Server(認証ディレクトリー)がマシン A にインストールされています。設定ディレクトリーには、設定データベースと接尾辞 o=NetscapeRoot が常に含まれます。この例では、サーバー名は configdir.example.com です。
  2. ユーザー Directory Server (PTA ディレクトリー) がマシン B にインストールされます。ユーザーディレクトリーは、dc=example,dc=com などのルート接尾辞を保存します。この例では、サーバー名は userdir.example.com です。
  3. ユーザーディレクトリーがマシン B に設定されている場合、setup スクリプトはマシン A の設定ディレクトリーの LDAP URL を要求します。
  4. setup プログラムは PTA プラグインを有効にし、設定ディレクトリー LDAP URL を使用するように設定します。
    このエントリーには、設定ディレクトリーの LDAP URL が含まれます。以下に例を示します。
    dn: cn=Pass Through Authentication,cn=plugins,
    ...
    nsslapd-pluginEnabled: on
    nsslapd-pluginarg0: ldap://configdir.example.com/o=NetscapeRoot
    ...
    ユーザーディレクトリーは、o=NetscapeRoot が含まれる DN を持つエントリーのすべてのバインド要求を設定ディレクトリー configdir.example.com に送信するように設定されるようになりました。
  5. インストールが完了すると、admin ユーザーはユーザーディレクトリーへの接続を試み、ユーザーの追加を開始します。
  6. 設定プログラムは、admin ユーザーのエントリーを uid=admin,ou=TopologyManagement,o=NetscapeRoot としてディレクトリーに追加します。そのため、ユーザーディレクトリーは PTA プラグイン設定で定義されている設定ディレクトリーにバインド要求を渡します。
  7. 設定ディレクトリーは、ユーザーの認証情報を認証し、情報をユーザーディレクトリーに送信します。
  8. ユーザーディレクトリーを使用すると、admin ユーザーがバインドできるようになります。

19.12.1. PTA プラグインの構文

PTA プラグインの設定情報は、必要な PTA 構文を使用して PTA ディレクトリーの cn=Pass Through Authenticationcn=plugins,cn=config エントリー (認証ディレクトリーへのバインド要求をパススルーするように設定されたユーザーディレクトリー) に指定されます。このエントリーには大きな属性は 2 つしかありません。
  • nsslapd-pluginEnabled: プラグインが有効かどうかを設定します。この属性の値は オンまたはオフに することができます
  • nsslapd-pluginarg 0: 設定ディレクトリーを参照します。この属性の値は、バインド要求を渡すサーバーおよび接尾辞の LDAP URL で、オプションのパラメーターである maxconns、maxopstimeout、ldverconnlifetimestartTLS です。
PTA プラグイン構文の変数コンポーネントは、表19.5「PTA プラグインのパラメーター」に説明されています。
注記
LDAP URL (ldap|ldaps://authDS/subtree) は、1 つの空白で任意のパラメーター (maxconns、maxops、timeout、ldver、connlifetime、startTLS) から分離する必要があります。任意のパラメーターのいずれかが定義される場合は、デフォルト値のみが使用されている場合でも、それらをすべて定義する必要があります。
「複数の認証用 Directory Server の指定」にあるように、nsslapd-pluginarg 属性接尾辞を 1 つずつ増やすことで、いくつかの認証ディレクトリーまたはサブツリーを指定できます。以下に例を示します。
nsslapd-pluginarg0: LDAP URL for the first server
nsslapd-pluginarg1: LDAP URL for the second server
nsslapd-pluginarg2: LDAP URL for the third server
...
任意のパラメーターは、構文で表示される順序で以下の表で説明されています。

表19.5 PTA プラグインのパラメーター

変数 定義
state プラグインを有効または無効にするかどうかを定義します。使用できる値は on または off です。
ldap|ldaps 2 つの Directory Server 間の通信に TLS を使用するかどうかを定義します。詳細は、「セキュアな接続を使用するようにサーバーを設定」を参照してください。
authDS 認証ディレクトリーのホスト名。Directory Server のポート番号は、コロンとポート番号を追加して指定できます。たとえば、ldap://dirserver.example.com:389/ です。ポート番号が指定されていない場合、PTA サーバーは標準ポートのいずれかを使用して接続を試みます。
URL に ldap:// が指定されている場合のポート 389。
URL に ldaps:// が指定されている場合のポート 636。
詳細は、「認証する Directory Server の指定」を参照してください。
subtree パススルーサブツリー。PTA Directory Server は、このサブツリーに DN を持つすべてのクライアントから、認証する Directory Server にバインド要求を渡します。詳細は、「パススルーサブツリーの指定」を参照してください。このサブツリーは、このサーバーに存在させることはできません。o=NetscapeRoot のバインド要求を設定ディレクトリーに渡すには、サブツリー o=NetscapeRoot がサーバーに存在しません。
maxconns 任意。PTA ディレクトリーの最大接続数は、認証ディレクトリーに対して同時に開くことができます。デフォルトは 3 です。詳細は、「オプションパラメーターの設定」を参照してください。
maxops 任意。PTA ディレクトリーは単一接続内の認証ディレクトリーに送信できる同時操作の最大数 (通常はバインド要求)。デフォルトは 5 です。詳細は、「オプションパラメーターの設定」を参照してください。
timeout 任意。PTA ディレクトリーが、認証用ディレクトリーサーバーからの応答を待つ時間を秒単位で指定します。このタイムアウトを超えると、サーバーはエラーをクライアントに返します。デフォルトは 300 秒 (5 分) です。ゼロ (0) を指定すると、時間制限をかけないことを示します。詳細は、「オプションパラメーターの設定」を参照してください。
ldver 任意。認証用ディレクトリーへの接続に使用される LDAP プロトコルのバージョン。Directory Server は LDAP バージョン 2 および 3 をサポートします。デフォルトはバージョン 3 です。Red Hat は、古くなり、非推奨になる LDAPv2 を使用 しない ことを強く推奨します。詳細は、「オプションパラメーターの設定」を参照してください。
connlifetime 任意。接続を使用できる制限時間を秒単位で指定します。この時間が経過した後にクライアントからバインド要求が開始すると、サーバーは接続を閉じ、認証するディレクトリーへの新しい接続を開きます。バインド要求が開始し、ディレクトリーが接続寿命を超えたと判断しない限り、サーバーは接続を閉じません。このオプションを指定しない場合、または 1 つのホストのみが記載されている場合は、接続の有効期間は実行されません。2 つ以上のホストがリストされている場合、デフォルトは 300 秒 (5 分)です。詳細は、「オプションパラメーターの設定」を参照してください。
startTLS
オプション。認証用ディレクトリーへの接続に Start TLS を使用するかどうかを示すフラグ。Start TLS は標準ポート上でセキュアな接続を確立するため、LDAPS の代わりに LDAP を使用して接続するのに便利です。TLS サーバーと CA 証明書の両方がサーバーで使用できる必要があります。
デフォルトは 0 (off) です。Start TLS を有効にするには 、1 に設定します。TLS を使用するには、LDAP URL は ldaps : ではなく ldap: を使用する必要があります。
詳細は、「オプションパラメーターの設定」を参照してください。