Nur aus Windows-Sicht:
NTLM
- Arbeiten mit sowohl externer (Nicht-Domäne) und interne Kunden
- Arbeiten mit beiden Domänenkonten und lokalen Benutzerkonten auf dem Feld IIS
- Bei Verwendung von Domänenkonten erfordert nur der Server eine direkte Verbindung zu einem Domänencontroller (DC).
- Mit lokalen Konten brauchen Sie nirgendwo Konnektivität :)
- Sie müssen nicht als der betreffende Benutzer angemeldet sein, um einen Berechtigungsnachweis zu verwenden
- Abgesehen : das ist es nicht ungewöhnlich , dass ein DC von einem langen NTLM - Server (IIS, Exchange TMG / ISA, usw.) mit dem Volumen von NTLM - Anfragen überwältigt werden (zu mildern:
MaxConcurrentAPI
, AuthPersistSingleRequest
(false) ., Schneller DCs) ( Self- Referenzbonus .)
- erfordert Client-Konnektivität nur zum IIS-Server (am Site-Port nichts anderes. Dh alles geschieht über HTTP (oder HTTPS).)
- durchqueren kann unterstützt jedes Proxy - HTTP - Keep-Alive s
- Möglicherweise können Sie TLS / SSL verwenden, um andere zu umgehen
- Für die Authentifizierung sind mehrere Roundtrips mit kleinen Paketen erforderlich
- (Protokollmuster ist 401.2, 401.1, 200 mit Benutzername)
- Kann nicht in Szenarien verwendet werden, in denen eine Double-Hop-Authentifizierung erforderlich ist
- dh die Anmeldeinformationen des Benutzers sollen an einen Dienst auf einem anderen Computer weitergeleitet werden
- unterstützt ältere Clients (<Win2000)
- Ist anfällig für Abweichungen der LM-Berechtigungsstufe (nicht übereinstimmend
lmcompatibilitylevel
)
- wird vom Negotiate-Paket als Fallback verwendet, wenn Curb ausfällt.
- ( Nicht „ wenn der Zugriff verweigert mit Curb“, Curb muss brechen für NTLM verwendet werden -. In der Regel das sieht aus wie kein Ticket bekommen Wenn der Kunde ein Ticket bekommt und es ist nicht perfekt, das nicht Ursache Ausweich.)
Kerberos
- arbeitet mit derzeit nur Domäne verbundenen Clients
- erfordert Clientkonnektivität zu einem AD DC (TCP / UDP 88) UND dem Server (Tickets werden vom Client über den Curb-Port vom DC abgerufen und dem Server über HTTP bereitgestellt)
Möglicherweise kann ein Proxy durchlaufen werden. Beachten Sie jedoch den obigen DC-Punkt: Sie müssen sich ebenso wie der Server im selben Netzwerk wie ein aktiver DC befinden .
- Wenn Sie also theoretisch eine Domain hatten, in der Clients mit Internetverbindung direkt mit einem DC mit Internetverbindung chatteten, ist dies funktionsfähig. Aber mach das nicht, wenn du das nicht schon wusstest.
- In Reverse-Proxy-Szenarien (ISA / TMG) muss sich der Protokollübergangsserver in diesem Netzwerk befinden, dh nicht auf dem Client. In diesem Fall ist der Client jedoch nicht derjenige, der das Kerberos-Bit ausführt Übergang).
Ticket ist langlebig (10h) , was bedeutet weniger DC - Kommunikation bei der Ticket Lebensdauer - und betont: diese Tausende bis Millionen von Anfragen retten konnte pro Client über dieses Leben - ( AuthPersistNonNTLM
ist immer noch eine Sache, die Kerberos - PAC Validierung verwendet , um eine Sache zu sein)
- Erfordert einen einzelnen Roundtrip zur Authentifizierung, aber die Nutzdatengröße für die Authentifizierung ist relativ groß (normalerweise 6-16 KB) ( 401 , {(codierte) Tokengröße } 200 ).
- kann mit (bitte immer eingeschränkter ) Delegierung verwendet werden , um die Windows-Authentifizierung des verbindenden Benutzers für den nächsten Dienst zu aktivieren
- Um beispielsweise
UserA
den Zugriff auf IIS zuzulassen und dasselbe Benutzerkonto zu verwenden, wenn IIS auf SQL Server zugreift, wird die Authentifizierung delegiert.
- ( Eingeschränkt bedeutet in diesem Zusammenhang "aber nichts anderes", zB Exchange oder eine andere SQL-Box)
- ist derzeit das primäre Sicherheitspaket für die Verhandlungsauthentifizierung
- Dies bedeutet, dass Windows-Domänenmitglieder es vorziehen, wenn sie es erhalten können
- erfordert die Registrierung von SPNs , was schwierig sein kann. Regeln, die helfen .
- erfordert die Verwendung eines Namens als Ziel, keine IP-Adresse
- Gründe, warum Curb versagen könnte:
- Verwenden einer IP-Adresse anstelle eines Namens
- Kein SPN registriert
- doppelte SPNs registriert
- SPN gegen falsches Konto registriert (
KRB_ERR_AP_MODIFIED
)
- Keine Client-DNS / DC-Konnektivität
- Client-Proxy-Einstellung / Lokale Intranetzone wird nicht für den Zielstandort verwendet
Während wir gerade dabei sind:
Basic
- kann Multi-Hop. Dies geschieht jedoch, indem Sie Ihren Benutzernamen und Ihr Passwort direkt in der Ziel-Web-App veröffentlichen
- die können dann alles machen was sie wollen mit ihnen. Irgendwas .
- "Oh, hat ein Domain-Administrator gerade meine App verwendet? Und habe ich gerade ihre E-Mails gelesen? Dann haben Sie ihr Passwort zurückgesetzt? Awww. Schade "
- benötigt Transportschichtsicherheit (dh TLS / SSL) für jede Form von Sicherheit.
- und dann siehe vorherige Ausgabe
- funktioniert mit jedem browser
- (aber siehe erste Ausgabe )
- Erfordert einen einzelnen Roundtrip zur Authentifizierung ( 401 , 200 )
- kann in Multi-Hop-Szenarien verwendet werden, da Windows eine interaktive Anmeldung mit grundlegenden Anmeldeinformationen durchführen kann
LogonType
Möglicherweise muss das konfiguriert werden, um dies zu erreichen. (Denken Sie, die Standardeinstellung wurde zwischen 2000 und 2003 in Netzwerkklartext geändert, kann aber falsch sein.)
- aber wieder , siehe erste Frage .
- Den Eindruck bekommen, dass die erste Ausgabe wirklich, wirklich wichtig ist? Es ist.
Um zusammenzufassen:
Das Einrichten von Curb kann schwierig sein, aber es gibt viele Anleitungen ( meine ), die versuchen, den Prozess zu vereinfachen, und die Tools haben sich von 2003 bis 2008 erheblich verbessert ( SetSPN
Suche nach Duplikaten, was das häufigste Problem ist) ; VerwendenSETSPN -S
Sie diese Option, wenn Sie eine Anleitung zur Verwendung von -A sehen, und das Leben wird glücklicher).
Eine eingeschränkte Delegation ist die Eintrittskosten wert.
Ein anderer Ansatz wäre, die Authentifizierung auf
negotiate
beide anstatt auf einen anderen zu setzen und diesen zu verwenden.quelle
Aus dem Microsoft Application Verifier , der häufig auftretende Entwicklerfehler erkennt. Einer dieser Fehler ist die Verwendung von NTLM :
quelle
Sie sollten einen sehr wichtigen Punkt hinzufügen:
Kerberos ist seit über 20 Jahren Standard und offenes Protokoll in Unix, wohingegen NTLM eine reine proprietäre Lösung von Microsoft ist und nur Microsoft bekannt ist.
quelle
Kerberos ist erforderlich, wenn Sie sich als Benutzer ausgeben müssen, um auf Ressourcen zuzugreifen, die sich nicht auf dem iis-Server befinden.
quelle