Я попытался реализовать простой единый вход на моем веб-сервере python. Я использовал пакет python-kerberos, который прекрасно работает. Я проверил его из своего Linux-бокса (проверка подлинности по активному каталогу), и это было без проблем.
Тем не менее, когда я пытался пройти аутентификацию с помощью Firefox с компьютера с Windows (без специальной настройки, просто пользователь вошел в домен + добавил мой сервер вgotiate-auth.trusted-uris), это не сработало. Я посмотрел на то, что отправлено, и это даже не похоже на то, что отправляет машина Linux. Это описание Microsoft процесса во многом напоминает то, как работает мое взаимодействие с Linux, но машина Windows обычно отправляет очень короткую строку, которая даже не похожа на то, что указано в документации Microsoft, и когда декодируется base64 , это что-то вроде 12 нулевых байтов, за которыми следуют 3 или 4 ненулевых байта (функции GSS затем возвращают, что не поддерживают такую схему)
Либо что-то не так с настройками клиента Firefox, либо существует какой-то протокол, которому я должен следовать для протокола переговоров, но нигде не могу найти ссылки. Есть идеи что не так? Есть ли у вас какие-либо идеи о том, какой протокол мне следует, пытаясь найти, поскольку он не похож на SPNEGO, по крайней мере, из документации MS.
Обновление: теперь кажется, что по крайней мере выдают разумные данные (чистая установка firefox на чем-то отличном от windows7 ...), однако я получаю:
((«Неуказанный сбой GSS. Дополнительный код может предоставить дополнительную информацию», 851968), ('', 100004))
С данными согласования теперь все в порядке, так что это еще одна ошибка. Любая идея, где я могу расшифровать, что означает 100004?