Страница 1 из 1

Exim&dovecot + многоступенчатая авторизация MySQL+md5 hash

Добавлено: 2011-11-09 8:13:44
Raven_kg
Добрый день камрады. Встала интересная задачка - прикрутить почтарь к одному крупному порталу. Вся проблема в том, что на портале ничего менять нельзя, а почта должна вязаться к существующим userid и паролям. Пароли лежат в md5 хеше, почтовые адреса и мэйлбоксы будут именоваться по userid - например 1@example.com, для человекоподобности предполагается использовать таблицу mail следующего вида:

Код: Выделить всё

| id | alias | domain | mailbox | quota |
Теперь самая большая проблема - по логике авторизация должна происходить следующим образом - user@example.com --> запрос в таблицу mail, выборка id и mailbox по полям alias и domain --> запрос в таблицу ban, проверка наличия в ней id (если есть - идите лесом) --> запрос в таблицу users, выборка из поля password по userid --> авторизация exim/divecot

Собственно вопрос - КАК?! Вообще реален ли такой изврат, можно ли заставить так работать exim и dovecot или же хотя бы с помощью sasl заставить это работать...

Re: Exim&dovecot + многоступенчатая авторизация MySQL+md5 ha

Добавлено: 2011-11-10 9:37:42
mak_v_
сессия аутентификаторов exim

Код: Выделить всё

auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup mysql{SELECT decrypt FROM users \
                        WHERE login = '${quote_mysql:${local_part:$1}}' \
                        AND domain = '${quote_mysql:${domain:$1}}' \
                        AND status = '1'}{$value}fail}
server_set_id = $1
аутентификатор dovecot-sql.conf

Код: Выделить всё

driver = mysql
connect = host=localhost dbname=MAILDB user=exim_admin password=mailsuperpassword
default_pass_scheme = CRYPT
password_query = SELECT password FROM users WHERE login = '%n' AND domain = '%d' AND status = '1'
user_query = SELECT uid, gid FROM users WHERE login = '%n' AND domain = '%d
где-то так

Re: Exim&dovecot + многоступенчатая авторизация MySQL+md5 ha

Добавлено: 2011-11-10 10:04:22
mak_v_
читать как секция - описька