A.2. 区分名称
概述
在过去,区分名称(DN)被定义为 X.500 目录结构中的主密钥。但是,DN 必须在很多其他上下文中使用,作为通用标识符。在 Apache CXF 中,DN 在以下上下文中发生:
- X.509 证书 - 例如,证书中的一个 DN 标识证书的所有者(安全主体)。
- ldap-DNs 用于在 LDAP 目录树中查找对象。
DN 的字符串表示
虽然在 ASN.1 中正式定义了 DN,但还有一个 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 |
MASWAN | streetAddress |
DC | domainComponent |
UID | userid |
AVA
属性值 assertion (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