|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/protocol.sgml,v 1.67 2007/01/31 20:56:18 momjian Exp $ --> |
|
|
|
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/protocol.sgml,v 1.68 2007/07/18 12:00:47 mha Exp $ --> |
|
|
|
|
|
|
|
|
|
<chapter id="protocol"> |
|
|
|
|
<title>Frontend/Backend Protocol</title> |
|
|
|
|
@ -230,11 +230,11 @@ |
|
|
|
|
The server then sends an appropriate authentication request message, |
|
|
|
|
to which the frontend must reply with an appropriate authentication |
|
|
|
|
response message (such as a password). |
|
|
|
|
In principle the authentication request/response cycle could require |
|
|
|
|
multiple iterations, but none of the present authentication methods |
|
|
|
|
use more than one request and response. In some methods, no response |
|
|
|
|
For all authentication methods except GSSAPI, there is at most |
|
|
|
|
one request and one response. In some methods, no response |
|
|
|
|
at all is needed from the frontend, and so no authentication request |
|
|
|
|
occurs. |
|
|
|
|
occurs. For GSSAPI, multiple iterations of packets may be needed to |
|
|
|
|
complete the authentication. |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
@ -332,6 +332,34 @@ |
|
|
|
|
</listitem> |
|
|
|
|
</varlistentry> |
|
|
|
|
|
|
|
|
|
<varlistentry> |
|
|
|
|
<term>AuthenticationGSS</term> |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
The frontend must now initiate a GSSAPI negotiation. The frontend |
|
|
|
|
will send a PasswordMessage with the first part of the GSSAPI |
|
|
|
|
data stream in response to this. If further messages are needed, |
|
|
|
|
the server will respond with AuthenticationGSSContinue. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
</varlistentry> |
|
|
|
|
|
|
|
|
|
<varlistentry> |
|
|
|
|
<term>AuthenticationGSSContinue</term> |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
This message contains the response data from the previous step |
|
|
|
|
of GSSAPI negotiation (AuthenticationGSS or a previous |
|
|
|
|
AuthenticationGSSContinue). If the GSSAPI data in this message |
|
|
|
|
indicates more data is needed to complete the authentication, |
|
|
|
|
the frontend must send this data as another PasswordMessage. If |
|
|
|
|
GSSAPI authentication is completed by this message, the server |
|
|
|
|
will also send AuthenticationOk to indicate successful authentication |
|
|
|
|
or ErrorResponse to indicate failure. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
</varlistentry> |
|
|
|
|
|
|
|
|
|
</variablelist> |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
@ -1633,6 +1661,106 @@ AuthenticationSCMCredential (B) |
|
|
|
|
</varlistentry> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<varlistentry> |
|
|
|
|
<term> |
|
|
|
|
AuthenticationGSS (B) |
|
|
|
|
</term> |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
|
|
|
|
|
<variablelist> |
|
|
|
|
<varlistentry> |
|
|
|
|
<term> |
|
|
|
|
Byte1('R') |
|
|
|
|
</term> |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Identifies the message as an authentication request. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
</varlistentry> |
|
|
|
|
<varlistentry> |
|
|
|
|
<term> |
|
|
|
|
Int32(8) |
|
|
|
|
</term> |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Length of message contents in bytes, including self. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
</varlistentry> |
|
|
|
|
<varlistentry> |
|
|
|
|
<term> |
|
|
|
|
Int32(7) |
|
|
|
|
</term> |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Specifies that GSSAPI authentication is required. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
</varlistentry> |
|
|
|
|
</variablelist> |
|
|
|
|
|
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
</varlistentry> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<varlistentry> |
|
|
|
|
<term> |
|
|
|
|
AuthenticationGSSContinue (B) |
|
|
|
|
</term> |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
|
|
|
|
|
<variablelist> |
|
|
|
|
<varlistentry> |
|
|
|
|
<term> |
|
|
|
|
Byte1('R') |
|
|
|
|
</term> |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Identifies the message as an authentication request. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
</varlistentry> |
|
|
|
|
<varlistentry> |
|
|
|
|
<term> |
|
|
|
|
Int32 |
|
|
|
|
</term> |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Length of message contents in bytes, including self. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
</varlistentry> |
|
|
|
|
<varlistentry> |
|
|
|
|
<term> |
|
|
|
|
Int32(8) |
|
|
|
|
</term> |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Specifies that this message contains GSSAPI data. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
</varlistentry> |
|
|
|
|
<varlistentry> |
|
|
|
|
<term> |
|
|
|
|
Byte<replaceable>n</replaceable> |
|
|
|
|
</term> |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
GSSAPI authentication data. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
</varlistentry> |
|
|
|
|
</variablelist> |
|
|
|
|
|
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
</varlistentry> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<varlistentry> |
|
|
|
|
<term> |
|
|
|
|
BackendKeyData (B) |
|
|
|
|
@ -3317,7 +3445,8 @@ PasswordMessage (F) |
|
|
|
|
</term> |
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Identifies the message as a password response. |
|
|
|
|
Identifies the message as a password response. Note that |
|
|
|
|
this is also used by GSSAPI response messages. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
</varlistentry> |
|
|
|
|
|