跳到主要内容

3.3. 语法定义 (Syntax Definitions) (L-U)

3.3.18. LDAP 语法描述 (LDAP Syntax Description)

LDAP Syntax Description 语法的值是对某个 LDAP 语法的描述. 此语法值的 LDAP 专用编码由 [RFC4512] 中的 <SyntaxDescription> 规则定义.

LDAP Syntax Description 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.54 DESC 'LDAP Syntax Description' )

以上 LDAP Syntax Description 语法的 LDAP 定义本身也是 LDAP Syntax Description 语法的合法值.

与 LDAP Syntax Description 语法对应的 ASN.1 类型定义如下, 假定使用 EXPLICIT TAGS:

LDAPSyntaxDescription ::= SEQUENCE {
identifier OBJECT IDENTIFIER,
description DirectoryString { ub-schema } OPTIONAL }

DirectoryString 参数化 ASN.1 类型在 [X.520] 中定义.

ub-schema 的值 (一个整数) 由实现定义. 非规范性定义见 [X.520].

3.3.19. 匹配规则描述 (Matching Rule Description)

Matching Rule Description 语法的值是匹配规则 (matching rule) 的定义. 此语法值的 LDAP 专用编码由 [RFC4512] 中的 <MatchingRuleDescription> 规则定义.

示例:

( 2.5.13.2 NAME 'caseIgnoreMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

注: 为便于阅读, 这里添加了换行; 它不是语法的一部分.

Matching Rule Description 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.30 DESC 'Matching Rule Description' )

此语法对应 [X.501] 中的 MatchingRuleDescription ASN.1 类型.

3.3.20. 匹配规则使用描述 (Matching Rule Use Description)

Matching Rule Use Description 语法的值指明某个匹配规则可应用到哪些属性类型, 用于 extensibleMatch 搜索过滤器 [RFC4511]. 此语法值的 LDAP 专用编码由 [RFC4512] 中的 <MatchingRuleUseDescription> 规则定义.

示例: ( 2.5.13.16 APPLIES ( givenName $ surname ) )

Matching Rule Use Description 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.31
DESC 'Matching Rule Use Description' )

此语法对应 [X.501] 中的 MatchingRuleUseDescription ASN.1 类型.

3.3.21. 名称和可选 UID (Name and Optional UID)

Name and Optional UID 语法的值是某个实体的可分辨名称 (distinguished name) [RFC4512], 并且可选地附带一个唯一标识符, 用于将该实体与具有相同可分辨名称的其他实体区分开.

此语法值的 LDAP 专用编码由以下 ABNF 定义:

NameAndOptionalUID = distinguishedName [ SHARP BitString ]

<BitString> 规则在 Section 3.3.2 中定义. <distinguishedName> 规则在 [RFC4514] 中定义. <SHARP> 规则在 [RFC4512] 中定义.

注意, 虽然 '#' 字符可以出现在可分辨名称的字符串表示中, 但当 <distinguishedName> 编码到 <NameAndOptionalUID> 中时, 不会对该字符执行额外转义.

示例: 1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB#'0101'B

Name and Optional UID 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.34 DESC 'Name And Optional UID' )

此语法对应 [X.520] 中的 NameAndOptionalUID ASN.1 类型.

3.3.22. 名称形式描述 (Name Form Description)

Name Form Description 语法的值是名称形式 (name form) 的定义, 它规定条目可如何命名. 此语法值的 LDAP 专用编码由 [RFC4512] 中的 <NameFormDescription> 规则定义.

示例: ( 2.5.15.3 NAME 'orgNameForm' OC organization MUST o )

Name Form Description 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.35 DESC 'Name Form Description' )

此语法对应 [X.501] 中的 NameFormDescription ASN.1 类型.

3.3.23. 数字字符串 (Numeric String)

Numeric String 语法的值是由一个或多个数字和空格组成的序列. 此语法值的 LDAP 专用编码是不经转换的字符串, 它符合以下 ABNF:

NumericString = 1*(DIGIT / SPACE)

<DIGIT><SPACE> 规则在 [RFC4512] 中定义.

示例: 15 079 672 281

Numeric String 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.36 DESC 'Numeric String' )

此语法对应 [ASN.1] 中的 NumericString ASN.1 类型.

3.3.24. 对象类描述 (Object Class Description)

Object Class Description 语法的值是对象类 (object class) 的定义. 此语法值的 LDAP 专用编码由 [RFC4512] 中的 <ObjectClassDescription> 规则定义.

示例:

( 2.5.6.2 NAME 'country' SUP top STRUCTURAL MUST c
MAY ( searchGuide $ description ) )

注: 为便于阅读, 这里添加了换行; 它不是语法的一部分.

Object Class Description 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.37 DESC 'Object Class Description' )

