LDAP поддерживает подмножство (и довольно приличное подмножество) типов данных X.500. Каждый тип данных определяется своим синтаксисом (полный список синтаксисов, поддерживаемых OpenLDAP здесь). Наиболее интересные из них мы рассмотрим подробнее.
При сравнении и поиске атрибутов LDAP выполняет кое-какие классные штуки. Несколько слов об этом здесь.
Строки — наиболее распространённый тип данных. Существует целый ряд строковых типов.
IA5String (OID=1.3.6.1.4.1.1466.115.121.1.26). Набор символов IA5 (почти ASCII), 7 бит. НЕ разрешены расширенные символы, такие как é, Ø, å и т.п.
DirectoryString (OID=1.3.6.1.4.1.1466.115.121.1.15). ISO-10646 (Unicode) кодировка UTF-8 — кодировочная система с нефиксированным количеством бит на символ. Включает в себя IA5/ASCII в качестве подмножества — кое-что об этом. Поддерживает расширенные символы, такие как é, Ø, å и т.п. Поддерживает правила соответствия caseIgnoreMatch и caseIgnoreSubstringsMatch.
PrintableString (OID=1.3.6.1.4.1.1466.115.121.1.44). Строка в кодировке IA5 (почти ASCII), с набором символов, ограниченным представлением p раздела 4.1 RFC 2252. НЕ разрешены расширенные символы, такие как é, Ø, å и т.п. Поддерживает правила соответствия caseIgnoreMatch и caseIgnoreSubstringsMatch.
OctetString (OID=1.3.6.1.4.1.1466.115.121.1.40). Рассматривается как набор 8-битных байт в чистом виде. Может быть, а может и не быть пригодна для печати и чтения людьми. Обычно используется для паролей. Поддерживает правила соответствия octetStringMatch и octetStringOrderingMatch.
PostalAddress (OID=1.3.6.1.4.1.1466.115.121.1.41). Специальный формат, использующий ISO-10646 (Unicode) кодировку UTF-8 с разделителями '$'. Используется для генерации пригодных для печати меток и другого вывода. НЕ разрешены расширенные символы, такие как é, Ø, å и т.п. Поддерживает правила соответствия caseIgnoreListMatch и caseIgnoreListSubstringsMatch.
CountryString (OID=1.3.6.1.4.1.1466.115.121.1.11). Специальное поле, использующее набор символов IA5 (почти ASCII), длина которого ограничена ровно двумя символами, представляющими собой код страны согласно ISO 3166. Если требуется полное название страны, используйте friendlyCountryName. Поддерживает правила соответствия caseIgnoreMatch и caseIgnoreSubstringsMatch.
NumericString (OID=1.3.6.1.4.1.1466.115.121.1.36) использует числовое подмножество (представление d раздела 4.1 RFC 2252) набора символов IA5 (почти ASCII). Поддерживает правила соответствия numericStringMatch и numericStringSubstringsMatch.
Числовые значения реально хранятся в виде строк, но могут, если в определении атрибута указано правило соответствия ORDERING, позволять выполнять числовые сравнения, то есть 100 > 2. Тип Integer определяет 32-битное значение с учётом знака, и, таким образом, может принимать значения в диапазоне от 231-1 (2,147,483,647) до -231 (2,147,483,648).
Integer (OID=1.3.6.1.4.1.1466.115.121.1.27). Поддерживает правила соответствия integerMatch (EQUALITY) и integerOrderingMatch (ORDERING).
Стандартные наборы схемы содержат мало целочисленных атрибутов. Большинство числовых полей используют один из приведённых выше строковых типов, особенно тип NumericString.
GeneralizedTime (OID=1.3.6.1.4.1.1466.115.121.1.24). Поддерживает правила соответствия generalizedTimeMatch и generalizedTimeOrderingMatch.
TelephoneNumber (OID=1.3.6.1.4.1.1466.115.121.1.50). Поддерживает правила соответствия telephoneNumberMatch и telephoneNumberSubstringsMatch.
Boolean (OID=1.3.6.1.4.1.1466.115.121.1.7). Поддерживает правило соответствия booleanMatch.
Binary (OID=1.3.6.1.4.1.1466.115.121.1.5). Для двоичных атрибутов нет правил соответствия.
DN (OID=1.3.6.1.4.1.1466.115.121.1.12). Поддерживает правило соответствия distinguishedNameMatch.
BitString (OID=1.3.6.1.4.1.1466.115.121.1.6). Поддерживает правило соответствия bitStringMatch.
В приведённом ниже списке перечислены все синтаксисы, поддерживаемые 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-2017 ZyTrax, Inc. Все права защищены. Последнее изменение страницы: 21 октября 2015 г.
Переведено участниками проекта Pro-LDAP.ru в 2012 г.