Перевод выполнен Алексеем Паутовым в рамках
некоммерческого проекта RussianLDP
(http://www.rldp.ru/). Именно на этом сайте
и надлежит искать новые версии, если таковые будут.
37. Аутентификатор spa
Аутентификатор spa предоставляет поддержку клиента
для механизма Microsoft's Secure Password Authentication, также известного
как NTLM (NT LanMan). Код для клиентской стороны этого аутентификатора был
внесён Marc Prud'hommeaux, большая его часть взята из проекта Samba
(http://www.samba.org).
Впоследствии Tom Kistner внёс код для сервера.
Механизм работает следующим образом:
- После того, как была принята команда AUTH, клиент посылает
аутентификационный запрос SPA, основанный на имени
пользователя и, опционально, домене.
- Сервер делает обратный вызов.
- Клиент строит ответный вызов, использующий пользовательский пароль,
и шлёт его на сервер, который принимает или отклоняет его.
Для защиты пароля при передаче используется шифрование.
37.1. Использование spa как сервера
Аутентификатор spa обладает лишь одной серверной опцией:
Имя | Использование |
Тип | Значение по умолчанию |
server_password | spa | string† |
не задана |
Эта опция раскрывается, результатом должен быть
пароль в открытом виде для аутентификации пользователя, чьё имя в данной
точке находится в $auth1. Для совместимости с предыдущими релизами exim,
имя пользователя также помещается в $1. Однако, в настоящее время
использование этой переменной для этой цели не приветствуется, поскольку
может привести к недоразумениям в раскрытиях строк, также использующих
числовые переменные для иных целей. Например:
spa:
driver = spa
public_name = NTLM
server_password = ${lookup{$auth1}lsearch{/etc/exim/spa_clearpass} \
{$value}fail}
|
Если раскрытие принудительно
неудачно, аутнетификация неуспешна. Любые другие ошибки раскрытия вызывают
возврат кода временной ошибки.
37.2. Использование spa как клиента
Аутентификатор spa обладает следующими клиентскими опциями:
Имя | Использование |
Тип | Значение по умолчанию |
client_domain | spa | string† |
не задана |
Эта опция определяет опциональный домен для аутентификации.
Имя | Использование |
Тип | Значение по умолчанию |
client_password | spa | string† |
не задана |
Эта опция определяет пользовательский пароль и
должна быть задана.
Имя | Использование |
Тип | Значение по умолчанию |
client_username | spa | string† |
не задана |
Эта опция определяет имя пользователя
и должна быть задана. Вот пример конфигурации этого аутентификатора для
использования с почтовыми серверами msn.com:
msn:
driver = spa
public_name = MSN
client_username = msn/msn_username
client_password = msn_plaintext_password
client_domain = DOMAIN_OR_UNSET
|
37.3. Аутентификатор Dovecot
Этот аутентификатор является интерфейсом к средству аутентификации сервера
Dovecot POP/IMAP, который может поддерживать много методов аутентификации.
Если Вы используете Dovecot, чтобы аутентифицировать клиенты POP/IMAP,
могло бы быть полезно использовать те же самые механизмы для аутентификации
SMTP. Это только аутентификатор сервера. Есть только одна опция:
Имя | Использование |
Тип | Значение по умолчанию |
server_socket | dovecot | string |
не задана |
Эта опция должна определить сокет, который является интерфейсом
к аутентификации dovecot. Опция public_name должна определить механизм
аутентификации, который dovecot поддерживает. У Вас может быть несколько
аутентификаторов для различных механизмов. Например:
dovecot_plain:
driver = dovecot
public_name = PLAIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth2
dovecot_ntlm:
driver = dovecot
public_name = NTLM
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
|
Если соединение SMTP шифруется, или если $sender_host_address равен
$received_ip_address (то есть, соединение локально), опцию secured
передают в команде аутентификации dovecot. Если для соединения TLS клиентский
сертификат был проверен, передают опцию valid-client-cert.
Когда аутентификация успешно выполняется, идентификационные данные
пользователя, который аутентифицировался, помещаются в $auth1.
|