Sun Java System Directory Server Enterprise Edition 6.3 配備計画ガイド

認証方法の決定

Directory Server Enterprise Edition は、次の認証方法をサポートしています。

ユーザーが人間か LDAP 対応アプリケーションかにかかわらず、すべてのユーザーに対して同じ認証メカニズムが適用されます。

この節には、上記の認証メカニズムのほかに、認証に関する次の情報も含まれています。

匿名アクセス

匿名アクセスは、ディレクトリアクセスのもっとも単純な形態です。匿名アクセスは、ユーザーが認証済みかどうかにかかわらず、すべてのディレクトリユーザーに対してデータを利用可能にします。

匿名アクセスでは、だれが検索を実行しているかや、どのような種類の検索が実行されているかを追跡することができません。追跡できるのは、だれかが検索を実行している、ということだけです。匿名アクセスを許可すると、ディレクトリに接続するユーザーはだれでもデータにアクセスできます。データへの匿名アクセスを許可したまま、あるユーザーやグループをそのデータからブロックしようとしても、そのユーザーは、ディレクトリに匿名でバインドすることでそのデータにアクセスできます。

匿名アクセスの特権は制限できます。通常、ディレクトリ管理者は、匿名アクセスに対して読み取り、検索、および比較の特権だけを許可します。また、ユーザー名、電話番号、電子メールアドレスなど、一般的な情報を含む属性のサブセットにアクセスを限定することもできます。政府識別番号、自宅の電話番号や住所、給与情報など、機密データへの匿名アクセスを許可しないでください。

ルート DSE (ベース DN "") への匿名アクセスは必要です。アプリケーションはルート DSE への匿名アクセスを使用することで、サーバーの機能、サポートされているセキュリティーメカニズム、およびサポートされているサフィックスを確認できます。

単純パスワード認証

匿名アクセスが設定されていない場合、クライアントは、Directory Server への認証を行わないとディレクトリのコンテンツにアクセスできません。単純パスワード認証では、クライアントは再使用可能な簡単なパスワードを提供して、サーバーへの認証を行います。

クライアントはバインド操作を使って Directory Server への認証を行いますが、そのバインド操作でクライアントは識別名と資格情報を提供します。サーバーは、そのクライアント DN に対応するエントリを特定したあと、そのクライアントのパスワードがエントリに格納された値に一致するかどうかをチェックします。パスワードが一致すれば、サーバーはそのクライアントを認証します。パスワードが一致しない場合、認証操作は失敗し、クライアントにエラーメッセージが返されます。


注 –

単純パスワード認証の欠点は、パスワードが平文として送信されることです。その場合、セキュリティーが損なわれる可能性があります。悪意のあるユーザーが盗聴している場合、そのユーザーは承認されたユーザーを偽装できます。


単純パスワード認証を使えば、ユーザーの認証を容易に行えます。ただし、単純パスワード認証を使用するのは、組織のイントラネットに限定する必要があります。この種類の認証では、エクストラネットを介した取引先との転送やインターネット上での顧客との転送に求められるレベルのセキュリティーは提供されません。

セキュリティー保護された接続での単純パスワード認証

セキュリティー保護された接続では、暗号化によって第三者がデータを読めないようにした上で、Directory Server とクライアントの間でデータを送信します。クライアントは、次のいずれかの方法でセキュリティー保護された接続を確立できます。

どちらの場合も、サーバーにはセキュリティー証明書が必要で、この証明書を信頼するようにクライアントを設定する必要があります。サーバーは、証明書をクライアントに送信することで、公開鍵暗号化方式を使用して「サーバー認証」を行います。その結果、クライアントは目的のサーバーに接続していること、およびサーバーが改ざんされていないことを認識します。

次に、機密保護のため、クライアントとサーバーは、接続を介して送信されるすべてのデータを暗号化します。クライアントは、暗号化された接続でバインド DN とパスワードを送信してユーザー認証を受けます。それ以降の操作はすべて、そのユーザーの ID を使って実行されます。バインド DN がほかのユーザー ID のプロキシ権限を持っている場合には、プロキシ ID を使って操作が実行される可能性もあります。操作の結果がクライアントに返されるときは、すべてが暗号化されます。

証明書に基づくクライアント認証

