A.2. 区分名称
概述
过去,可分辨名称(DN)定义为 X.500 目录结构中的主键。但是,在很多其他上下文中必须使用 DN 作为常规用途标识符。在 Apache CXF 中,在以下情况下进行 DN:
- X.509 证书(例如,证书中的 DN)用于标识证书的所有者(安全主体)。
- LDAP-DN 用于查找 LDAP 目录树中的对象。
DN 的字符串表示
虽然 DN 在 ASN.1 中正式定义,但也有一个 LDAP 标准来定义 DN 的 UTF-8 字符串表示(请参阅 RFC 2253
)。字符串表示为描述 DN 结构提供了便捷的基础。
DN 的字符串表示法 不提供对 DER 编码的 DN 的唯一表示。因此,从字符串格式转换为 DER 格式的 DN 并不总是恢复原始 DER 编码。
DN 字符串示例
以下字符串是 DN 的典型示例:
C=US,O=IONA Technologies,OU=Engineering,CN=A. N. Other
DN 字符串的结构
从以下基本元素构建 DN 字符串:
OID
属性类型
在 DN 中可以出现的各种属性类型是理论上打开的,但在实践中只能使用少量属性类型。表 A.1 “常用属性类型” 显示您最有可能遇到的属性类型:
字符串代表 | X.500 属性类型 |
---|---|
数据的大小 | 等效的 OID |
C | countryName |
2 | 2.5.4.6 |
O | organizationName |
1…64 | 2.5.4.10 |
OU | organizationalUnitName |
1…64 | 2.5.4.11 |
CN | commonName |
1…64 | 2.5.4.3 |
ST | stateOrProvinceName |
1…64 | 2.5.4.8 |
L | localityName |
1…64 | 2.5.4.7 |
STREET | streetAddress |
DC | domainComponent |
UID | userid |
AVA
属性值断言 (AVA)为属性类型分配属性值。在字符串表示中,它使用以下语法:
<attr-type>=<attr-value>
例如:
CN=A. N. Other
或者,您可以使用等同的 OID 标识字符串表示中的属性类型(请参阅 表 A.1 “常用属性类型” )。例如:
2.5.4.3=A. N. Other
RDN
相对可分名称 (RDN)代表 DN 的单个节点(字符串表示中逗号之间的位)。从技术上讲,RDN 可能包含多个 AVA(它被正式定义为一组 AVA)。但是,在实践中几乎不会发生。在字符串表示中,RDN 具有以下语法:
<attr-type>=<attr-value>[+<attr-type>=<attr-value> ...]
下面是一个(不太可能)多值 RDN 的示例:
OU=Eng1+OU=Eng2+OU=Eng3
以下是单值 RDN 的示例:
OU=Engineering