|
1 |
| -<!-- $PostgreSQL: pgsql/doc/src/sgml/protocol.sgml,v 1.67 2007/01/31 20:56:18 momjian Exp $ --> |
| 1 | +<!-- $PostgreSQL: pgsql/doc/src/sgml/protocol.sgml,v 1.68 2007/07/18 12:00:47 mha Exp $ --> |
2 | 2 |
|
3 | 3 | <chapter id="protocol">
|
4 | 4 | <title>Frontend/Backend Protocol</title>
|
|
230 | 230 | The server then sends an appropriate authentication request message,
|
231 | 231 | to which the frontend must reply with an appropriate authentication
|
232 | 232 | response message (such as a password).
|
233 |
| - In principle the authentication request/response cycle could require |
234 |
| - multiple iterations, but none of the present authentication methods |
235 |
| - use more than one request and response. In some methods, no response |
| 233 | + For all authentication methods except GSSAPI, there is at most |
| 234 | + one request and one response. In some methods, no response |
236 | 235 | at all is needed from the frontend, and so no authentication request
|
237 |
| - occurs. |
| 236 | + occurs. For GSSAPI, multiple iterations of packets may be needed to |
| 237 | + complete the authentication. |
238 | 238 | </para>
|
239 | 239 |
|
240 | 240 | <para>
|
|
332 | 332 | </listitem>
|
333 | 333 | </varlistentry>
|
334 | 334 |
|
| 335 | + <varlistentry> |
| 336 | + <term>AuthenticationGSS</term> |
| 337 | + <listitem> |
| 338 | + <para> |
| 339 | + The frontend must now initiate a GSSAPI negotiation. The frontend |
| 340 | + will send a PasswordMessage with the first part of the GSSAPI |
| 341 | + data stream in response to this. If further messages are needed, |
| 342 | + the server will respond with AuthenticationGSSContinue. |
| 343 | + </para> |
| 344 | + </listitem> |
| 345 | + </varlistentry> |
| 346 | + |
| 347 | + <varlistentry> |
| 348 | + <term>AuthenticationGSSContinue</term> |
| 349 | + <listitem> |
| 350 | + <para> |
| 351 | + This message contains the response data from the previous step |
| 352 | + of GSSAPI negotiation (AuthenticationGSS or a previous |
| 353 | + AuthenticationGSSContinue). If the GSSAPI data in this message |
| 354 | + indicates more data is needed to complete the authentication, |
| 355 | + the frontend must send this data as another PasswordMessage. If |
| 356 | + GSSAPI authentication is completed by this message, the server |
| 357 | + will also send AuthenticationOk to indicate successful authentication |
| 358 | + or ErrorResponse to indicate failure. |
| 359 | + </para> |
| 360 | + </listitem> |
| 361 | + </varlistentry> |
| 362 | + |
335 | 363 | </variablelist>
|
336 | 364 | </para>
|
337 | 365 |
|
@@ -1633,6 +1661,106 @@ AuthenticationSCMCredential (B)
|
1633 | 1661 | </varlistentry>
|
1634 | 1662 |
|
1635 | 1663 |
|
| 1664 | +<varlistentry> |
| 1665 | +<term> |
| 1666 | +AuthenticationGSS (B) |
| 1667 | +</term> |
| 1668 | +<listitem> |
| 1669 | +<para> |
| 1670 | + |
| 1671 | +<variablelist> |
| 1672 | +<varlistentry> |
| 1673 | +<term> |
| 1674 | + Byte1('R') |
| 1675 | +</term> |
| 1676 | +<listitem> |
| 1677 | +<para> |
| 1678 | + Identifies the message as an authentication request. |
| 1679 | +</para> |
| 1680 | +</listitem> |
| 1681 | +</varlistentry> |
| 1682 | +<varlistentry> |
| 1683 | +<term> |
| 1684 | + Int32(8) |
| 1685 | +</term> |
| 1686 | +<listitem> |
| 1687 | +<para> |
| 1688 | + Length of message contents in bytes, including self. |
| 1689 | +</para> |
| 1690 | +</listitem> |
| 1691 | +</varlistentry> |
| 1692 | +<varlistentry> |
| 1693 | +<term> |
| 1694 | + Int32(7) |
| 1695 | +</term> |
| 1696 | +<listitem> |
| 1697 | +<para> |
| 1698 | + Specifies that GSSAPI authentication is required. |
| 1699 | +</para> |
| 1700 | +</listitem> |
| 1701 | +</varlistentry> |
| 1702 | +</variablelist> |
| 1703 | + |
| 1704 | +</para> |
| 1705 | +</listitem> |
| 1706 | +</varlistentry> |
| 1707 | + |
| 1708 | + |
| 1709 | +<varlistentry> |
| 1710 | +<term> |
| 1711 | +AuthenticationGSSContinue (B) |
| 1712 | +</term> |
| 1713 | +<listitem> |
| 1714 | +<para> |
| 1715 | + |
| 1716 | +<variablelist> |
| 1717 | +<varlistentry> |
| 1718 | +<term> |
| 1719 | + Byte1('R') |
| 1720 | +</term> |
| 1721 | +<listitem> |
| 1722 | +<para> |
| 1723 | + Identifies the message as an authentication request. |
| 1724 | +</para> |
| 1725 | +</listitem> |
| 1726 | +</varlistentry> |
| 1727 | +<varlistentry> |
| 1728 | +<term> |
| 1729 | + Int32 |
| 1730 | +</term> |
| 1731 | +<listitem> |
| 1732 | +<para> |
| 1733 | + Length of message contents in bytes, including self. |
| 1734 | +</para> |
| 1735 | +</listitem> |
| 1736 | +</varlistentry> |
| 1737 | +<varlistentry> |
| 1738 | +<term> |
| 1739 | + Int32(8) |
| 1740 | +</term> |
| 1741 | +<listitem> |
| 1742 | +<para> |
| 1743 | + Specifies that this message contains GSSAPI data. |
| 1744 | +</para> |
| 1745 | +</listitem> |
| 1746 | +</varlistentry> |
| 1747 | +<varlistentry> |
| 1748 | +<term> |
| 1749 | + Byte<replaceable>n</replaceable> |
| 1750 | +</term> |
| 1751 | +<listitem> |
| 1752 | +<para> |
| 1753 | + GSSAPI authentication data. |
| 1754 | +</para> |
| 1755 | +</listitem> |
| 1756 | +</varlistentry> |
| 1757 | +</variablelist> |
| 1758 | + |
| 1759 | +</para> |
| 1760 | +</listitem> |
| 1761 | +</varlistentry> |
| 1762 | + |
| 1763 | + |
1636 | 1764 | <varlistentry>
|
1637 | 1765 | <term>
|
1638 | 1766 | BackendKeyData (B)
|
@@ -3317,7 +3445,8 @@ PasswordMessage (F)
|
3317 | 3445 | </term>
|
3318 | 3446 | <listitem>
|
3319 | 3447 | <para>
|
3320 |
| - Identifies the message as a password response. |
| 3448 | + Identifies the message as a password response. Note that |
| 3449 | + this is also used by GSSAPI response messages. |
3321 | 3450 | </para>
|
3322 | 3451 | </listitem>
|
3323 | 3452 | </varlistentry>
|
|
0 commit comments