Ich habe versucht, ein einfaches Single-Sign-On in meinem Python-Webserver zu implementieren. Ich habe das python-kerberos-Paket verwendet, das gut funktioniert. Ich habe es von meinem Linux-Rechner aus getestet (Authentifizierung gegen Active Directory) und es war kein Problem. Als ich jedoch versucht habe, mich mit Firefox von einem Windows-Rechner aus zu authentifizieren (kein spezielles Setup, nur dass der Benutzer in der Domäne angemeldet ist und mein Server in negotiate-auth.trusted-uris hinzugefügt wurde), hat es nicht funktioniert. Ich habe mir angesehen, was gesendet wird, und es ähnelt nicht einmal den Dingen, die der Linux-Rechner sendet. Diese Microsoft Beschreibung des Prozesses ähnelt ziemlich genau der Art und Weise, wie meine Interaktion unter Linux funktioniert, aber der Windows-Rechner sendet im Allgemeinen eine sehr kurze Zeichenkette, die nicht einmal den Angaben in der Microsoft-Dokumentation ähnelt, und wenn sie base64-dekodiert wird, besteht sie aus etwa 12 Null-Bytes, gefolgt von 3 oder 4 Nicht-Null-Bytes (die GSS-Funktionen geben dann zurück, dass sie ein solches Schema nicht unterstützen)
Entweder stimmt etwas mit den Einstellungen des Firefox-Clients nicht, oder es gibt ein Protokoll, das ich für das Aushandlungsprotokoll befolgen soll, auf das ich aber nirgends einen Hinweis finden kann. Irgendwelche Ideen, was falsch ist? Haben Sie eine Idee, nach welchem Protokoll ich suchen sollte, da es zumindest in der MS-Dokumentation nicht nach SPNEGO aussieht?
Update: jetzt scheint es zumindest zu produzieren vernünftige Daten (saubere Installation von Firefox auf etwas anderes als windows7...), aber ich bekomme: (('Unspecified GSS failure. Minor code may provide more information', 851968), ('', 100004)) Die Negotiate-Daten scheinen jetzt in Ordnung zu sein, also ist dies ein anderer Fehler. Hat jemand eine Idee, wo ich entschlüsseln kann, was 100004 bedeutet?