20.7. Autenticación SSPI #

SSPI es una tecnología de Windows para la autenticación segura con inicio de sesión único. PostgreSQL utilizará SSPI en modo negotiate, que utilizará Kerberos cuando sea posible y volverá automáticamente a NTLM en otros casos. SSPI y GSSAPI interoperan como clientes y servidores; por ejemplo, un cliente SSPI puede autenticarse ante un servidor GSSAPI. Se recomienda utilizar SSPI en clientes y servidores Windows y GSSAPI en plataformas que no sean Windows.

Cuando se utiliza la autenticación de Kerberos, SSPI funciona del mismo modo que lo hace GSSAPI; consulta la sección Section 20.6 para más detalles.

Se admiten las siguientes opciones de configuración para SSPI:

include_realm

Si se configura como 0, el nombre del reino del principal de usuario autenticado se elimina antes de pasarse a través del mapa de nombres de usuario (Section 20.2). Esto se desaconseja y está disponible principalmente por compatibilidad con versiones anteriores, ya que no es seguro en entornos multirreino a menos que también se utilice krb_realm. Se recomienda dejar include_realm configurado con el valor por defecto (1) y proporcionar una asignación explícita en pg_ident.conf para convertir los nombres de principal en nombres de usuario de PostgreSQL.

compat_realm

Si se configura como 1, se utiliza el nombre compatible con SAM del dominio (también conocido como nombre NetBIOS) para la opción include_realm. Este es el valor por defecto. Si se configura como 0, se utiliza el nombre de reino verdadero del nombre de principal del usuario Kerberos.

No desactives esta opción a menos que tu servidor se ejecute bajo una cuenta de dominio (esto incluye cuentas de servicio virtuales en un sistema miembro de dominio) y todos los clientes que se autentican a través de SSPI también estén utilizando cuentas de dominio; de lo contrario, la autenticación fallará.

upn_username

Si esta opción se habilita junto con compat_realm, el nombre de usuario del UPN de Kerberos se utiliza para la autenticación. Si está desactivada (el valor por defecto), se utiliza el nombre de usuario compatible con SAM. Por defecto, estos dos nombres son idénticos para las nuevas cuentas de usuario.

Ten en cuenta que libpq utiliza el nombre compatible con SAM si no se especifica ningún nombre de usuario explícito. Si utilizas libpq o un controlador basado en él, debes dejar esta opción desactivada o especificar explícitamente el nombre de usuario en la cadena de conexión.

map

Permite la asignación entre nombres de usuario del sistema y de la base de datos. Consulta la sección Section 20.2 para más detalles. Para un principal de SSPI/Kerberos, como [email protected] (o, menos comúnmente, username/[email protected]), el nombre de usuario utilizado para la asignación es [email protected] (o username/[email protected], respectivamente), a menos que include_realm se haya configurado como 0, en cuyo caso username (o username/hostbased) es lo que se ve como nombre de usuario del sistema al realizar la asignación.

krb_realm

Establece el reino con el que se compararán los nombres de los principales de los usuarios. Si se configura este parámetro, solo se aceptarán los usuarios de ese reino. Si no se configura, pueden conectarse usuarios de cualquier reino, sujetos a la asignación de nombres de usuario que se realice.