comparison 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
comparison
equal deleted inserted replaced
629:7e4805858796 630:a235ce0f8eef
1 <?xml version="1.0"?>
2
3 <!--
4 Copyright (C) Anton Yuzhaninov 2006,2007
5 Copyright (C) Nginx, Inc.
6 -->
7
8 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
9
10 <module name="Модуль ngx_mail_auth_http_module"
11 link="/ru/docs/mail/ngx_mail_auth_http_module.html"
12 lang="ru"
13 rev="1">
14
15 <section id="directives" name="Директивы">
16
17 <directive name="auth_http">
18 <syntax><value>URL</value></syntax>
19 <default/>
20 <context>mail</context>
21 <context>server</context>
22
23 <para>
24 Задаёт URL HTTP-сервера авторизации.
25 Протокол описан ниже.
26 </para>
27
28 </directive>
29
30
31 <directive name="auth_http_header">
32 <syntax><value>заголовок</value> <value>значение</value></syntax>
33 <default/>
34 <context>mail</context>
35 <context>server</context>
36
37 <para>
38 Позволяет добавить указанный заголовок к запросам на сервер авторизации.
39 Можно использовать в качестве shared secret для проверки,
40 что запрос поступил от nginx.
41 Например:
42 <example>
43 auth_http_header X-Auth-Key "secret_string";
44 </example>
45 </para>
46
47 </directive>
48
49
50 <directive name="auth_http_timeout">
51 <syntax><value>время</value></syntax>
52 <default>60s</default>
53 <context>mail</context>
54 <context>server</context>
55
56 <para>
57 </para>
58
59 </directive>
60
61 </section>
62
63
64 <section id="protocol" name="Протокол">
65
66 <para>
67 Для общения с сервером авторизации используется HTTP.
68 Данные в теле ответа игнорируются, информация передаётся только в заголовках.
69 </para>
70
71 <para>
72 Примеры запросов и ответов:
73 </para>
74
75 <para>
76 Запрос:
77 <example>
78 GET /auth HTTP/1.0
79 Host: localhost
80 Auth-Method: plain # plain или apop или cram-md5
81 Auth-User: user
82 Auth-Pass: password
83 Auth-Protocol: imap # imap, pop3 или smtp
84 Auth-Login-Attempt: 1 # какая по счёту попытка в рамках одной сессии
85 Client-IP: 192.168.1.1
86 </example>
87 Хороший ответ:
88 <example>
89 HTTP/1.0 200 OK # эта строка игнорируется
90 Auth-Status: OK
91 Auth-Server: 10.1.1.1
92 Auth-Port: 143
93 </example>
94 Плохой ответ:
95 <example>
96 HTTP/1.0 200 OK # эта строка игнорируется
97 Auth-Status: Invalid login or password
98 Auth-Wait: 3 # подождать три секунды перед выдачей ошибки клиенту
99 </example>
100 </para>
101
102 <para>
103 Если заголовка <header>Auth-Wait</header> нет,
104 то после выдачи ошибки соединение будет закрыто.
105 В текущей реализации на каждую попытку авторизации выделяется память,
106 которая освобождается только при завершении сессии.
107 Поэтому число неудачных попыток авторизации в рамках одной сессии
108 должно быть ограничено — после 10-20 попыток (см. заголовок
109 <header>Auth-Login-Attempt</header>) сервер должен выдать ответ
110 без заголовка <header>Auth-Wait</header>.
111 </para>
112
113 <para>
114 При использовании APOP или CRAM-MD5 запрос-ответ будут выглядеть так:
115 <example>
116 GET /auth HTTP/1.0
117 Host: localhost
118 Auth-Method: apop
119 Auth-User: user
120 Auth-Salt: &lt;238188073.1163692009@mail.example.com&gt;
121 Auth-Pass: auth_response
122 Auth-Protocol: imap
123 Auth-Login-Attempt: 1 # какая по счёту попытка в рамках одной сессии
124 Client-IP: 192.168.1.1
125 </example>
126 Хороший ответ:
127 <example>
128 HTTP/1.0 200 OK # эта строка игнорируется
129 Auth-Status: OK
130 Auth-Server: 10.1.1.1
131 Auth-Port: 143
132 Auth-Pass: plain-text-pass
133 </example>
134 </para>
135
136 <para>
137 Для SMTP в ответе дополнительно учитывается заголовок
138 <header>Auth-Error-Code</header> — если он есть,
139 то используется как код ответа в случае ошибки.
140 Если нет, то по умолчанию к <header>Auth-Status</header>
141 будет добавлен код 535 5.7.0.
142 </para>
143
144 <para>
145 Например, если от сервера авторизации будет получен ответ:
146 <example>
147 HTTP/1.0 200 OK
148 Auth-Status: Temporary server problem, try again later
149 Auth-Error-Code: 451 4.3.0
150 Auth-Wait: 3
151 </example>
152 то по SMTP клиенту будет выдана ошибка
153 <example>
154 451 4.3.0 Temporary server problem, try again later
155 </example>
156 </para>
157
158 </section>
159
160 </module>