#SSPIは、シングルサインオンで安全な認証を行うためのWindowsの技術です。PostgreSQLは、negotiateモードにおいてSSPIを使用します。これは、可能な場合はKerberosを使用し、他の場合については自動的にNTLMを使用することを意味しています。SSPIとGSSAPIは、サーバ、クライアントとして相互運用します。SSPIクライアントはGSSAPIサーバに対して認証できます。WindowsクライアントとサーバではSSPIを、WindowsでないプラットフォームではGSSAPIを使うことを勧めます。SSPIは、GSSAPIと同じように動作します。詳細は21.6を参照してください。次の設定オプションはSSPIのためにサポートされています。include_realm0に設定されている場合は、認証されたユーザプリンシパルからのrealm名が、ユーザ名マッピング(21.2)で渡されるシステムユーザ名から外されています。krb_realmも一緒に使われていない限り、これは複数realm環境で安全ではありませんので、非推奨であり、主に後方互換性のために利用できます。include_realmをデフォルト(1)にしたまま、プリンシパル名をPostgreSQLユーザ名に変換するためにpg_ident.confで明示的なマッピングを指定することをお薦めします。compat_realm1に設定されている場合は、(NetBIOS名としても知られている)ドメインのSAM互換名がinclude_realmオプションのために使用されます。これはデフォルトの動作です。0に設定されている場合は、ケルベロスユーザプリンシパル名からの真のrealm名が使用されます。ドメインアカウント(これはドメインメンバシステムの仮想サービスアカウントを含みます)にて実行されているサーバで、SSPIで認証されているすべてのクライアントがドメインアカウントを使用している場合を除き、このオプションを無効にしないでください。なくば認証は失敗します。upn_usernamecompat_realmと共にこのオプションが有効の場合、認証にはケルベロスUPNからユーザ名が使用されます。無効(デフォルト)である場合は、SAM互換ユーザ名が使用されます。デフォルトでは、これらの2つのユーザ名は新しいユーザアカウントでは同じものとなります。明示的なユーザ名が指定されない場合、libpqはSAM互換名を使用することに注意してください。libpqもしくはlibpqを基礎としたドライバを使用する場合は、このオプションを無効のままにするか、明示的なユーザ名を接続文字列にて指定してください。mapシステムとデータベースユーザ名の間のマッピングを許可します。詳細は21.2を参照してください。SSPI/Kerberosプリンシパルusername@EXAMPLE.COM(もしくは、あまり一般的ではありませんがusername/hostbased@EXAMPLE.COM)に対しては、もしinclude_realmが0に設定されていない限り、マッピングに使われるユーザ名はusername@EXAMPLE.COM(もしくはusername/hostbased@EXAMPLE.COM)です。0に設定されている場合には、username(もしくはusername/hostbased)がマッピング時のシステムユーザ名です。krb_realmrealmをユーザプリンシパル名に一致するように設定します。realmのユーザのみが受け付けられます。どのようなrealmのユーザも接続可能で、ユーザ名マッピングが設定されていれば、どれでも影響を受けます。