Я пытаюсь реализовать простой сценарий единого входа, в котором некоторые из участвующих серверов будут окнами (IIS). Похоже, SPNEGO - разумный путь для этого.
Вот сценарий:
- Пользователь входит в мою службу единого входа, используя свое имя пользователя и пароль. Я удостоверяю его личность, используя какой-то механизм.
- At some later time the user wants to access App A.
- The user's request for App A is intercepted by the SSO service. The SSO service uses SPNEGO to log the user in to App A:
- The SSO service hits the App A web page, gets a "WWW-Authenticate: Negotiate" response
- Служба единого входа генерирует ответ «Авторизация: переговоры xxx» от имени пользователя и отвечает приложению A. Теперь пользователь вошел в приложение A.
- Служба единого входа перехватывает последующие запросы пользователей для приложения A, вставляя в них заголовок авторизации, прежде чем передать их в приложение A.
- The user's request for App A is intercepted by the SSO service. The SSO service uses SPNEGO to log the user in to App A:
Звучит правильно?
Мне нужны две вещи (по крайней мере, о которых я могу думать сейчас):
- возможность генерировать токен «Авторизация: переговоры xxx» от имени пользователя, предпочтительно с использованием Python
- возможность проверки заголовков "Authorization: Negotiate xxx" в Python (для более поздней части проекта)