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 Uniqueness プラグインが設定されているベース DN を確認し、同じ UID のエントリーがディレクトリーにすでに存在するかどうかを確認します。必要に応じて、マッパー設定を調整するか、古い CA エントリーを削除するか、プラグインをコメントアウトするか、エントリーを手動で作成します。
インストール時に、Certificate Manager は CA 証明書マッパーモジュールの 2 つのインスタンスを自動的に作成します。マッパーの名前は以下のように命名されます。
-
CRL の
LdapCrlMap
(「LdapCrlMap」 を参照) -
CA 証明書の
LdapCaCertMap
(「LdapCaCertMap」 を参照)。
パラメーター | 説明 |
---|---|
| 選択した場合は CA のエントリーを作成します (デフォルト)。 選択した場合、Certificate Manager は最初にディレクトリーに CA のエントリーを作成しようとします。Certificate Manager がエントリーの作成に成功すると、CA の証明書をエントリーに公開しようとします。このチェックボックスを選択しないと、公開するためにエントリーがすでに存在している必要があります。 |
|
Certificate Manager が公開ディレクトリーで CA のエントリー検索を構築するために使用する DN パターンを指定します。
CA 証明書に
上記の例では、 |
C.2.1.1. LdapCaCertMap
LdapCaCertMap
マッパーは、LdapCaSimpleMap
モジュールのインスタンスです。Certificate Manager は、インストール時にこのマッパーを自動的に作成します。
このマッパーは、ディレクトリーに CA のエントリーを作成し、CA 証明書をディレクトリー内の CA のエントリーを作成します。
デフォルトでは、マッパーはディレクトリーに CA のエントリーを作成するように設定されています。CA のエントリーを見つけるためのデフォルトの DN パターンは次のとおりです。
uid=$subj.cn,ou=people,o=$subj.o
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
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 ディレクトリーエントリーにマッピングするように Certificate Manager を設定します。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
属性のあるエントリーに対してディレクトリーを検索します。
一致するエントリーが見つからない場合、サーバーはエラーを返し、ログに書き込みます。
以下の表では、これらのパラメーターについて説明しています。
パラメーター | 説明 |
---|---|
|
証明書のサブジェクト名を値として含む LDAP 属性の名前を指定します。デフォルトは |
|
属性検索を開始するベース DN を指定します。許容値は、 |
C.2.5. LdapDNCompsMap
LdapDNCompsMap
プラグインモジュールは、DN コンポーネントマッパーを実装します。このマッパーは、証明書のサブジェクト名で指定された cn
、ou
、o
、c
などのコンポーネントからエントリーの DN を構築して証明書を LDAP ディレクトリーエントリーにマップし、それを検索 DN として使用してディレクトリー内のエントリーを検索します。マッパーは以下のエントリーを見つけます。
- CA 証明書と CRL を公開するためのディレクトリー内の CA のエントリー。
- エンドエンティティー証明書を公開するためのディレクトリーのエンドエンティティー。
マッパーは DN コンポーネントを取得して検索 DN を構築します。マッパーは任意の root 検索 DN も取得します。サーバーは DN コンポーネントを使用して LDAP エントリーを形成し、サブツリー検索を開始し、フィルターコンポーネントを使用してサブツリーの検索フィルターを形成します。DN コンポーネントが設定されていないと、サーバーはサブツリーにベース DN を使用します。ベース DN が null で、DN コンポーネントが一致しない場合には、エラーが返されます。DN コンポーネントおよびフィルターコンポーネントがいずれも一致しない場合は、エラーが返されます。フィルターコンポーネントが null の場合は、ベース検索が実行されます。
DNComps
パラメーターおよび filterComps
パラメーターは、有効な DN コンポーネントまたは属性をコンマで区切って指定します。パラメーターは、属性の複数のエントリーを受け入れません。たとえば、filterComps
を cn,ou
に設定できますが、cn,ou2,ou1
には設定できません。ディレクトリーエントリーに複数の 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=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
cn=Jane Doe, ou=Sales, o=Example Corporation, c=US
-
サブジェクト名には、
dnComps
パラメーターで指定されたすべてのコンポーネントを含める必要はありません。サーバーは、この例のl
やst
などのサブジェクト名の一部ではないコンポーネントを無視します。 未指定のコンポーネントは、DN の構築には使用されません。例では、
ou
コンポーネントが含まれていない場合、サーバーはこの DN をディレクトリー検索のベースとして使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cn=Jane Doe, o=Example Corporation, c=US
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 の場合、サーバーはエラーをログに記録します。
以下の表では、これらのパラメーターについて説明しています。
パラメーター | 説明 |
---|---|
|
公開ディレクトリー内のエントリーの検索を開始する DN を指定します。 |
| 公開ディレクトリーのどこで、Certificate Manager が CA またはエンドエンティティーの情報と一致する LDAP エントリーの検索を開始するかを指定します。
たとえば、
許容値は、有効な DN コンポーネントまたは属性をコンマで区切って指定します。 |
|
Certificate Manager が検索結果からエントリーをフィルタリングするために使用するコンポーネントを指定します。サーバーは
サーバーが証明書から収集した情報と一致するエントリーをディレクトリー内で複数検出した場合、検索は成功し、サーバーはオプションで検証を実行します。たとえば、
許容値は、コンマで区切られた証明書 DN 内の有効なディレクトリー属性です。フィルターの属性名は、LDAP ディレクトリー内の属性名ではなく、証明書の属性名である必要があります。たとえば、ほとんどの証明書には、ユーザーの電子メールアドレスの |