Descripción general de Active Directory

Selecciona una versión de la documentación:

En esta página, se describe cómo PostgreSQL se integra con Active Directory en AlloyDB Omni a través de la interfaz de programación de aplicaciones (API) de Generic Security Services (GSSAPI) y se presentan conceptos clave de Kerberos. Kerberos es el protocolo de autenticación que impulsa Active Directory.

Active Directory es un servicio de directorio desarrollado por Microsoft para redes de dominio de Windows. Active Directory es un sistema centralizado y estandarizado que automatiza la administración de redes de datos del usuario, la seguridad y los recursos distribuidos. Este servicio de directorio proporciona un único punto de administración para las cuentas de usuario, los grupos y otros objetos de red. Una función clave de Active Directory es la autenticación, que confirma la identidad y la autorización de un usuario, y le otorga acceso a recursos específicos en la red.

Componentes de Active Directory

Un reino es el dominio administrativo para la autenticación de Kerberos. En el contexto de Active Directory, un dominio es equivalente a un dominio de Active Directory. Los dominios representan un grupo lógico de usuarios, computadoras y servicios que comparten una base de datos de autenticación común. Cuando configuras Kerberos, debes especificar el dominio al que pertenecen tus clientes y servicios. Un dominio es una versión en mayúsculas del nombre de dominio. Por ejemplo, si el dominio es ad.example.com, el dominio es AD.EXAMPLE.COM.

El centro de distribución de claves (KDC) es un servicio principal de Kerberos que se ejecuta en cada controlador de dominio de Active Directory. El KDC tiene las siguientes funciones principales:

  • Servicio de autenticación (AS): Verifica la identidad de un usuario en el acceso inicial, por ejemplo, cuando accedes a Windows, y emite un vale de concesión de vales (TGT).
  • Servicio de otorgamiento de tickets (TGS): Emite tickets de servicio a los usuarios autenticados que presentan un TGT válido. Estos tickets de servicio otorgan acceso a servicios específicos, como una base de datos de PostgreSQL.

Una principal es una identidad única en un dominio de Kerberos al que se le pueden asignar tickets. A continuación, se indican los principales tipos de entidades principales:

  • Principales de usuario: Representan a usuarios humanos, por ejemplo, username@REALM.
  • Principales de servicio (SPN): Representan un servicio específico en un host específico, por ejemplo, postgres/db-server.ad.example.com@REALM. Para que un cliente solicite un ticket de servicio para tu base de datos, el servicio de base de datos debe tener un SPN registrado.

Un archivo de keytab o tabla de claves contiene una lista de principales y sus claves secretas correspondientes, que se derivan de las contraseñas de los principales. Los servicios usan un archivo keytab para probar su identidad ante el KDC y desencriptar los tickets de servicio que presentan los clientes.

Este enfoque permite que un servicio como PostgreSQL se autentique en el sistema Kerberos sin necesidad de interacción humana ni de almacenar una contraseña de texto sin formato en el servidor. El archivo keytab es muy sensible y debe almacenarse y protegerse de forma segura.

Integración de PostgreSQL con Active Directory

La integración de PostgreSQL con Active Directory te brinda una administración de usuarios centralizada basada en identidades corporativas, lo que mejora la seguridad de tu base de datos.

Para admitir la autenticación, PostgreSQL ofrece los siguientes métodos para integrarse con Active Directory:

  • Protocolo ligero de acceso a directorios (LDAP): Puedes configurar PostgreSQL para autenticar usuarios en un servidor de Active Directory con el protocolo LDAP. Cuando un usuario intenta conectarse a la base de datos, PostgreSQL se comunica con el servidor de Active Directory a través de LDAP para verificar las credenciales del usuario, que suelen ser un nombre de usuario y una contraseña. Este método usa Active Directory como proveedor de autenticación externo.

  • Interfaz de programa de aplicación de servicios de seguridad genéricos (GSSAPI) con Kerberos: Este es un método más seguro y complejo que usa el protocolo Kerberos, que es el mecanismo de autenticación predeterminado en Active Directory. GSSAPI proporciona una interfaz estándar para que las aplicaciones accedan a los servicios de seguridad.

Si bien LDAP y GSSAPI logran el objetivo de la integración de Active Directory, GSSAPI con Kerberos es el enfoque más seguro y sólido para los entornos empresariales debido a su autenticación criptográfica sólida basada en tickets. En esta página, se aborda la implementación de la integración de Active Directory para AlloyDB Omni con el método GSSAPI.

Autenticación de Active Directory con GSSAPI

AlloyDB Omni te permite autenticarte a través de Kerberos con Active Directory como backend de autenticación. En el siguiente diagrama, se muestran los pasos para lograr la autenticación.

imagen

  1. El cliente psql inicia una solicitud de autenticación con el Servicio de autenticación (AS) en el Centro de distribución de claves (KDC).
  2. El AS autentica al cliente y le emite un ticket de otorgamiento de tickets (TGT) (T1). Luego, se usa el TGT para solicitar tickets de servicio.
  3. El cliente usa el TGT para solicitar un ticket de servicio del servicio de otorgamiento de tickets (TGS) en el KDC para el servicio de PostgreSQL. Ahora, el cliente solicita acceso al servidor de PostgreSQL específico.
  4. El TGS valida el TGT y emite un ticket de servicio (T2) para el cliente. Este ticket contiene una clave de sesión (T3) y se encripta con la clave secreta del servidor de PostgreSQL.
  5. El cliente envía el ticket de servicio encriptado (T2) al servidor de PostgreSQL.
  6. El servidor de PostgreSQL usa su clave (de su archivo keytab) para desencriptar el ticket de servicio (T2). Luego, recupera la clave de sesión (T3) y verifica la autenticidad del ticket. Si esta operación se realiza correctamente, el servidor otorga acceso y establece un canal de comunicación seguro con el cliente a través de la clave de sesión.

¿Qué sigue?