C.2. マッパープラグインモジュール
このセクションでは、Certificate Manager に提供されるマッパープラグインモジュールを説明します。これらのモジュールは、特定のマッパーインスタンスを有効化および設定するように Certificate Manager を設定します。
利用可能なマッパープラグインモジュールには以下が含まれます。
C.2.1. LdapCaSimpleMap
LdapCaSimpleMap プラグインモジュールは、LDAP ディレクトリーに CA のエントリーを自動的に作成し、証明書要求、証明書サブジェクト名、証明書拡張子で指定されたコンポーネント、および属性変数アサーション (AVA) 定数からエントリーの DN を作成することにより、CA の証明書をディレクトリーエントリーにマップするように Certificate Manager を設定します。AVA の詳細は、ディレクトリーのドキュメントを参照してください。
CA 証明書マッパーは、CA のエントリーを作成するか、証明書を既存のエントリーにマップするか、またはその両方を行うかを指定します。
公開ディレクトリーに CA エントリーがすでに存在し、このマッパーの dnPattern パラメーターに割り当てられた値が変更しても、uid 属性および o 属性が同じである場合、マッパーは 2 つ目の CA エントリーの作成に失敗します。たとえば、ディレクトリーに uid=CA,ou=Marketing,o=example.com の CA エントリーがすでにあり、uid=CA,ou=Engineering,o=example.com で別の CA エントリーを作成するようマッパーが設定されている場合、操作は失敗します。
ディレクトリーの UID Uniqueness プラグインが特定のベース DN に設定されているため、操作が失敗する場合があります。この設定により、ディレクトリーがそのベース DN の下に同じ UID を持つ 2 つのエントリーを持つことを防ぎます。この例では、ディレクトリーが o=example.com の下に同じ UID CA を持つ 2 つのエントリーを持つことを防ぎます。
マッパーが 2 番目の CA エントリーの作成に失敗した場合は、UID 一意性プラグインが設定されているベース DN を確認し、同じ UID のエントリーがディレクトリーにすでに存在するかどうかを確認します。必要に応じて、マッパー設定を調整するか、古い CA エントリーを削除するか、プラグインをコメントアウトするか、エントリーを手動で作成します。
- CRL の LdapCrlMap (「LdapCrlMap」 を参照)
- CA 証明書の LdapCaCertMap (「LdapCaCertMap」 を参照)。
パラメーター | 説明 |
---|---|
createCAEntry |
選択した場合は CA のエントリーを作成します (デフォルト)。
選択した場合、Certificate Manager は最初にディレクトリーに CA のエントリーを作成しようとします。Certificate Manager がエントリーの作成に成功すると、CA の証明書をエントリーに公開しようとします。このチェックボックスを選択しないと、公開するためにエントリーがすでに存在している必要があります。
|
dnPattern |
Certificate Manager が公開ディレクトリーで CA のエントリーを検索するために構築するために使用する DN パターンを指定します。dnPattern の値は、コンマで区切られた AVA のリストです。AVA は、Certificate Manager が、(cn=$subj.cn など) の証明書のサブジェクト名または制約から派生する変数 (o=Example Corporation など) です。
CA 証明書に cn コンポーネントがない場合に、サブジェクト名のコンポーネントで、CA 証明書マッピングの DN パターンを調整して、CA 証明書が公開されるディレクトリー内のエントリーの DN を反映します。たとえば、CA 証明書のサブジェクト DN が o=Example Corporation で、ディレクトリーの CA エントリーが cn=Certificate Authority, o=Example Corporation の場合、パターンは cn=Certificate Authority, o=$subj.o になります。
上記の例では、$req は証明書要求の属性、$subj は証明書のサブジェクト名の属性、$ext は証明書の拡張子の属性を取ります。
|
C.2.1.1. LdapCaCertMap
LdapCaCertMap マッパーは、LdapCaSimpleMap モジュールのインスタンスです。Certificate Manager は、インストール時にこのマッパーを自動的に作成します。
このマッパーは、ディレクトリーに CA のエントリーを作成し、CA 証明書をディレクトリー内の CA のエントリーを作成します。
デフォルトでは、マッパーはディレクトリーに CA のエントリーを作成するように設定されています。CA のエントリーを見つけるためのデフォルトの DN パターンは次のとおりです。
uid=$subj.cn,ou=people,o=$subj.o
C.2.1.2. LdapCrlMap
LdapCrlMap マッパーは LdapCaSimpleMap モジュールのインスタンスです。Certificate Manager は、インストール時にこのマッパーを自動的に作成します。
このマッパーは、ディレクトリー内に CA のエントリーを作成し、CRL をディレクトリー内の CA のエントリーにマップします。
デフォルトでは、マッパーは、ディレクトリーに CA のエントリーを作成するように設定されます。CA のエントリーを見つけるデフォルトの DN パターンは以下のとおりです。
uid=$subj.cn,ou=people,o=$subj.o
C.2.2. LdapDNExactMap
LdapDNExactMap プラグインモジュールは、証明書のサブジェクト名と一致する LDAP エントリー DN を検索することにより、証明書を LDAP ディレクトリーエントリーにマップするように Certificate Manager を設定します。このマッパーを使用するには、各証明書のサブジェクト名がディレクトリーエントリーの DN と完全に一致する必要があります。たとえば、証明書サブジェクト名が uid=jdoe, o=Example Corporation, c=US の場合、Certificate Manager は DN uid=jdoe, o=Example Corporation, c=US を持つエントリーのみを検索します。
一致するエントリーが見つからない場合、サーバーはエラーを返し、証明書を公開しません。
このマッパーは、証明書からすべての値を取得するため、パラメーターに値を必要としません。
C.2.3. LdapSimpleMap
LdapSimpleMap プラグインモジュールは、証明書要求、証明書のサブジェクト名、証明書の拡張子、および属性変数アサーション (AVA) 定数で指定されたコンポーネントからエントリーの DN を引き出すことで、証明書を LDAP ディレクトリーエントリーにマッピングするように証明書マネージャーを設定します。AVA の詳細は、ディレクトリーのドキュメントを参照してください。
デフォルトでは、Certificate Manager は単純なマッパーに基づくマッパールールを使用します。インストール時に、Certificate Manager は、LdapUserCertMap という名前が付けられた単純なマッパーモジュールのインスタンスを自動的に作成します。デフォルトのマッパーは、さまざまなタイプのエンドエンティティー証明書を対応するディレクトリーエントリーにマップします。
シンプルなマッパーには 1 つのパラメーター dnPattern が必要です。dnPattern の値は、コンマで区切られた AVA のリストです。AVA は、uid=$subj.UID などの変数や、o=Example Corporation などの定数になります。
- 例 1: uid=CertMgr, o=Example Corporation
- 例 2: cn=$subj.cn,ou=$subj.ou,o=$subj.o,c=US
- 例 3: uid=$req.HTTP_PARAMS.uid, e=$ext.SubjectAlternativeName.RFC822Name,ou=$subj.ou
例では、$req は、証明書要求から属性を取得し、$subj は、証明書のサブジェクト名から属性を取得し、$ext は、証明書拡張から属性を取得します。
C.2.4. LdapSubjAttrMap
LdapSubjAttrMap プラグインモジュールは、設定可能な LDAP 属性を使用して証明書を LDAP ディレクトリーエントリーにマップするように Certificate Manager を設定します。このマッパーを使用するには、ディレクトリーエントリーに指定された LDAP 属性を含める必要があります。
Certificate Manager は、サブジェクト DN 全体と完全に一致する値を持つ属性をディレクトリーで検索するため、このマッパーにはサブジェクト DN の正確なパターンが必要です。たとえば、指定された LDAP 属性が certSubjectDN で、証明書サブジェクト名が uid=jdoe, o=Example Corporation, c=US の場合、証明書マネージャーは、certSubjectDN=uid=jdoe 属性のあるエントリーに対してディレクトリーを検索します。
一致するエントリーが見つからない場合、サーバーはエラーを返し、ログに書き込みます。
表C.9「LdapSubjAttrMap Parameters」 これらのパラメーターを説明します。
パラメーター | 説明 |
---|---|
certSubjNameAttr | 証明書のサブジェクト名を値として含む LDAP 属性の名前を指定します。デフォルトは certSubjectName ですが、任意の LDAP 属性に設定できます。 |
searchBase | 属性検索を開始するベース DN を指定します。許容値は、o=example.com, c=US などの LDAP エントリーの有効な DN です。 |
C.2.5. LdapDNCompsMap
LdapDNCompsMap プラグインモジュールは、DN コンポーネントマッパーを実装します。このマッパーは、証明書のサブジェクト名で指定された cn コンポーネント、ou コンポーネント、o コンポーネント、および c コンポーネントからエントリーの DN を構築し、それを検索 DN として使用してディレクトリー内のエントリーを検索することで、証明書を LDAP ディレクトリーエントリーにマッピングします。マッパーは以下のエントリーを見つけます。
- CA 証明書と CRL を公開するためのディレクトリー内の CA のエントリー。
- エンドエンティティー証明書を公開するためのディレクトリーのエンドエンティティー。
マッパーは DN コンポーネントを取得して検索 DN を構築します。マッパーは任意の root 検索 DN も取得します。サーバーは DN コンポーネントを使用して LDAP エントリーを形成し、サブツリー検索を開始し、フィルターコンポーネントを使用してサブツリーの検索フィルターを形成します。DN コンポーネントが設定されていないと、サーバーはサブツリーにベース DN を使用します。ベース DN が null で、DN コンポーネントが一致しない場合には、エラーが返されます。DN コンポーネントおよびフィルターコンポーネントがいずれも一致しない場合は、エラーが返されます。フィルターコンポーネントが null の場合は、ベース検索が実行されます。
DNComps パラメーターおよび filterComps パラメーターは、有効な DN コンポーネントまたは属性をコンマで区切って指定します。パラメーターは、属性の複数のエントリーを受け入れません。たとえば、filterComps を cn,ou に設定することができますが、cn,ou2ou1 には設定できません。ディレクトリーエントリーに複数の ou が含まれている場合など、同じ属性の複数のインスタンスを持つフィルターを作成するには、LdapDNCompsMap モジュールのソースコードを修正します。
以下のコンポーネントは、DN で一般的に使用されます。
- uid は、ディレクトリー内のユーザーのユーザー ID を表します。
- cn は、ディレクトリー内のユーザーの共通名を表します。
- ou は、ディレクトリー内の組織単位を表します。
- o は、ディレクトリー内の組織を表します。
- l は地域 (都市) を表します。
- st は状態を表します。
- c は国を表します。
たとえば、次の DN は、米国カリフォルニア州マウンテンビューにある Example Corporation の営業部門で働く Jane Doe というユーザーを表しています。
cn=Jane Doe, ou=Sales, o=Example Corporation, l=Mountain View, st=California, c=US
証明書マネージャーは、コンポーネント (cn、ou、o、l、st、および c) の一部またはすべてを使用して、ディレクトリーを検索するための DN を構築します。マッパールールを作成するときに、これらのコンポーネントをサーバーが DN の構築に使用するように指定できます。つまり、ディレクトリー内の属性に一致するコンポーネントです。これは dnComps パラメーターで設定されます。
たとえば、コンポーネント cn、ou、o、および c は、dnComps パラメーターの値として設定されます。ディレクトリー内の Jane Doe のエントリーを見つけるために、Certificate Manager は、証明書から DN 属性値を読み取ることによって次の DN を構築し、ディレクトリーを検索するためのベースとして DN を使用します。
cn=Jane Doe, ou=Sales, o=Example Corporation, c=US
- サブジェクト名には、dnComps パラメーターで指定されたすべてのコンポーネントを含める必要はありません。この例の l、st など、サーバーは、サブジェクト名の一部ではないコンポーネントを無視します。
- 未指定のコンポーネントは、DN の構築には使用されません。例では、ou コンポーネントが含まれていない場合、サーバーはこの DN をディレクトリー検索のベースとして使用します。
cn=Jane Doe, o=Example Corporation, c=US
dnComps パラメーターの場合、Certificate Manager が LDAP DN を正確に形成するために使用できる DN コンポーネントを入力します。ただし、特定の状況では、証明書のサブジェクト名がディレクトリー内の複数のエントリーと一致する場合があります。次に、Certificate Manager は、DN から一致するエントリーを 1 つ取得できない可能性があります。たとえば、サブジェクト名 cn=Jane Doe, ou=Sales, o=Example Corporation, c=US は、ディレクトリー内の Jane Doe という名前の 2 つのユーザーと一致する可能性があります。その場合、Certificate Manager には、証明書のサブジェクトに対応するエントリーを決定するための追加の基準が必要です。
Certificate Manager がディレクトリー内の異なるエントリーを区別するために使用する必要のあるコンポーネントを指定するには、filterComps パラメーターを使用します。詳細は、表C.10「LdapDNCompsMap 設定パラメーター」 を参照してください。たとえば、cn、ou、o、および c が dnComps パラメーターの値である場合、l 属性を使用して同じ cn、ou、o、および c 値のエントリー間で区別するのに使用できる場合にのみ、filterComps パラメーターに l を入力します。
2 つの Jane Doe エントリーが uid 属性の値によって区別される場合、(1 つのエントリーuid は janedoe1 で、(もう 1 つのエントリーの uid は janedoe2)、証明書のサブジェクト名を設定して uid コンポーネントを含めるようにできます。
注記
e、l、および st コンポーネントは、終了エンティティー向けに提供される証明書要求の標準フォームに含まれません。これらのコンポーネントをフォームに追加することも、証明書発行フォームのサブジェクト名を編集するときに発行エージェントにこれらのコンポーネントの挿入を要求することもできます。
C.2.5.1. LdapDNCompsMap の設定パラメーター
この設定では、Certificate Manager は、DN を形成するための dnComps 値と、サブツリーの検索フィルターを形成するための filterComps 値を使用して、L その証明書と、DAP ディレクトリー内の証明書をマップします。
- フォーム化された DN が null の場合、サーバーはサブツリーの baseDN の値を使用します。正式な DN とベース DN の両方が null の場合、サーバーはエラーをログに記録します。
- フィルターが null の場合、サーバーは検索に baseDN の値を使用します。フィルターとベース DN の両方が null の場合、サーバーはエラーをログに記録します。
表C.10「LdapDNCompsMap 設定パラメーター」 これらのパラメーターを説明します。
パラメーター | 説明 |
---|---|
baseDN | 公開ディレクトリー内のエントリーの検索を開始する DN を指定します。dnComps フィールドが空の場合、サーバーはベース DN 値を使用してディレクトリーの検索を開始します。 |
dnComps |
公開ディレクトリーのどこで、Certificate Manager が CA またはエンドエンティティーの情報と一致する LDAP エントリーの検索を開始するかを指定します。
たとえば、dnComps が、DN の o 属性および c 属性を使用する場合、サーバーは、ディレクトリーで o=org、c=country エントリーから検索を開始し、org と country を証明書の DN の値に置き換えます。
dnComps フィールドが空の場合、サーバーは、baseDN フィールドを確認し、filterComps パラメーター値により指定されるフィルターに一致するエントリーの DN によって指定されるディレクトリーツリーを検索します。
許容値は、有効な DN コンポーネントまたは属性をコンマで区切って指定します。
|
filterComps |
Certificate Manager が検索結果からエントリーをフィルタリングするために使用するコンポーネントを指定します。サーバーは filterComps 値を使用して、サブツリーの LDAP 検索フィルターを形成します。サーバーは、証明書のサブジェクト名からこれらの属性の値を収集することにより、フィルターを構築します。フィルターを使用して、LDAP ディレクトリー内のエントリーを検索して照合します。
サーバーが証明書から収集した情報と一致するエントリーをディレクトリー内で複数検出した場合、検索は成功し、サーバーはオプションで検証を実行します。たとえば、filterComps が電子メールおよびユーザー ID 属性を使用するように設定されていると (filterComps=e,uid)、サーバーはディレクトリーを検索して、電子メールとユーザー ID の値が証明書から収集された情報と一致するエントリーを検索します。
許容値は、コンマで区切られた証明書 DN 内の有効なディレクトリー属性です。フィルターの属性名は、LDAP ディレクトリー内の属性名ではなく、証明書の属性名である必要があります。たとえば、ほとんどの証明書には、ユーザーの電子メールアドレスの e 属性があります。LDAP は、その属性の mail を呼び出します。
|