SSL または TLS 上で暗号化接続を確立する場合、「クライアント認証」を要求するようにサーバーを設定することもできます。クライアントは、ユーザー ID の確認のためにサーバーに証明書を送信する必要があります。バインド DN の決定には、ユーザーの DN ではなく、証明書が使用されます。クライアント認証は、ユーザーの偽装を防ぐ保護で、もっとも安全な接続です。

証明書に基づくクライアント認証は、SSL 層と TLS 層のみで動作します。証明書に基づく認証 ID を LDAP で使用するには、SSL 接続の確立後に SASL EXTERNAL 認証を使用する必要があります。

証明書に基づくクライアント認証を設定するには、dsconf get-server-prop コマンドを使用します。詳細については、dsconf(1M) のマニュアルページを参照してください。

SASL ベースのクライアント認証

SSL または TLS 接続時のクライアント認証では、汎用セキュリティーインタフェースの Simple Authentication and Security Layer (SASL) を使ってクライアントの ID を確立することもできます。Directory Server Enterprise Edition が SASL を通じてサポートするメカニズムは、次のとおりです。

詳細については、『Sun Java System Directory Server Enterprise Edition 6.3 管理ガイド』「クライアントでの SASL DIGEST-MD5 の使用」および『Sun Java System Directory Server Enterprise Edition 6.3 管理ガイド』「クライアントでの Kerberos SASL GSSAPI の使用」を参照してください。

アカウントの無効化による認証の防止

あるユーザーアカウントまたは一連のアカウントを無効にすることで、認証を一時的に防止することができます。アカウントを無効にすると、ユーザーは Directory Server にバインドできず、認証処理が失敗します。詳細については、『Sun Java System Directory Server Enterprise Edition 6.3 管理ガイド』「アカウントの手動でのロック」を参照してください。

グローバルアカウントロックアウトを使用した認証の防止

このバージョンの Directory Server では、パスワードによる認証失敗が監視およびレプリケートされます。これにより、無効なパスワードによる認証の試みがある指定された回数だけ行われたときに、グローバルアカウントロックアウトを速やかに行えます。グローバルアカウントロックアウトは、次のどの場合でもサポートされています。

すべてのバインド試行が同一のサーバーに向けられず、ロックアウトデータがレプリケートされるよりも早く、クライアントアプリケーションが複数のサーバー上でバインド試行を実行するような状況を想像してください。最悪の場合、クライアントがバインドを試みたサーバーごとに、指定された回数の試みをクライアントに許可することになります。クライアントアプリケーションを駆動する入力を与えるユーザーが人間である場合には、こうした状況はあまり起こりそうにありません。しかし、トポロジを攻撃するために構築された自動化クライアントであれば、この配備選択を悪用することができます。

優先順位付きレプリケーションを使えば、侵入者検出の際に、非同期レプリケーションの遅れによる影響を最小限に抑えることができます。ただし、バインド試行が指定された回数だけ失敗した直後にアカウントロックアウトを行いたい場合もあります。その状況では、ある特定のエントリ上でのすべてのバインドの試みを、Directory Proxy Server を使って同一のマスターレプリカに配信する必要があります。そのように配信するための Directory Proxy Server の設定方法については、『Sun Java System Directory Server Enterprise Edition 6.3 Reference』「Operational Affinity Algorithm for Global Account Lockout」を参照してください。

レプリケーショントポロジ内で厳密にローカルなロックアウトポリシーを維持するには、version 5.2 のパスワードポリシーとの互換性を維持する必要があります。その状況では、有効なポリシーがデフォルトのパスワードポリシーであってはいけません。また、読み取り専用のコンシューマにバインドを制限することによっても、ローカルロックアウトを実現することができます。

グローバルアカウントロックアウトの動作方法の詳細については、『Sun Java System Directory Server Enterprise Edition 6.3 Reference』「Global Account Lockout」を参照してください。

外部認証のマッピングおよびサービス

Directory Server は、ネットワークユーザーアカウントを Directory Server ユーザーアカウントに関連付けるユーザーアカウントホストマッピングを提供します。この機能を使えば、両方のユーザーアカウントの管理が容易になります。ホストマッピングは、外部で認証されたユーザーの場合に必要となります。