Я надеюсь, что кто-нибудь еще придет и покажет нам чистый Rails способ сделать это. Но до тех пор самый простой способ добиться успеха - это позволить вашему веб-серверу справиться с этим.
На этой ноте я собираюсь предположить, что Apache. Если это не так, пожалуйста, расскажите нам немного больше о вашей настройке.
Правильная аутентификация Kerberos в браузерах выполняется в самом протоколе HTTP, очень похоже на Обычная или дайджест-аутентификация . В Apache это можно сделать с помощью mod_kerb_auth .
Тогда следующий шаг - выяснить, как получить имя пользователя. Это немного зависит от интерфейса, который вы используете между веб-сервером и вашим Rails-приложением. Это может быть Passenger, FastCGI, mod_proxy и т. Д.
Многие в некоторой степени будут следовать исходному CGI-стандарту , передавая множество переменных среды вместе с запросом. Попробуйте следующее в вашем контроллере:
username = request.env['REMOTE_USER']
Это насколько я могу тебя взять. Я никогда не использовал authlogic. Хотя, судя по всему, он поддерживает плагины. Возможно, вы можете создать новый, который слепо доверяет REMOTE_USER
, если он установлен?