Код для этого аутентификатора был предоставлен 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, в которой осуществляется сервер.
Имя
Использование
Тип
Дефолтовое значение
server_service
cyrus_sasl
string
smtp
Это - сервис SASL, в области которого осуществлется сервер.
Для прямых случаев, вы не должны устанавливать какую-либо из частных опций аутентификатора. Всё что вам необходимо сделать - задать соответствующий механизм как публичное имя. Таким образом, если у вас есть билиотека SASL, поддерживающая CRAM-MD5 и PLAIN, вы могли бы обладать двумя аутентификаторами, как показано далее:
Cyrus SASL действительно осуществляет аутентификационный метод LOGIN, несмотря на то, что это - нестандартный метод. По умолчанию, это отключено в исходных кодах, но присутствует во многих двоичных дистрибутивах.