Аутентификация SSPI
Эта страница переведена при помощи нейросети GigaChat.
SSPI — это встроенная в Windows технология безопасной аутентификации с поддержкой единого входа. PostgreSQL использует SSPI в режиме автоматического выбора протоколов: сначала пытается применить Kerberos, а при невозможности автоматически переходит на NTLM. SSPI и GSSAPI совместимы друг с другом, позволяя клиентам SSPI проходить проверку подлинности на серверах GSSAPI и наоборот. Рекомендуемая практика — использовать SSPI на платформе Windows и GSSAPI на других операционных системах.
Процесс аутентификации Kerberos с применением SSPI аналогичен процессу с GSSAPI; подробную информацию см. в разделе Аутентификация GSSAPI.
Настройка SSPI осуществляется с помощью следующих параметров конфигурации:
include_realm
: Если установлено значение 0
, имя области удаляется из учетной записи пользователя перед сопоставлением имен пользователей (см. раздел «Карты сопоставления имен пользователей»). Эта настройка не рекомендована, так как нарушает безопасность в многооблачной среде, особенно при использовании параметра krb_realm
. Лучше оставить include_realm
со значением по умолчанию (1
) и обеспечить явное сопоставление имен в файле pg_ident.conf
, чтобы преобразовать учетные записи Kerberos/GSSAPI в имена пользователей PostgreSQL.
compat_realm
: Если значение равно 1
, используется упрощенное имя домена (NetBIOS), соответствующее SAM, для параметра include_realm
. Это поведение установлено по умолчанию. Если значение равно 0
, применяется фактическое имя домена Kerberos из полного имени пользователя.
Эту опцию нельзя отключать, если сервер запущен под доменной учетной записью (включает виртуальные служебные учетные записи членов домена), и все клиенты, использующие SSPI-аутентификацию, работают под доменными учетными записями, иначе аутентификация завершится ошибкой.
upn_username
: Если данная опция включена совместно с compat_realm
, для аутентификации применяется имя пользователя из UPN Kerberos. При выключенном состоянии (установлено по умолчанию) используется имя пользователя, совместимое с SAM. Обычно оба имени совпадают для вновь созданных учетных записей.
Обратите внимание, что библиотека libpq
использует имя пользователя, совместимое с SAM, если не указано другое имя явно. Если пользуетесь libpq
или драйверами на его основе, оставьте эту опцию отключенной или явно укажите имя пользователя в строке подключения.
map
: Параметр позволяет сопоставлять системные и базовые имена пользователей. Подробнее смотрите в разделе «Карты сопоставления имен пользователей».
Для принципала SSPI/Kerberos вида username@EXAMPLE.COM
(либо реже применяемого варианта username/hostbased@EXAMPLE.COM
) имя пользователя, используемое для сопоставления, сохраняется неизменным — username@EXAMPLE.COM
или username/hostbased@EXAMPLE.COM
. Исключение составляет случай, когда параметр include_realm
выставлен в значение 0
: тогда в процессе сопоставления принимается только имя пользователя без домена, например, просто username
или username/hostbased
.
krb_realm
: Определяет область действия, привязанную к основному имени пользователя. Если параметр задан, принимаются только пользователи данной области. Без установленного значения разрешены подключения пользователей из произвольных областей, в зависимости от настроек карты сопоставления имен.