Перейти к основному содержимому

Аутентификация 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

: Определяет область действия, привязанную к основному имени пользователя. Если параметр задан, принимаются только пользователи данной области. Без установленного значения разрешены подключения пользователей из произвольных областей, в зависимости от настроек карты сопоставления имен.