Аутентификация 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Определяет область действия, привязанную к основному имени пользователя. Если параметр задан, принимаются только пользователи данной области. Без установленного значения разрешены подключения пользователей из произвольных областей, в зависимости от настроек карты сопоставления имен.