Administration Server のプリファレンスにある [Require client
certificates] オプションを有効にした場合は、サーバはリクエストに応じる前にクライアントに証明書を送信するように要求します。ユーザが認証済み
CA からの有効な証明書を持ってさえいれば、サーバはユーザが誰であるかには関与しません。しかし、クライアント証明書とアクセス コントロールを組み合わせれば、認証
CA からの証明書に加え、その証明書に関連付けられているユーザがアクセス コントロール ルールと一致しなければならないようにすることができます。
詳細については、アクセス コントロール ファイルを参照してください。また、クライアント証明書からの情報を処理することもできます。詳細については、『NSAPI
Programmer's Guide for iPlanet Web Server』を参照してください。
LDAP へのクライアント証明書のマッピング
この節では、iPlanet Web Server によって、クライアント証明書が LDAP ディレクトリ内のエントリにマッピングされるプロセスを説明します。
サーバがクライアントからリクエストを受けると、サーバはリクエストを処理する前にクライアントに証明書を要求します。
Netscape Navigator や Netscape Communicator のような Netscape クライアントはサーバにクライアント証明書を送信します。ブラウザのセキュリティ設定により、エンド
ユーザにプロンプトを表示することもあれば、しないこともあります。必要な ACL も設定しなければなりません。詳細については、ACL
ファイルのシンタックスを参照してください。
次にサーバは、証明書にリストされた CA が、Administration Server にリストされた認証
CA に一致するかどうかを調べます。一致しない場合は、サーバによってはコネクションを終了するか、または失敗した照合によって、他の対応をとります。
コネクションを終了します。一致する場合は、サーバはリクエストの処理を続行します。
サーバにより証明書の CA が認証されているかどうかが確認された後、その証明書は次の手順で
LDAP エントリにマッピングされます。
- ユーザの証明書からのサブジェクト (ユーザの) DN が、LDAP ディレクトリの分岐ポイントにマッピングされます。
- クライアント証明書のサブジェクト (エンドユーザ) に関する情報に一致するエントリがないか、LDAP ディレクトリ内が検索されます。
- オプションで、クライアント証明書と、LDAP エントリ内で DN が対応している証明書を照合して確認します。
サーバは、certmap.conf
と呼ばれる証明書マッピング ファイルを使って LDAP 検索方法を決めます。マッピング ファイルは、クライアント証明書内のどの値 (エンドユーザ名や電子メール
アドレスなど) を使うかをサーバに告げます。サーバはこれらの値を使って、LDAP ディレクトリ内でユーザ エントリを検索しますが、サーバはまず
LDAP ディレクトリ内のどこから検索を開始するのかを決める必要があります。証明書マッピング ファイルは、この検索の開始点をサーバに伝えます。
検索の開始点と検索対象がわかると (手順 1)、 サーバは LDAP ディレクトリ内で検索を開始します
(手順 2)。一致するエントリが見つからない場合や、一致するエントリが複数見つかった場合で、マッピングが証明書を確認するように設定されていない場合は、検索は失敗に終わります。
予期される検索結果処理のリストについては、次の「LDAP 検索結果」表を参照してください。
ACL で予期される動作を指定することもできます。たとえば、証明書の照合に失敗した場合は、iPlanet Web Server がユーザだけを受け入れるように指定することができます。ACL
プリファレンスの設定方法については、アクセス コントロール ファイルを参照してください。
LDAP ディレクトリ内で一致するエントリと証明書が見つかると、サーバはその情報を使ってトランザクションを処理します。たとえば、証明書から
LDAP へのマッピングを使ってサーバへのアクセスを決めるサーバもあります。
次の節では、certmap.conf
ファイルについて説明します。このファイルを編集して、LDAP ディレクトリ内にエントリを挿入し、エンド ユーザが使うと考えられる証明書と照合する必要があります。
certmap.conf ファイルの使用
証明書マッピング ファイルにより、サーバが LDAP ディレクトリ内でユーザ エントリを検索する方法が決まります。このファイルを編集してエントリを追加し、
LDAP ディレクトリの構成と照合し、ユーザが使う証明書をリストします。 特に、マッピング ファイルにより次の情報が定義されます。
- LDAP ツリー内でサーバが検索を開始する場所
- LDAPディレクトリ内でエントリを検索する際にサーバが検索条件として使う証明書の属性
- サーバがさらに別の確認プロセスを行うかどうか
証明書マッピング ファイルは次の場所にあります。
ファイルには、1 つまたは複数の名前の付いたマッピングがあり、それぞれ別の CA に適用されます。次にマッピングのシンタックスを示します。
最初の行は、 識別名を構成する、エントリ名と CA 証明書内の属性を指定します。名前は任意であり、ユーザは自由に名前を定義することができます。しかし、
issuerDN は、クライアント証明書を発行した CA
の発行者 DN と完全に一致する必要があります。たとえば、次の 2 つの issuerDN
行は属性を区切るスペースが異なるだけですが、サーバはこれら 2 つを異なるものとして扱います。
名前の付いたマッピング内の 2行目とその後の行は、値とプロパティを照合します。certmap.conf
ファイルには 6 つのデフォルト プロパティがあります (証明書 API を使って、自分自身のプロパティをカスタマイズすることができます)。
- DNComps は、ユーザの情報 (つまり、クライアント証明書の所有者)
に一致するエントリを検索するため、LDAP ディレクトリ内のどこから検索を開始するかを決めるために使うカンマ区切りの属性リストです。サーバはクライアント証明書からこれらの属性の値を収集し、その値を使って
LDAP DN を形成します。そしてこの LDAP DN が、LDAP ディレクトリ内でサーバが検索を開始する場所を決めます。たとえば、DN
の o および c
属性を使うように DNComps を設定した場合、サーバは
LDAP ディレクトリ内のo=<org>, c=<country>
エントリから検索を開始します。LDAP ディレクトリ内では、<org>
および <country> は証明書の
DN からの値に置き換えられています。
- FilterComps とは、クライアント証明書内のユーザ
DN から情報を収集することによってフィルタを作成するために使うカンマ区切りの属性リストです。 サーバはこれらの属性の値を使って、LDAP
ディレクトリ内のエントリを照合するために使う検索条件を作成します。証明書から収集されたユーザ情報に一致するエントリが 1 つまたは複数の
LDAP ディレクトリ内に見つかった場合、検索は成功であり、オプションとしてサーバが確認を行うこともあります。
フィルタの属性名は、LDAP ディレクトリの属性名ではなく証明書の属性 名です。たとえば、証明書によってはユーザの電子メール
アドレスの属 性が e の場合がありますが、LDAP
ではこの属性は mail です。
- verifycert は、クライアントの証明書を
LDAP ディレクトリにある証明書と比較するかどうかをサーバに告げます。値は、オンとオフの 2 つです。LDAP ディレクトリに証明書がある場合に限ってこのプロパティを使います。この機能は、エンドユーザが有効で、期限の切れていない証明書を所持していることを確認するときに便利です。
- CmapLdapAttr は、ユーザに属するすべての証明書から収集されたサブジェクト
DN がある LDAP ディレクトリ内の属性の名前です。このプロパティのデフォルトは certSubjectDN
です。この属性は標準の LDAP 属性ではないため、このプロパティを使うには、LDAP スキーマを拡張する必要があります。詳細については、『Managing
Servers with Netscape Console』を参照してください。
- Library は、値が共有ライブラリまたは
DLL へのパス名であるプロパティです。このプロパティは、証明書 API を使ってユーザ自身のプロパティを作成する場合に限り使います。詳細については、『NSAPI
Programmer's Guide for iPlanet Web』を参照してください。
- InitFn は、値がカスタム ライブラリからの初期化関数の名前であるプロパティです。このプロパティは、証明書
API を使ってユーザ自身のプロパティを作成する場合に限り使います。
これらのプロパティの詳細については、マッピング例で説明されている例を参照してください。
カスタム プロパティの作成
クライアント証明書 API を使って、ユーザ自身のプロパティを作成することができます。クライアント証明書
API のプログラミングおよび使用法については、『NSAPI Programmer's
Guide for iPlanet Web Server』を参照してください。
カスタム マッピングができたら、次のようにマッピングを参照します。
例 :
マッピング例
certmap.conf
ファイルには、少なくとも 1 つのエントリが必要です。次の例では、certmap.conf
ファイルのさまざまな使用法を紹介しています。
例
1
この例は、"デフォルト" マッピングが 1 つだけある certmap.conf
ファイルを示しています。
この例を使って、サーバは ou=<orgunit>,
o=<org>, c=<country> エントリがある LDAP 分岐ポイントから検索を開始します。<>
内のテキストは、クライアント証明書内のサブジェクトの DN の値に置き換えられています。
次にサーバは、証明書の電子メール アドレスとユーザ ID の値を使って、LDAP ディレクトリ内で一致するものを検索します。一致するエントリが見つかると、サーバはクライアントから送信されたものとディレクトリ内にあるものを比較して証明書を確認します。
例
2
次のファイル例には、 デフォルトと US Postal Service 用の 2 つのマッピング
ファイルがあります。
サーバが US Postal Service 以外から証明書を受信すると、デフォルト マッピングが使われます。LDAP
ツリーの先頭から始まり、クライアントの電子メールとユーザ ID に一致するエントリを検索します。証明書が US Postal Service
からのものであれば、サーバは組織単位がある LDAP 分岐ポイントから検索を開始し、一致する電子メール アドレスを検索します。また証明書が
USPS からのものである場合は、サーバは証明書を確認します。それ以外の証明書は確認されません。
警告 証明書内の発行者 DN (CA の情報) は、マッピングの最初の行にリストされている発行者
DN と同一です。前の例では、o=United States Postal
Service,c=US の発行者 DN からの証明書は、o
と c 属性の間にスペースがないので一致しません。
例 3
次の例では、CmapLdapAttr
プロパティを使い、LDAP データベース内で、クライアント証明書から取得されたサブジェクト DN 全体に完全に一致する値を持つ certSubjectDN
という属性を検索します。
次のクライアント証明書サブジェクトの場合、
サーバは最初に、次の情報を持つエントリを検索します。
1 つまたは複数の一致するエントリが見つかった場合は、サーバはエントリを確認します。一致するエントリが見つからない場合は、サーバは
DNComps と FilterComps
を使って一致するエントリを検索します。この例では、サーバは、o=Leaves0fGrass
Inc, c=US という次の条件下のすべてのエントリ内で uid=Walt
Whitmanを検索します。
ノート この例では、LDAP
ディレクトリに属性 certSubjectDN のエントリがあると仮定しています。
|