ディレクトリに格納された情報にアクセスするとき、まずクライアントはディレクトリに対して認証される必要があります。認証されると、ディレクトリにアクセス制御情報 (ACI: Access Control Information) として格納された承認情報に基づいて、ディレクトリ内の一部またはすべての情報にアクセスできるようになります。この節では、クライアントの識別情報、認証方式、PAM モジュールについて説明します。ACI についての詳細は、『iPlanet Directory Server Administrator's Guide』を参照してください。
LDAP ネームサービスは、クライアントをディレクトリに認証してもらうとき、匿名またはプロキシエージェントのいずれかの識別情報を使用するように構成できます。
認証とは識別情報を確認する作業全般を意味し、anonymous はその特殊な場合と考えることができます。anonymous はどのレベルのセキュリティも提供しません。つまり、ディレクトリに対するすべての非認証接続による、すべてのネットワーク情報レコード (パスワードやシャドウの情報も含む) の参照/読み取りが可能です。セキュリティはまったく提供されませんが、状況によってはこれが適切になる場合があります。
プロキシエージェントを識別情報とする場合、クライアントは、ディレクトリ内のプロキシアカウントを使用してディレクトリに対して認証を行います。プロキシアカウントとしては、ディレクトリにバインドすることが許可されているすべてのエントリ (iPlanet Directory Server の場合は、userPassword 属性を持っているすべてのエントリ) を使用できます。
ディレクトリ内の部分的な情報に対するアクセス制御は、プロキシの識別情報に基づき、各種の権限を制限または許可する適切な ACI (アクセス制御情報) を設定することによって行います。プロキシエージェントの数とクライアントの数には何の関係もないため、2 つを自由に組み合わせることができます。2 つの例を考えてみます。1 つは、すべてのクライアントに 1 つのプロキシエージェントを対応させ、そのプロキシに、名前情報を持っている DIT 全体に対する読み取り権を与えることができます。もう 1 つは、各クライアントが異なるプロキシエージェントを使用して認証を行うようにサーバーを設定し、クライアントごとに異なるアクセス制限を行う ACI を設定することもできます。この 2 つは、プロキシエージェントを使用した認証の両極端な例です。通常は、この 2 つの中間的な設定になります。アクセス制御の細かさはディレクトリ設計者が決定することで、慎重に考慮する必要があります。プロキシエージェントが少なすぎると、システム管理者はリソースへのアクセスを制御する力が制限されてしまいます。エージェントの数が多すぎると、必要なプロファイルの数も多くなり、システムの設定と保守が複雑になります。
クライアント構成はプロファイル内に格納されるため、使用するプロキシの数と定義する必要のあるプロファイル数には直接的な関係があります。
プロキシエージェントを使用する場合、システム管理者は、ディレクトリに対して認証するときの認証方式も選択する必要があります。現時点で、Solaris 8 によってサポートされている認証方式は、SIMPLE と CRAM-MD5 の 2 つです。
SIMPLE を選択した場合、クライアントは、LDAP サーバーに単純なバインド要求を送信し、そのサーバーに対して認証を行います。この認証方式ではパスワードがネットワーク上を平文で流れるため、パスワードが漏洩しやすくなります。一方、LDAP 標準で定義されている必須の認証方式なので、すべてのディレクトリサーバーでサポートされているという利点があります。
一部のディレクトリサーバーは、SASL (Simple Authentication and Security Layer) を介してチャレンジ-応答認証方式 (CRAM-MD5) もサポートしています。CRAM-MD5 の主な利点は、認証のときパスワードが平文のままネットワーク上を流れないため、SIMPLE よりも安全であるという点です。CRAM-MD5 についての詳細は、RFC 2195 を参照してください。SASL については、RFC 2222 を参照してください。
iPlanet Directory Server version 4.11 は、現時点では CRAM-MD5 をサポートしていません。
PAM (Pluggable Authentication Module, 接続可能な認証モジュール) を使用すれば、アプリケーションを Solaris オペレーティング環境で使用される認証方式から独立させておくことができます。PAM 層を使用すれば、アプリケーションは、システム管理者がそのクライアントにどの認証方式を定義しているかに関係なく、認証を実行できます。LDAP ネームサービスを使用するには、pam_unix(5) または pam_ldap(5) のどちらかの PAM モジュールを pam.conf に指定します。
pam_unix を使用すると、従来の UNIX 認証モデルが使用されます。このモデルでは、ユーザーの暗号化されたパスワードをローカルマシンでディレクトリから取得し、ユーザーにパスワードの入力を求めます。そして入力されたパスワードを暗号化し、それをディレクトリから取得した暗号化されたパスワードと比較することによって、ユーザーの認証を行います。LDAP を使用しているクライアントがこのモジュールを使用するように構成されている場合は、そのクライアントが使用している ID (anonymous または構成されたプロキシエージェント) で userPassword 属性を読み取ることができなければなりません。また、この認証モデルには次の 2 つの制限があります。
パスワードを userPassword 属性に格納する必要がある。
パスワードを UNIX crypt 形式で格納する必要がある (平文、他の暗号方式によって暗号化されたパスワードは使えない)。
LDAP ディレクトリを使用する場合、pam_unix による従来の認証方式は必ずしも最善の方法ではないため、Solaris 8 では、ディレクトリに対して直接ユーザーの認証を実行する新しい PAM モジュールが追加されました。このモジュールを使用すると、Solaris クライアントは、ディレクトリサーバーがサポートしている新しい高度な認証方式を使用できます。当然、pam_ldap を使用しているクライアントは、パスワード属性に対する読み取り権を必要としません。また、パスワードを特定の形式でディレクトリに格納する必要もありません。
さらに、pam_ldap はディレクトリサーバーに対して直接ユーザーの認証を実行するため、ユーザーレベルのアクセス制御を適切に設定しておけば、ACI (アクセス制御情報) を使用して各ユーザーの認証を制御できます。
pam_unix を使用するときと同様に、パスワードを変更するには passwd コマンドを使用します。