20.7. Autenticação SSPI #

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_realm

Define 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.