「Distinguished Name(DN)」とは、LDAPディレクトリツリー内の単一のエントリ、またはX.509証明書のサブジェクトフィールドに対する、一意かつ階層的な識別子です。DNは、共通名、組織単位、ドメインコンポーネントなどの相対コンポーネントを順序立てて組み合わせたもので、そのディレクトリまたは証明書の名前空間内で、1つのオブジェクトを曖昧さなく正確に特定します。
主なポイント
- DNは、LDAPディレクトリまたは証明書内の1つのエントリを一意に識別します。
- DNは、CN、OU、DCなどの順序付けられた構成要素から構成されます。
- 「Bind DN」と「Base DN」は、DN の LDAP 特有の 2 つの用法です。
- Versa アプライアンスは、ディレクトリサーバーへの認証にBind DNを使用します。
- DNの一意性により、ディレクトリは一致するオブジェクトを正確に1つだけ解決することができます。
このページの内容: その重要性仕組み種類DN およびVersaよくある質問
DNはなぜ重要なのでしょうか?
LDAPディレクトリ内のすべてのエントリ(ユーザー、グループ、サービスアカウントなど)には、他のエントリと重複しないアドレスが必要です。このアドレスこそが「識別名(Distinguished Name、DN)」です。DNとは、ツリー内のどこにあっても、1つのオブジェクトを曖昧さなく識別する単一の文字列のことです。DNがなければ、ディレクトリや、それを照会するアプリケーションは、リクエストがどのオブジェクトを指しているのかを確実に特定する手段を持ちません。
DNは、ディレクトリ以外にも重要な役割を果たします。X.509証明書には、その証明書の所有者を識別する「サブジェクトDN」と、証明書に署名した認証局を示す「発行者DN」が含まれています。検証を行うアプリケーションは、サブジェクトDNや「共通名(Common Name)」などの構成要素を、想定される身元情報と比較します。
ネットワークおよびセキュリティチームにとって、DNは運用上の重要な要素です。LDAP認証プロファイルの正確性は、そこに指定されたバインドDNとベースDNの正確さに左右され、DNの入力ミスはディレクトリ認証が失敗する一般的な原因となっています。
DNとは何ですか?
DNとは、相対識別名(RDN)をコンマで区切った一連の文字列であり、各RDNは「属性=値」のペアで構成されます。典型的なLDAP DNは次のような形式になります。 CN=jdoe,OU=Engineering,DC=example,DC=com: ユーザー(CN=jdoe) ドメイン内の組織単位の中にあります。各 RDN は、エントリがちょうど 1 つだけ残るまで範囲を絞り込んでいきます。
一般的な属性タイプには、次のようなものがあります。 CN (一般名)、 OU (組織単位)、 O (組織)、 DC (ドメインコンポーネント)、および C (国)。X.509証明書のサブジェクトと発行者には同じ構成要素が用いられますが、証明書は多くの場合、ペアで O そして C ~と CN ~ではなく、 DC Active Directoryに典型的なチェーン。
ディレクトリ構成には、2つのDNが繰り返し登場します。1つは検索の開始点となる「ベースDN」、もう1つはクライアントが検索を行う前に認証を行う際に使用する「バインドDN」です。いずれも省略できません。すべてのLDAPクエリには、この2つが必須です。
DNの種類
すべてのDNが同じ役割を果たすわけではありません。ベースDNはディレクトリ検索のルートを指定します。その下にあるものはすべて検索範囲内に含まれ、その外にあるものは含まれません。バインドDNは、クライアントが認証を行う際のアカウントを識別するものです。これはバインドパスワードと組み合わされ、クエリ権限を持つ実際のディレクトリエントリに解決されなければなりません。X.509証明書におけるサブジェクトDNは、証明書が発行されたエンティティの名前を表します。発行者DNは、その証明書に署名した認証局の名前を表します。
A 相対識別名(RDN) が最小の構成要素です。つまり、1つの属性=値のペアであり、例えば CN=jdoe. 完全DNとは、対象エントリからツリーのルートに至るまで、RDNが順序通りに連なったものです。管理者は、プロファイルが参照できる範囲を制限するために、ベースDNの範囲をドメインのルートではなく、特定の組織単位に限定することがあります。
DN &Versa
VersaのSSE Gatewayは、LDAPベースの 認証プロファイル Active Directory または Open-LDAP に対してユーザーの認証を行う場合、Base DN と Bind DN の両方が必須項目となります。Bind DN はサービスアカウントの DN です。例えば、 cn=Administrator,cn=users,dc=versa,dc=com – ゲートウェイがディレクトリへの接続やクエリの実行に使用するものです。ベースDNは、ディレクトリツリー内のどこから検索を開始するかを指定するもので、通常はドメインのルートまたは特定の組織単位になります。
管理者は通常、次のようなツールを使用して、Active Directory から両方の値を取得します。 dsquery – 詳しくは 設定の手順ガイド 手順の詳細については、こちらをご覧ください。証明書ベースのプロファイルでは、DN の扱いが異なります。クライアント証明書のサブジェクト DN(多くの場合、単に「共通名」のみ)が、Versa が期待する識別情報と照合されます。
よくある質問
ベースDNとバインドDNの違いは何ですか?
ベースDNは、ディレクトリ検索の起点、つまりクエリが参照できるツリーの範囲を定義します。バインドDNは、クライアントが検索を行う前に認証を行う際のアカウントIDです。プロファイルには、ログインするためのバインドDNと、検索対象を特定するためのベースDNの両方が必要です。
DNはどのようなものですか?
DNとは、属性=値のペアをコンマで区切って連結したもので、最も具体的なものが先頭にくるものです: CN=jdoe,OU=Engineering,DC=example,DC=com. 各セグメントは、相対識別名(RDN)であり、個々のエントリから、ツリー内でそのエントリを含む組織単位やドメインへと、範囲を絞り込みます。
DNは「共通名」と同じものですか?
いいえ。共通名(CN)は、DN 内の 1 つの属性です。通常、エントリの表示名や証明書のサブジェクト ID として使用されます。DN は、CN と組織単位やドメイン構成要素などの他の属性を組み合わせた完全なパスであり、エントリを一意に特定するためのものです。
2つのディレクトリエントリが同じDNを共有することは可能ですか?
いいえ――一意性こそがDNの最大の目的です。ディレクトリサーバーはこれを強制します。つまり、同じツリー内の2つのエントリが同一の識別名(Distinguished Name)に解決されることは決してありません。この一意性があるからこそ、DNは認証や検索において、信頼性が高く、曖昧さのない参照情報として機能するのです。
そもそも、LDAP認証プロファイルにDNが必要なのはなぜですか?
LDAPには、特定のディレクトリオブジェクトを指定する他の方法がないためです。Bind DNはサーバーに接続しているユーザーが誰であるかを伝え、Base DNは検索する場所を指定します。正しいDNが指定されていないと、認証プロファイルは検証に必要なディレクトリアカウントを特定することができません。
「区別名」に関する詳細
さらに詳しく知りたい場合は、私たちが信頼している情報源を以下にご紹介します。
| RFC 4514: 識別名の LDAP 文字列表現 | RFC 5280: インターネット X.509 PKI 証明書プロファイル |
|---|---|
| LDAPの識別名(Distinguished Name)が文字列としてどのように表現されるかを定義するIETF規格。エスケープ規則も含まれる。 | X.509証明書およびCRLに関するIETFプロファイル。これには、サブジェクトおよび発行者のDNのエンコード方法および検証方法が定義されている。 |
関連用語
DNについて調べているなら、次はこれらもぜひチェックしてみてください。
| 識別名のバインド | ベースの識別名 | 一般名 |
|---|---|---|
| LDAPクライアントが認証を行う際に使用するサービスアカウントのDN。Versa は、このDNとパスワードを使用してディレクトリを検索します。 | LDAP検索が開始されるディレクトリツリー内の起点であり、プロファイルが参照できるエントリの範囲を定義する。 | ホストまたはユーザーの識別情報を表す属性。これは、他の要素と組み合わさることで完全なDNを構成する要素の一つである。 |