Blog

Noticias

ldap2pg 6.1: Postgres 16 sin privilegios, hooks y más

París, 3 de junio de 2024.

Dalibo proporciona servicios, formación y soporte a sus clientes en Francia desde 2005.

A partir de 2017, ldap2pg ofrece la mejor solución de sincronización automática de roles y privilegios para PostgreSQL. Tras configurar la autenticación PostgreSQL con LDAP en el archivo pg_hba.conf, se utiliza ldap2pg para crear y configurar roles directamente desde el directorio de una empresa.

Dalibo anuncia hoy la disponibilidad de ldap2pg 6.1. Esta versión introduce soporte para PostgreSQL 16 y su nueva función de administración sin privilegios o roles. Numerosas mejoras de compatibilidad y configurabilidad hacen de esta una versión práctica y estable. Para instalar esta nueva versión, consulten la documentación.

Postgres 16 y ejecución sin privilegios

PostgreSQL 16 introduce una importante mejora de compatibilidad en lo referente al delegar la administración de roles a un usuario sin privilegios. Este cambio se basa en la constatación de que la implementación anterior ofrecía tan sólo una ilusión de seguridad y no era coherente con el estándar SQL. En efecto, un usuario con la opción CREATEROLE podía otorgarse en la práctica derechos que no tenía.

Además, ldap2pg 6.1 no puede ser ejecutado sin permisos de superusuario en PostgreSQL hasta la versión 15. Sin embargo, puede ser ejecutado con la opción CREATEROLE en PostgreSQL 16, sin privilegios de superusuario.

Configurabilidad

ldap2pg 6.1 proporciona nuevas opciones de configuración. Ahora es posible escribir las variables de entorno en un archivo .env junto al archivo ldap2pg.yml o en el directorio de trabajo de ldap2pg.

Al igual que los comandos make y git, ldap2pg acepta un parámetro -C que establece el directorio de trabajo del comando. Este parámetro determina la búsqueda de los archivos de configuración ldap2pg.yml y ldaprc.

Por último, ldap2pg acepta ahora un argumento de línea de comandos: la cadena de conexión a la instancia PostgreSQL que se va a sincronizar. Esta cadena de conexión puede estar en formato URL o en formato clave=valor.

Compatibilidad

ldap2pg ya no ejecuta el comando LDAP whoami tras la conexión al directorio LDAP. Esta operación es una extensión del protocolo LDAP y no está disponible en todas partes. La eliminación de este comando elimina la dependencia de la disponibilidad de esta extensión.

El parámetro LDAPURI puede contener varias URI separadas por un espacio. Si la primera URI falla, el cliente LDAP debe intentar con la segunda. ldap2pg 6.1 corrige una regresión de la versión 6.0 y restablece esta implementación de alta disponibilidad del lado del cliente.

LDAP es un protocolo que no hace distinción entre mayúsculas y minúsculas, únicamente para caracteres ASCII. ldap2pg 6.1, en cambio, no hace distinción entre mayúsculas y minúsculas para DN y nombres de atributos.

Hooks de ejecución

Acaba de implementarse en ldap2pg una petición de funcionalidad muy antigua: la definición de un comando SQL arbitrario que pueda ejecutarse antes o después de la creación de un rol. Como por ejemplo, para crear un esquema específico para un nuevo usuario. La regla de rol acepta ahora los parámetros before_create y after_create. Estas peticiones pueden recibir valores dinámicos de la búsqueda LDAP.

Continuación en caso de error

Algunos errores no deberían impedir que la sincronización continúe. Como en el caso de que ldap2pg falle al eliminar un rol que aún posee objetos en base. ldap2pg 6.1 tolera hasta 8 errores de sincronización de este tipo antes de desistir.

Otros cambios

Véanse más cambios, características y correcciones en el changelog.

La documentación, los procedimientos y el soporte de la comunidad pueden consultarse en los siguientes enlaces:


Étienne Bersac y Pierre-Louis Gonon son los responsables del desarrollo de ldap2pg, un proyecto de Dalibo Labs. Para cualquier pregunta técnica, el equipo recomienda utilizar la página de ldap2pg en GitHub.

Haz clic aquí para leer la noticia original en inglés en la página web oficial de PostgreSQL.