此语法对应 [X.501] 中的 ObjectClassDescription ASN.1 类型.

3.3.25. 八位组字符串 (Octet String)

Octet String 语法的值是零个, 一个或多个任意八位组 (octet) 的序列. 此语法值的 LDAP 专用编码是不经转换的八位组序列, 它符合以下 ABNF:

OctetString = *OCTET

<OCTET> 规则在 [RFC4512] 中定义. 此语法的值通常不是人类可读的.

Octet String 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.40 DESC 'Octet String' )

此语法对应 [ASN.1] 中的 OCTET STRING ASN.1 类型.

3.3.26. OID

OID 语法的值是对象标识符 (object identifier): 由两个或更多非负整数组成的序列, 用于唯一标识某个对象或规范项.LDAP 中使用的许多对象标识符也有 IANA 注册名称 [RFC4520].

此语法值的 LDAP 专用编码由 [RFC4512] 中的 <oid> 规则定义.

示例:

1.2.3.4
cn

OID 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.38 DESC 'OID' )

此语法对应 [ASN.1] 中的 OBJECT IDENTIFIER ASN.1 类型.

3.3.27. 其他邮箱 (Other Mailbox)

Other Mailbox 语法的值用于标识某个特定命名邮件系统中的电子邮箱. 此语法值的 LDAP 专用编码由以下 ABNF 定义:

OtherMailbox = mailbox-type DOLLAR mailbox
mailbox-type = PrintableString
mailbox = IA5String

<mailbox-type> 规则表示邮箱所在邮件系统的类型 (例如 "MCIMail"), <mailbox><mailbox-type> 所描述邮件系统中的实际邮箱. <PrintableString><IA5String> 规则在 Section 3.2 中定义. <DOLLAR> 规则在 [RFC4512] 中定义.

Other Mailbox 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.39 DESC 'Other Mailbox' )

与 Other Mailbox 语法对应的 ASN.1 类型定义如下, 假定使用 EXPLICIT TAGS:

OtherMailbox ::= SEQUENCE {
mailboxType PrintableString,
mailbox IA5String
}

3.3.28. 邮政地址 (Postal Address)

Postal Address 语法的值是一个字符串序列, 每个字符串由一个或多个任意 UCS 字符组成, 共同构成物理邮件系统中的地址.

此语法值的 LDAP 专用编码由以下 ABNF 定义:

PostalAddress = line *( DOLLAR line )
line = 1*line-char
line-char = %x00-23
/ (%x5C "24") ; escaped "$"
/ %x25-5B
/ (%x5C "5C") ; escaped "\"
/ %x5D-7F
/ UTFMB

邮政地址值中的每个字符串 (即 <line>) 编码为 UTF-8 [RFC3629] 字符串, 但如果字符串中出现 "" 和 "$" 字符, 则用 "" 字符后跟该字符的两位十六进制数字代码进行转义. <DOLLAR><UTFMB> 规则在 [RFC4512] 中定义.

许多服务器将邮政地址限制为不超过六行, 且每行不超过三十个字符.

示例:

1234 Main St.$Anytown, CA 12345$USA
\241,000,000 Sweepstakes$PO Box 1000000$Anytown, CA 12345$USA

Postal Address 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.41 DESC 'Postal Address' )

此语法对应 [X.520] 中的 PostalAddress ASN.1 类型; 即:

PostalAddress ::= SEQUENCE SIZE(1..ub-postal-line) OF
DirectoryString { ub-postal-string }

ub-postal-line 和 ub-postal-string 的值 (二者均为整数) 由实现定义. 非规范性定义见 [X.520].

3.3.29. 可打印字符串 (Printable String)

Printable String 语法的值是一个或多个拉丁字母, 数字以及选定标点字符组成的字符串, 具体由 Section 3.2 中的 <PrintableCharacter> 规则规定.

此语法值的 LDAP 专用编码是不经转换的字符串, 它符合 Section 3.2 中的 <PrintableString> 规则.

示例: This is a PrintableString.

PrintableString 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.44 DESC 'Printable String' )

此语法对应 [ASN.1] 中的 PrintableString ASN.1 类型.

3.3.30. 子串断言 (Substring Assertion)

Substring Assertion 语法的值是零个, 一个或多个字符子串组成的序列, 用作字符字符串属性值的子串可扩展匹配 (substring extensible matching) 的参数; 即, 作为 MatchingRuleAssertion [RFC4511] 的 matchValue. 每个子串是由通用字符集 (Universal Character Set, UCS) [UCS] 中一个或多个任意字符组成的字符串. 不允许零长度子串.

此语法值的 LDAP 专用编码由以下 ABNF 定义:

SubstringAssertion = [ initial ] any [ final ]

