Mercurial > hg > nginx-site
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: <238188073.1163692009@mail.example.com> | |
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> |