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

OBJECT IDENTIFIER(OID)是一组字节,它以唯一标识 ASN.1 中唯一结构的字节数。

属性类型

在 DN 中可以出现的各种属性类型是理论上打开的,但在实践中只能使用少量属性类型。表 A.1 “常用属性类型” 显示您最有可能遇到的属性类型:

表 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