2009-05-21 7 views
1

Wir planen die Verwendung von Kerberos in unserer Architektur. Ich würde gerne wissen, welche wahrgenommenen oder tatsächlichen Vorteile diese Technologie hat und ob es Alternativen gibt.Was sind die wahrgenommenen/tatsächlichen Vorteile von Kerberos? Gibt es Alternativen zu dieser Technologie?

Beachten Sie, dass wir eine .net-Client-Seite und Java-Server-Seite haben. Kommunikation wird über Messaging-Bus und SOA

+1

Ohne Ihre Anforderungen zu wissen, ich glaube nicht, dass jemand sinnvolle Alternativen vorschlagen kann. – lothar

Antwort

4

Wenn Sie in einer meist Windows-Umgebung (dh Windows Server 2k3, ein Domänencontroller, Active Directory, etc.) arbeiten, ist eine davon, dass Sie impersonation über .NET mit verwenden können ein geteilter Webserver und Datenbankserver. Mit der älteren NTLM-Methode können Sie keinen "Doppelsprung" ausführen.


Blick Lassen Sie uns ein Beispiel:

  • Sie haben einen Web-Server (WEB1)
  • Sie einen Datenbankserver auf einem separaten Rechner (DB1)
  • Sie haben haben einen Zugang Benutzer Ihre Website (USER1)

USER1 öffnet eine Seite mit einer Liste von Bestellungen. Ihr WEB1-Server muss DB1 abfragen, damit diese Informationen auf der Seite angezeigt werden. Sie möchten einschränken, welche Aufträge basierend auf den Anmeldeinformationen und Zugriffsrechten des Benutzers angezeigt werden. Daher richten Sie aktive Verzeichnisgruppen ein und weisen Benutzer entsprechend zu. In Ihrer Datenbank geben Sie den verschiedenen Gruppen unterschiedliche Sicherheit (GROUP1 hat möglicherweise nur Auswahl und GROUP2 kann beispielsweise auswählen, einfügen und aktualisieren).

NTLM unterstützt den dafür erforderlichen Double-Hop nicht. WEB1 muss die Anmeldeinformationen von USER1 an DB1 senden (andernfalls muss sich WEB1 mit einer bekannten dedizierten Benutzer-ID und einem fest in die Datei web.config fest codierten Kennwort anmelden, die normalerweise vollen Zugriff haben müssen, um alle möglichen Benutzerrollen zu unterstützen). Sie können sich vorstellen, dass dies ein Sicherheitsrisiko darstellen könnte, wenn WEB1 kompromittiert wird, also können Sie es nicht tun, sonst könnte jemand, der Kontrolle über WEB1 erlangt (via sql injection vielleicht), alles tun, was der dedizierte Benutzeraccount haben könnte. Kerberos unterstützt durch Delegierung auf Windows Server den zweiten Hop, indem der verschlüsselte Anmeldeschlüssel von Ihrem Domänenserver intakt bleibt und weitergegeben wird. Außerdem wurde überprüft, ob dies zulässig ist (an beiden Enden siehe unten, um dies auf Ihren Servern einzurichten) weil es ausdrücklich erlaubt sein muss).

Dies ist sehr nützlich bei der Entwicklung von Intranet-Webanwendungen, die über ein Datenbank-Back-End verfügen (was zu 99% der Fälle der Fall ist?) Und die Autorisierung und Authentifizierung über Windows Integrated Security steuern möchten. Kerberos ist wirklich Ihre einzige Wahl, es sei denn, Ihr Webserver und Datenbankserver befinden sich auf demselben Computer, was bedeutet, dass keine Übertragung von Anmeldeinformationen und kein Identitätswechsel erforderlich ist. auch

Siehe:

+1

Wie beantwortet das die OP-Frage zu den Vorteilen von Kerberos? Angesichts der Tatsache, dass Active Directory eine Kerberos-Implementierung ist, ist es auch kaum eine Alternative zu Kerberos. – lothar