У вас есть 2 способа справиться с этим:
- Обрабатывать это напрямую в Python
- Обрабатывать это через прокси-сервер, например apache или nginx
Pure Python Solution
Если у вас нет прокси или вы просто хотите обработать его в python, я рекомендую использовать библиотеку python-gssapi . Вот пример кода .Существуют и другие привязки Python, но из моего прочтения этот кажется наиболее полным.
Обратите внимание, что если вы будете обрабатывать это таким образом, вашему питон-серверу, вероятно, потребуется способность поддерживать заголовок keep-alive (т.е. повторно использовать одно и то же соединение для нескольких запросов).Это не является строго частью протокола SPENGO, но большинство браузеров, кажется, требуют, чтобы сервер реализовал его.
Proxy Solution
Если вы используете apache, есть модуль mod_auth_kerb , который вы можете использовать, что хорошо документировано.Также есть mod_auth_gssapi , который обеспечивает аналогичную функциональность.
Для nginx есть аналогичный модуль .
С любым из этих прокси-решений идея заключается в том, что прокси-сервер обрабатывает аутентификацию Kerberos и устанавливает переменную REMOTE_USER env для вашего приложения на python.Таким образом, ваше приложение на Python должно иметь возможность принимать эту переменную в качестве аутентифицированного пользователя. Django имеет промежуточное программное обеспечение специально для этой цели - я не уверен насчет Flask (я упоминаю эти 2 фреймворка, потому что они в тегах вашего вопроса).