Приложение A — LDAP: Типы данных

LDAP поддерживает подмножство (и довольно приличное подмножество) типов данных X.500. Каждый тип данных определяется своим синтаксисом (полный список синтаксисов, поддерживаемых OpenLDAP здесь). Наиболее интересные из них мы рассмотрим подробнее.

При сравнении и поиске атрибутов LDAP выполняет кое-какие классные штуки. Несколько слов об этом здесь.

Содержание

Строки
Числа (целые числа)
Формат времени
Телефонные номера
Логический тип
Двоичный тип
Distinguished Name
Битовые строки
Поддерживаемые синтаксисы LDAP

Строки LDAP

Строки — наиболее распространённый тип данных. Существует целый ряд строковых типов.

  1. IA5String (OID=1.3.6.1.4.1.1466.115.121.1.26). Набор символов IA5 (почти ASCII), 7 бит. НЕ разрешены расширенные символы, такие как é, Ø, å и т.п.

  2. DirectoryString (OID=1.3.6.1.4.1.1466.115.121.1.15). ISO-10646 (Unicode) кодировка UTF-8 — кодировочная система с нефиксированным количеством бит на символ. Включает в себя IA5/ASCII в качестве подмножества — кое-что об этом. Поддерживает расширенные символы, такие как é, Ø, å и т.п. Поддерживает правила соответствия caseIgnoreMatch и caseIgnoreSubstringsMatch.

  3. PrintableString (OID=1.3.6.1.4.1.1466.115.121.1.44). Строка в кодировке IA5 (почти ASCII), с набором символов, ограниченным представлением p раздела 4.1 RFC 2252. НЕ разрешены расширенные символы, такие как é, Ø, å и т.п. Поддерживает правила соответствия caseIgnoreMatch и caseIgnoreSubstringsMatch.

  4. OctetString (OID=1.3.6.1.4.1.1466.115.121.1.40). Рассматривается как набор 8-битных байт в чистом виде. Может быть, а может и не быть пригодна для печати и чтения людьми. Обычно используется для паролей. Поддерживает правила соответствия octetStringMatch и octetStringOrderingMatch.

  5. PostalAddress (OID=1.3.6.1.4.1.1466.115.121.1.41). Специальный формат, использующий ISO-10646 (Unicode) кодировку UTF-8 с разделителями '$'. Используется для генерации пригодных для печати меток и другого вывода. НЕ разрешены расширенные символы, такие как é, Ø, å и т.п. Поддерживает правила соответствия caseIgnoreListMatch и caseIgnoreListSubstringsMatch.

  6. CountryString (OID=1.3.6.1.4.1.1466.115.121.1.11). Специальное поле, использующее набор символов IA5 (почти ASCII), длина которого ограничена ровно двумя символами, представляющими собой код страны согласно ISO 3166. Если требуется полное название страны, используйте friendlyCountryName. Поддерживает правила соответствия caseIgnoreMatch и caseIgnoreSubstringsMatch.

  7. NumericString (OID=1.3.6.1.4.1.1466.115.121.1.36) использует числовое подмножество (представление d раздела 4.1 RFC 2252) набора символов IA5 (почти ASCII). Поддерживает правила соответствия numericStringMatch и numericStringSubstringsMatch.

Наверх

Числа LDAP

Числовые значения реально хранятся в виде строк, но могут, если в определении атрибута указано правило соответствия ORDERING, позволять выполнять числовые сравнения, то есть 100 > 2. Тип Integer определяет 32-битное значение с учётом знака, и, таким образом, может принимать значения в диапазоне от 231-1 (2,147,483,647) до -231 (2,147,483,648).

  1. Integer (OID=1.3.6.1.4.1.1466.115.121.1.27). Поддерживает правила соответствия integerMatch (EQUALITY) и integerOrderingMatch (ORDERING).

Стандартные наборы схемы содержат мало целочисленных атрибутов. Большинство числовых полей используют один из приведённых выше строковых типов, особенно тип NumericString.

Формат времени LDAP

  1. GeneralizedTime (OID=1.3.6.1.4.1.1466.115.121.1.24). Поддерживает правила соответствия generalizedTimeMatch и generalizedTimeOrderingMatch.

