RFC: 4511
Оригинал: Lightweight Directory Access Protocol (LDAP): The Protocol
Предыдущие версии: RFC 2251, RFC 2830, RFC 3771
Категория: Предложенный стандарт
Дата публикации:
Автор:
Перевод: Pro-LDAP.ru

4.12. Расширенная операция Extended

Операция Extended позволяет определить дополнительные операции помимо тех, которые уже определены в протоколе; например, добавить операции для установки Transport Layer Security (смотрите раздел 4.14).

Операция Extended позволяет клиентам выполнять запросы и получать ответы с предопределёнными синтаксисами и семантиками. Эти синтаксисы и семантики могут быть определены в RFC, либо определяться в частном порядке для конкретных реализаций.

Каждая операция Extended состоит из запроса Extended и ответа Extended.

ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
     requestName      [0] LDAPOID,
     requestValue     [1] OCTET STRING OPTIONAL }

В поле requestName содержится точечно-цифровое представление соответствующего запросу уникального идентификатора объекта OBJECT IDENTIFIER. В поле requestValue — информация, форма которой определяется этим запросом, инкапсулированная в строку октетов OCTET STRING.

На этот запрос сервер ответит сообщением LDAPMessage, содержащим ответ ExtendedResponse.

ExtendedResponse ::= [APPLICATION 24] SEQUENCE {
     COMPONENTS OF LDAPResult,
     responseName     [10] LDAPOID OPTIONAL,
     responseValue    [11] OCTET STRING OPTIONAL }

Поле responseName, при его наличии, содержит идентификатор LDAPOID, уникальный для данной расширенной операции или её ответа. Это поле является опциональным (даже когда в спецификации расширения определён LDAPOID для использования в этом поле). Это поле будет отсутствовать, когда сервер не может или не желает определить, какой именно LDAPOID вернуть, например, если невозможно разобрать requestName, либо его значение не распознано.

Если не распознан идентификатор в requestName, сервер возвращает protocolError. (Сервер может вернуть protocolError и в других случаях.)

Поля requestValue и responseValue содержат связанную с операцией информацию. Формат этих полей определяется спецификацией операции-расширения Extended. Реализации должны (MUST) быть готовы обработать произвольное содержимое этих полей, в том числе и нулевой длины. Значения, которые определяются в терминах ASN.1 и закодированы BER в соответствии с разделом 5.1, также следуют правилам расширяемости, приведённым в разделе 4.

Серверы перечисляют идентификаторы requestName тех запросов Extended Request, которые они могут распознать, в атрибуте 'supportedExtension' записи root DSE (раздел 5.1 [RFC4512]).

Операции-расширения Extended могут быть определены в других документах. Спецификация операции-расширения Extended включает в себя:

  • идентификатор объекта OBJECT IDENTIFIER, который назначается в поле requestName,

  • идентификатор объекта OBJECT IDENTIFIER (если он есть), который назначается в поле responseName (имейте ввиду, что для requestName и responseName может быть использован один и тот же OBJECT IDENTIFIER),

  • формат содержимого полей requestValue и responseValue (если оно предусмотрено), и

  • семантику операции.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.