SSPI é uma tecnologia do Windows para autenticação segura com login único (single sign-on). O PostgreSQL irá usar o SSPI no modo de negociação, que irá usar o Kerberos quando possível e irá recorrer automaticamente ao NTLM em outros casos. SSPI e GSSAPI interoperam como clientes e servidores; por exemplo, um cliente SSPI pode autenticar-se em um servidor GSSAPI. Recomenda-se o uso do SSPI em clientes e servidores Windows e GSSAPI em plataformas não-Windows.
Ao usar a autenticação do Kerberos, o SSPI funciona da mesma forma que o GSSAPI; veja Autenticação GSSAPI para obter detalhes.
As seguintes opções de autenticação têm suporte pelo método de autenticação SSPI:
include_realm
Se definido como 0, o nome do domínio do principal do usuário
autenticado é removido antes de ser passado pelo mapeamento de
nome de usuário (veja Mapas de nome de usuário).
Isto é desencorajado, estando disponível principalmente para
manter a compatibilidade com versões anteriores, porque não
é seguro em ambientes multi-domínio, a menos que também seja
usado krb_realm.
Recomenda-se deixar include_realm definido
com o valor padrão (1), e fornecer um mapeamento explícito no
arquivo pg_ident.conf para converter nomes
de principais em nomes de usuário do
PostgreSQL.
compat_realm
Se definido como 1, o nome compatível com SAM do domínio
(também conhecido como nome NetBIOS) é usado para a opção
include_realm.
Este é o padrão.
Se definido como 0, é usado o nome verdadeiro do domínio do
nome principal do usuário do Kerberos.
Não se deve desativar esta opção, a menos que o servidor seja executado em uma conta de domínio (isto inclui contas de serviço virtual em um sistema de membro de domínio), e todos os clientes autenticados por meio do SSPI também estão usando contas de domínio, ou a autenticação irá falhar.
upn_username
Se esta opção for ativada junto com compat_realm,
o nome UPN (User Principal Name)
de usuário do Kerberos será usado para
autenticação.
Se estiver inativa (o padrão), será usado o nome de usuário
compatível com SAM.
Por padrão, estes dois nomes são idênticos para novas contas
de usuário.
Note que a libpq usa o nome compatível com SAM, se não for especificado nenhum nome de usuário explícito. Se for usada a libpq, ou um driver baseado nela, deve-se deixar esta opção inativa, ou especificar explicitamente o nome do usuário na cadeia de caracteres de conexão.
map
Permite o mapeamento dos principais dos clientes para nomes
de usuário do banco de dados.
Veja Mapas de nome de usuário para obter detalhes.
Para os principais de GSSAPI/Kerberos,
tal como username@EXAMPLE.COM
(ou, menos comumente,
username/hostbased@EXAMPLE.COM),
o nome de usuário usado para mapeamento é
username@EXAMPLE.COM
(ou username/hostbased@EXAMPLE.COM,
respectivamente), a menos que include_realm
tenha sido definido como 0, caso em que username
(ou username/hostbased) é o que é visto como
o nome de usuário do sistema durante o mapeamento.
krb_realmDefine o domínio para corresponder aos nomes principais do usuário. Se este parâmetro estiver definido, apenas os usuários desse domínio serão aceitos. Se não estiver definido, os usuários de qualquer domínio podem se conectar, sujeito a qualquer mapeamento de nome de usuário realizado.