36. Аутентификатор Cyrus_sasl


    Код для этого аутентификатора был предоставлен Matthew Byng-Maddick of A L Digital Ltd (http://www.aldigital.co.uk).
   Аутентификатор
cyrus_sasl предоставляет серверную поддержку для реализации RFC 2222 (Simple Authentication and Security Layer) библиотекой Cyrus SASL. Эта библиотека поддерживает множество аутентификационных механизмов, включая PLAIN и LOGIN, а также несколько других, которые exim не поддерживает непосредственно. В частности, есть поддержка для аутентификации Kerberos.
   Аутентификатор
cyrus_sasl предоставляет шлюзовой механизм напрямую к интерфейсу Cyrus, таким образом, ваша билиотека Cyrus может, например, CRAM-MD5, что может аутентификатор cyrus_sasl . По умолчанию, им используется публичное имя драйвера, для определения, какой механизм поддерживать.
   Когда требуется доступ к какому-то секретному файлу, например, в GSSAPI или CRAM-MD5, нужно отметить, что аутентификатор выполняется от пользователя exim`a, и, что библиотека Cyrus SASL не может повысить дефолтовые привилегии. Также, вам может понадобиться установить переменные окружения, в зависимости от используемого драйвера.

36.1 Использование cyrus_sasl в качестве сервера

   Аутентификатор cyrus_sasl обладает четырьмя частными опциями. Он помещает имя пользователя (из успешной аутентификации) в $auth1 . Для совместимости с предыдущими релизами exim`a, имя пользователя, также, помещается в переменную $1 . Однако, использование этой переменной для данной цели, в настоящее время осуждается, поскольку может привести к беспорядку при раскрытиях строк, использующих цифровые переменные для других целей.

Имя
Использование
Тип
Дефолтовое значение
server_hostname cyrus_sasl string† $primary_hostname

   Эта опция выбирает имя хоста, используемое при связи с библиотекой. Она выше нижележащего плугина SASL, который работает с этими данными.

Имя
Использование
Тип
Дефолтовое значение
server_mech cyrus_sasl string public_name

   Эта опция выбирает аутентификационный механизм который должен использовать этот драйвер. Она возволяет вам использовать иной основной механизм для объявленного имени. Например:

sasl:
  driver = cyrus_sasl
  public_name = X-ANYTHING
  server_mech = CRAM-MD5
  server_set_id = $auth1


Имя
Использование
Тип
Дефолтовое значение
server_realm cyrus_sasl string незадана

   Эта опция определяет область SASL, в которой осуществляется сервер.

Имя
Использование
Тип
Дефолтовое значение
server_service cyrus_sasl string smtp

   Это - сервис SASL, в области которого осуществлется сервер.
   Для прямых случаев, вы не должны устанавливать какую-либо из частных опций аутентификатора. Всё что вам необходимо сделать - задать соответствующий механизм как публичное имя. Таким образом, если у вас есть билиотека SASL, поддерживающая CRAM-MD5 и PLAIN, вы могли бы обладать двумя аутентификаторами, как показано далее:

sasl_cram_md5:
  driver = cyrus_sasl
  public_name = CRAM-MD5
  server_set_id = $auth1

sasl_plain:
  driver = cyrus_sasl
  public_name = PLAIN
  server_set_id = $auth1


   Cyrus SASL действительно осуществляет аутентификационный метод LOGIN, несмотря на то, что это - нестандартный метод. По умолчанию, это отключено в исходных кодах, но присутствует во многих двоичных дистрибутивах.




=============
Автор перевода: lissyara, оригинал: http://www.lissyara.su/?id=1200