メインコンテンツまでスキップ

RFC 4514 - Lightweight Directory Access Protocol (LDAP): 識別名 (DN) の文字列表現

  • ステータス: Proposed Standard
  • 発行日: June 2006
  • ストリーム: IETF
  • 廃止: RFC2253
  • エラッタ: エラッタなし

概要

X.500 ディレクトリは、ディレクトリ内のエントリへの主キーとして識別名 (Distinguished Names, DN) を使用します。このドキュメントでは、Lightweight Directory Access Protocol (LDAP) で識別名を転送するために使用される文字列表現を定義します。文字列表現は、一般的に使用される識別名を明確に表現できるように設計されていますが、任意の識別名を表現することもできます。

1. 背景と使用目的

LDAP [RFC4510] を使用してアクセスされるものを含む、X.500 ベースのディレクトリシステム [X.500] では、識別名 (DN) はディレクトリエントリを一意に参照するために使用されます [X.501][RFC4512]。

DN の構造は ASN.1 [X.501] で記述されています。LDAP では、DN はこのドキュメントで説明されている文字列形式で表されます。

このドキュメントでは、LDAP [RFC4511][RFC4517] で使用される識別名の文字列表現を定義します。セクション 2 では、DN を ASN.1 構造化表現から文字列に変換するための推奨アルゴリズムについて詳しく説明します。セクション 3 では、DN を文字列から ASN.1 構造化表現に変換する方法について詳しく説明します。

2. DistinguishedName の文字列への変換

ASN.1 RDNSequence から文字列への変換手順は次のとおりです。

  1. 最後の RDN から最初の RDN への順序で、各 RDN を変換します。
  2. RDN はコンマ (,, U+002C) で区切ります。

各 RDN の変換:

  1. RDN が多値 (つまり、複数の AttributeTypeAndValue を含む) の場合、各 AttributeTypeAndValue はプラス記号 (+, U+002B) で区切ります。
  2. 各 AttributeTypeAndValue を文字列に変換します。
    • 最初に AttributeType を変換します。
    • 次に等号 (=, U+003D) が続きます。
    • そして AttributeValue を変換します。

2.3 AttributeType の変換

AttributeType が LDAP で認識できる既知のタイプ (例: cn, l, st, o, ou, c, street, dc, uid) のリストにある場合は、その短い名前の文字列を使用します。それ以外の場合は、ドット付き 10 進数 OID 文字列 (例: 1.3.6.1.4.1.1466.0.1) を使用します。

2.4 AttributeValue の変換

AttributeValue が文字列形式の場合は直接使用しますが、特殊文字をエスケープする必要があります。

  • エスケープが必要な文字: 先頭のスペース、末尾のスペース、# (先頭にある場合)、,+"\<>;
  • エスケープ方法は、文字の前にバックスラッシュ \ を追加することです。
  • その他の印刷不可能な文字は、16 進エスケープ \XX を使用できます。

3. 文字列から DistinguishedName への解析

このセクションでは、DN 文字列表現の構文を定義します。

distinguishedName = [ relativeDistinguishedName *( COMMA relativeDistinguishedName ) ]
relativeDistinguishedName = attributeTypeAndValue *( PLUS attributeTypeAndValue )
attributeTypeAndValue = attributeType EQUALS attributeValue
attributeType = descr / numericoid
attributeValue = string / hexstring
string = * ( lUTF1 / utf2 / utf3 / utf4 )
  • COMMA = ,
  • PLUS = +
  • EQUALS = =

4. 例

  • UID=jsmith,DC=example,DC=net
  • OU=Sales+CN=J. Smith,O=Widget Inc.,C=US
  • CN=L. Eagle,O=Sue\, Grabbit and Runn,C=GB (コンマのエスケープに注意)
  • CN=Before\0DAfter,O=Test,C=GB (復帰文字のエスケープを含む)
  • 1.3.6.1.4.1.1466.0=36313130,O=Test,C=GB (OID と BER エンコード値の 16 進文字列を使用)

5. セキュリティに関する考慮事項

DN 文字列には、表示されない文字や混同しやすい文字 (同形異義語など) が含まれる場合があり、なりすまし攻撃を防ぐためにユーザーに表示する際には注意が必要です。


注意: この翻訳は参照用です。詳細については RFC 4514 原文 を参照してください。