v10.12 (build: Mar 4 2024)

LDAP для PostgreSQL

Для того, чтобы иметь возможность входа в БД PostgreSQL с логинами из AD (через LDAP), необходимо произвести ряд настроек.

На сервере LDAP (обычно это контроллер домена):
Для незащищенного соединения достаточно открыть порт TCP 389, для защищенного (LDAPS) - TCP 636 и установить SSL-сертификат (здесь не рассматривается).

В файле "pg_hba.conf" SQL-сервера:
В первую очередь нужно разрешить не-доменным пользователям логин по паролю SQL (для совместимости), и критически-важно это сделать для внутреннего пользователя сервера комплекса stkhintuser. Также можно оставить логин postgres и другие.
Для всех остальных пользователей необходимо включить интеграцию с LDAP. Соответственно порядок строк имеет значение!
Ниже приведен пример:
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# postgres login:
host    all             postgres        0.0.0.0/0               scram-sha-256
host    all             postgres        ::/0                    scram-sha-256

# internal user login:
host    stkh            stkhintuser     0.0.0.0/0               scram-sha-256
host    stkh            stkhintuser     ::/0                    scram-sha-256

# for LDAP (non-secure):
host    all             all             0.0.0.0/0               ldap ldapserver="dc1.mydomain.company.org" ldapprefix=""
host    all             all             ::/0                    ldap ldapserver="dc1.mydomain.company.org" ldapprefix=""

# for LDAPS (SSL-secured), option 1:
host    all             all             0.0.0.0/0               ldap ldapserver="dc1.mydomain.company.org" ldapprefix="" ldaptls=1
host    all             all             ::/0                    ldap ldapserver="dc1.mydomain.company.org" ldapprefix="" ldaptls=1

# for LDAPS (SSL-secured), or alternate option 2:
host    all             all             0.0.0.0/0               ldap ldapserver="dc1.mydomain.company.org" ldapprefix="" ldapscheme=ldaps
host    all             all             ::/0                    ldap ldapserver="dc1.mydomain.company.org" ldapprefix="" ldapscheme=ldaps
После изменения настроек нужно перезапустить службу SQL-сервера!
Далее для входа нужно использовать имя пользователя в формате NETBIOS_DOMAIN\username (например, MYDOMAIN\john.smith для домена mydomain.company.org)

© СТАХАНОВЕЦ