initial = substring
any = ASTERISK *(substring ASTERISK)
final = substring
ASTERISK = %x2A ; asterisk ("*")

substring = 1*substring-character
substring-character = %x00-29
/ (%x5C "2A") ; escaped "*"
/ %x2B-5B
/ (%x5C "5C") ; escaped "\"
/ %x5D-7F
/ UTFMB

Substring Assertion 值中的每个 <substring> 编码为 UTF-8 [RFC3629] 字符串, 但如果子串中出现 "" 和 "*" 字符, 则用 "" 字符后跟该字符的两位十六进制数字代码进行转义.

Substring Assertion 语法仅用作 extensible match 中断言值的语法. 它不用作属性语法, 也不用于 SubstringFilter [RFC4511].

Substring Assertion 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.58 DESC 'Substring Assertion' )

此语法对应 [X.520] 中的 SubstringAssertion ASN.1 类型.

3.3.31. 电话号码 (Telephone Number)

Telephone Number 语法的值是一个可打印字符组成的字符串, 符合国际上约定的国际电话号码表示格式 [E.123].

此语法值的 LDAP 专用编码是不经转换的字符串, 它符合 Section 3.2 中的 <PrintableString> 规则.

示例:

+1 512 315 0280
+1-512-315-0280
+61 3 9896 7830

Telephone Number 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.50 DESC 'Telephone Number' )

Telephone Number 语法对应 [X.520] 中的以下 ASN.1 类型:

PrintableString (SIZE(1..ub-telephone-number))

ub-telephone-number 的值 (一个整数) 由实现定义. 非规范性定义见 [X.520].

3.3.32. Teletex 终端标识符 (Teletex Terminal Identifier)

此语法的值指定 teletex 终端的标识符以及 (可选的) 参数.

此语法值的 LDAP 专用编码由以下 ABNF 定义:

teletex-id = ttx-term *(DOLLAR ttx-param)
ttx-term = PrintableString ; terminal identifier
ttx-param = ttx-key COLON ttx-value ; parameter
ttx-key = "graphic" / "control" / "misc" / "page" / "private"
ttx-value = *ttx-value-octet

ttx-value-octet = %x00-23
/ (%x5C "24") ; escaped "$"
/ %x25-5B
/ (%x5C "5C") ; escaped "\"
/ %x5D-FF

<PrintableString><COLON> 规则在 Section 3.2 中定义. <DOLLAR> 规则在 [RFC4512] 中定义.

Teletex Terminal Identifier 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.51
DESC 'Teletex Terminal Identifier' )

此语法对应 [X.520] 中的 TeletexTerminalIdentifier ASN.1 类型.

3.3.33. Telex 号码 (Telex Number)

Telex Number 语法的值指定 telex 终端的 telex 号码, 国家代码和应答码.

此语法值的 LDAP 专用编码由以下 ABNF 定义:

telex-number  = actual-number DOLLAR country-code
DOLLAR answerback
actual-number = PrintableString
country-code = PrintableString
answerback = PrintableString

<PrintableString> 规则在 Section 3.2 中定义. <DOLLAR> 规则在 [RFC4512] 中定义.

Telex Number 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.52 DESC 'Telex Number' )

此语法对应 [X.520] 中的 TelexNumber ASN.1 类型.

3.3.34. UTC 时间 (UTC Time)

UTC Time 语法的值是表示日期和时间的字符串, 精度为一分钟或一秒. 年份以两位数字给出. 此语法值的 LDAP 专用编码遵循 [ASN.1] 中为 UTCTime 类型定义的格式, 并由以下 ABNF 描述:

UTCTime         = year month day hour minute [ second ]
[ u-time-zone ]
u-time-zone = %x5A ; "Z"
/ u-differential
u-differential = ( MINUS / PLUS ) hour minute

<year>, <month>, <day>, <hour>, <minute>, <second><MINUS> 规则在 Section 3.3.13 中定义. <PLUS> 规则在 [RFC4512] 中定义.

上述 ABNF 允许不表示有效日期 (在公历中) 和/或有效时间的字符串. 此类字符串对于该语法应该被视为无效.

如果使用 <u-time-zone> 的 "Z" 形式, 时间值表示协调世界时 (coordinated universal time); 否则, 该值表示本地时间. 在后一种情况下, 如果提供了 <u-differential>, 则可以从本地时间中减去该差值来计算协调世界时. <u-time-zone> 应该出现在时间值中, 并且 <u-time-zone> 的 "Z" 形式应该优先于 <u-differential> 使用.

UTC Time 语法的 LDAP 定义为:

( 1.3.6.1.4.1.1466.115.121.1.53 DESC 'UTC Time' )

注: 此语法已弃用, 推荐使用 Generalized Time 语法.

UTC Time 语法对应 [ASN.1] 中的 UTCTime ASN.1 类型.