Как организовать сквозную GSSAPI/Kerberos аутентификацию в Postgres из Rails приложения?
Всем привет.
Столкнулся с проблемой организации сквозной аутентификации в Postgres.
Используется: Apache2.2 + mod_auth_kerb + Passenger 5 + Rails 4.1.4 + Postgres 9.4
В Firefox настроены параметры negotiate, в virtualhost установлен параметр KrbSaveCredentials on.
Аутентификация пользователя в Apache проходит успешно, в приложении вижу заголовки REMOTE_USER и KRB5CCNAME.
Файла, имя которого содержит KRB5CCNAME ( напр. FILE:/tmp/krb5cc_apache_lQ0O1c) в системе (уже) не существует на момент обработки запроса приложением.
Получается аутентифицироваться в Postgres через Kerberos из системной консоли:
kinit myuser
psql "dbname=mydb user=myuser krbsrvname=postgres"
Из приложения при обработке запроса пробую установить соединение с передачей параметров username, krbsrvname. Падает с ошибкой:
PG::ConnectionBad (GSSAPI continuation error: Unspecified GSS failure. Minor code may provide more information
GSSAPI continuation error: No Kerberos credentials available
):
activerecord (4.1.4) lib/active_record/connection_adapters/postgresql_adapter.rb:888:in `initialize'
activerecord (4.1.4) lib/active_record/connection_adapters/postgresql_adapter.rb:888:in `new'
activerecord (4.1.4) lib/active_record/connection_adapters/postgresql_adapter.rb:888:in `connect'
activerecord (4.1.4) lib/active_record/connection_adapters/postgresql_adapter.rb:568:in `initialize'
activerecord (4.1.4) lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `new'
activerecord (4.1.4) lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `postgresql_connection'
activerecord (4.1.4) lib/active_record/connection_adapters/abstract/connection_pool.rb:435:in `new_connection'