diff xml/ru/docs/mail/ngx_mail_auth_http_module.xml @ 630:a235ce0f8eef

Initial mail proxy server documentation in Russian. Obtained from Anton Yuzhaninov.
author Ruslan Ermilov <ru@nginx.com>
date Wed, 15 Aug 2012 07:56:36 +0000
parents
children 179336bb5c03
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/ru/docs/mail/ngx_mail_auth_http_module.xml	Wed Aug 15 07:56:36 2012 +0000
@@ -0,0 +1,160 @@
+<?xml version="1.0"?>
+
+<!--
+  Copyright (C) Anton Yuzhaninov 2006,2007
+  Copyright (C) Nginx, Inc.
+  -->
+
+<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
+
+<module name="Модуль ngx_mail_auth_http_module"
+        link="/ru/docs/mail/ngx_mail_auth_http_module.html"
+        lang="ru"
+        rev="1">
+
+<section id="directives" name="Директивы">
+
+<directive name="auth_http">
+<syntax><value>URL</value></syntax>
+<default/>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Задаёт URL HTTP-сервера авторизации.
+Протокол описан ниже.
+</para>
+
+</directive>
+
+
+<directive name="auth_http_header">
+<syntax><value>заголовок</value> <value>значение</value></syntax>
+<default/>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Позволяет добавить указанный заголовок к запросам на сервер авторизации.
+Можно использовать в качестве shared secret для проверки,
+что запрос поступил от nginx.
+Например:
+<example>
+auth_http_header X-Auth-Key "secret_string";
+</example>
+</para>
+
+</directive>
+
+
+<directive name="auth_http_timeout">
+<syntax><value>время</value></syntax>
+<default>60s</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+</para>
+
+</directive>
+
+</section>
+
+
+<section id="protocol" name="Протокол">
+
+<para>
+Для общения с сервером авторизации используется HTTP.
+Данные в теле ответа игнорируются, информация передаётся только в заголовках.
+</para>
+
+<para>
+Примеры запросов и ответов:
+</para>
+
+<para>
+Запрос:
+<example>
+GET /auth HTTP/1.0
+Host: localhost
+Auth-Method: plain # plain или apop или cram-md5
+Auth-User: user
+Auth-Pass: password
+Auth-Protocol: imap # imap, pop3 или smtp
+Auth-Login-Attempt: 1 # какая по счёту попытка в рамках одной сессии
+Client-IP: 192.168.1.1
+</example>
+Хороший ответ:
+<example>
+HTTP/1.0 200 OK # эта строка игнорируется
+Auth-Status: OK
+Auth-Server: 10.1.1.1
+Auth-Port: 143
+</example>
+Плохой ответ:
+<example>
+HTTP/1.0 200 OK # эта строка игнорируется
+Auth-Status: Invalid login or password
+Auth-Wait: 3 # подождать три секунды перед выдачей ошибки клиенту
+</example>
+</para>
+
+<para>
+Если заголовка <header>Auth-Wait</header> нет,
+то после выдачи ошибки соединение будет закрыто.
+В текущей реализации на каждую попытку авторизации выделяется память,
+которая освобождается только при завершении сессии.
+Поэтому число неудачных попыток авторизации в рамках одной сессии
+должно быть ограничено — после 10-20 попыток (см. заголовок
+<header>Auth-Login-Attempt</header>) сервер должен выдать ответ
+без заголовка <header>Auth-Wait</header>.
+</para>
+
+<para>
+При использовании APOP или CRAM-MD5 запрос-ответ будут выглядеть так:
+<example>
+GET /auth HTTP/1.0
+Host: localhost
+Auth-Method: apop
+Auth-User: user
+Auth-Salt: &lt;238188073.1163692009@mail.example.com&gt;
+Auth-Pass: auth_response
+Auth-Protocol: imap
+Auth-Login-Attempt: 1 # какая по счёту попытка в рамках одной сессии
+Client-IP: 192.168.1.1
+</example>
+Хороший ответ:
+<example>
+HTTP/1.0 200 OK # эта строка игнорируется
+Auth-Status: OK
+Auth-Server: 10.1.1.1
+Auth-Port: 143
+Auth-Pass: plain-text-pass
+</example>
+</para>
+
+<para>
+Для SMTP в ответе дополнительно учитывается заголовок
+<header>Auth-Error-Code</header> — если он есть,
+то используется как код ответа в случае ошибки.
+Если нет, то по умолчанию к <header>Auth-Status</header>
+будет добавлен код 535 5.7.0.
+</para>
+
+<para>
+Например, если от сервера авторизации будет получен ответ:
+<example>
+HTTP/1.0 200 OK
+Auth-Status: Temporary server problem, try again later
+Auth-Error-Code: 451 4.3.0
+Auth-Wait: 3
+</example>
+то по SMTP клиенту будет выдана ошибка
+<example>
+451 4.3.0 Temporary server problem, try again later
+</example>
+</para>
+
+</section>
+
+</module>