Телефонные номера LDAP

  1. TelephoneNumber (OID=1.3.6.1.4.1.1466.115.121.1.50). Поддерживает правила соответствия telephoneNumberMatch и telephoneNumberSubstringsMatch.

Логический тип LDAP

  1. Boolean (OID=1.3.6.1.4.1.1466.115.121.1.7). Поддерживает правило соответствия booleanMatch.

Двоичный тип LDAP

  1. Binary (OID=1.3.6.1.4.1.1466.115.121.1.5). Для двоичных атрибутов нет правил соответствия.

Distinguished Name LDAP

  1. DN (OID=1.3.6.1.4.1.1466.115.121.1.12). Поддерживает правило соответствия distinguishedNameMatch.

Битовые строки LDAP

  1. BitString (OID=1.3.6.1.4.1.1466.115.121.1.6). Поддерживает правило соответствия bitStringMatch.

Наверх

Поддерживаемые OpenLDAP синтаксисы

В приведённом ниже списке перечислены все синтаксисы, поддерживаемые OpenLDAP. Этот список получен с помощью rootDSE subschema. Для того, чтобы найти определения OID, используйте этот сайт, спасший уже не одну жизнь.

Приведённый ниже список может быть получен с помощью следующей команды:

ldapsearch -H ldap://ldap.mydomain.com -x -s base -b "cn=subschema" ldapsyntaxes
# Список атрибутов, которые могут быть перечислены:
# matchingruleuse ldapsyntaxes matchingrules attributetypes
# (всё это - коллекции), а также
# createtimestamp modifytimestamp
# Если Вы используете единственный знак +, Вы получите огромный 
# список всего, что знает LDAP-сервер.
# Subschema
dn: cn=Subschema
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.4 
  DESC 'Audio' X-NOT-HUMAN-READABLE 'TRUE' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.5 
  DESC 'Binary' X-NOT-HUMAN-READABLE 'TRUE' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.6 
  DESC 'Bit String' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.7 
  DESC 'Boolean' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.8 
  DESC 'Certificate' X-BINARY-TRANSFER-REQUIRED
  'TRUE' X-NOT-HUMAN-READABLE 'TRUE' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.9 
  DESC 'Certificate List' X-BINARY-TRANSFER-REQUIRED
  'TRUE' X-NOT-HUMAN-READABLE 'TRUE' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.10
  DESC 'Certificate Pair' X-BINARY-TRANSFER-REQUIRED
  'TRUE' X-NOT-HUMAN-READABLE 'TRUE' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.11
  DESC 'Country String' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.12
  DESC 'Distinguished Name' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.15
  DESC 'Directory String' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.22
  DESC 'Facsimile Telephone Number' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.24
  DESC 'Generalized Time' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.26
  DESC 'IA5 String' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.27
  DESC 'Integer' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.28
  DESC 'JPEG' X-NOT-HUMAN-READABLE 'TRUE' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.34
  DESC 'Name And Optional UID' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.36
  DESC 'Numeric String' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.38
  DESC 'OID' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.39
  DESC 'Other Mailbox' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.40
  DESC 'Octet String' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.41
  DESC 'Postal Address' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.44
  DESC 'Printable String' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.49
  DESC 'Supported Algorithm' X-BINARY-TRANSFER-REQUIRED
  'TRUE' X-NOT-HUMAN-READABLE 'TRUE' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.50
  DESC 'Telephone Number' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.52
  DESC 'Telex Number' )
ldapSyntaxes: ( 1.3.6.1.1.1.0.0 DESC 'RFC2307
  NIS Netgroup Triple' )
ldapSyntaxes: ( 1.3.6.1.1.1.0.1
  DESC 'RFC2307 Boot Parameter' )
ldapSyntaxes: ( 1.2.826.0.1.3344810.7.1
  DESC 'Serial Number and Issuer' )

Наверх



Проблемы, комментарии, предположения, исправления (включая битые ссылки) или есть что добавить? Пожалуйста, выкроите время в потоке занятой жизни, чтобы написать нам, вебмастеру или в службу поддержки. Оставшийся день Вы проведёте с чувством удовлетворения.

Нашли ошибку в переводе? Сообщите переводчикам!

Copyright © 1994-2014 ZyTrax, Inc. Все права защищены. Последнее изменение страницы: 17 сентября 2013 г.
Переведено участниками проекта Pro-LDAP.ru в 2012 г.