Я пытаюсь реализовать аутентификацию Kerberos без пароля (кроме случаев, когда срок действия билета истек) для конкретной простой службы в организации. (Полное раскрытие: это не веб-сервис, а «удаленное выполнение процедур» через SSH.) Я бы предпочел просто использовать Bash или, возможно, Python для этого.
Допустим, пользователь передает свой файл кэша учетных данных Kerberos, который по умолчанию создается при /tmp/krb5cc_$(id -u)
при входе в систему на клиентском компьютере, через клиентский скрипт в мою службу, которая находится на другом компьютере / сервере.
Есть ли какой-нибудь способ, которым я могу определить, является ли этот пользователь тем, кем он себя называет, то есть аутентифицировать его на нашем Kerberos / AD? Я могу запустить это:
klist -s ${cache_file}
... и записать код возврата в $?
(0 означает, что файл кэша доступен для чтения и не просрочен), но klist
действительно достаточный тест на подлинность? Например, если злонамеренный пользователь устанавливает свой собственный сервер Kerberos, может ли он вместо этого успешно использовать билет Kerberos с этого сервера?