Frage

Wir planen auf kerberos in unserer Architektur verwendet. Ich würde gerne wissen, was empfundene oder tatsächliche Vorteile dieser Technologie, und wenn es keine Alternativen gibt.

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

sein

Keine korrekte Lösung

Andere Tipps

Wenn Sie innerhalb einer meist Windows-Umgebung arbeiten (zB Windows Server 2k3, ein Domänencontroller, Active Directory, etc.) ein insbesondere ist, dass Sie Identitätswechsel durch .NET mit einem Split-Web-Server und Datenbank-Server. Unter Verwendung der älteren NTLM-Methode können Sie nicht tun, um eine "Double-Hop".


Lassen Sie uns ein Beispiel an:

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

USER1 schlägt eine Seite, die eine Liste der Aufträge anzeigt. Ihr WEB1 Server hat DB1 zur Abfrage für diese Informationen auf der Seite angezeigt werden soll. Sie möchten einschränken welche Aufträge auf Basis der auf der Benutzer-Credentials zu sehen sind und die Zugriffsrechte. So setzen Sie Active Directory-Gruppen und Benutzer entsprechend zuweisen. Auf Ihrer Datenbank geben Sie die verschiedenen Gruppen unterschiedliche Sicherheits (GROUP1 haben könnten wählen Sie nur und GROUP2 könnten wählen bekommen, einfügen und aktualisieren, zum Beispiel).

NTLM nicht unterstützt Double-Hop notwendig, dies zu tun. WEB1 hat USER1 die Anmeldeinformationen DB1 (sonst WEB1 müssen sich in DB1 mit einem bekannten dedizierten Benutzer-ID und das Kennwort fest einprogrammiert in die web.config zum Beispiel, die in der Regel hat vollen Zugriff unterstützen alle möglichen Benutzerrollen) zu senden. Sie können sie vorstellen, das ein Sicherheitsrisiko darstellen könnte, sollte WEB1 beeinträchtigt werden, so dass Sie es nicht tun, sonst jeden, der die Kontrolle über WEB1 gewinnt (via SQL-Injection vielleicht) könnte das dedizierte Benutzerkonto etwas tun könnte oder ausgeben, wen sie wollen. Kerberos, durch Delegation auf Windows Server, unterstützt, indem sie den verschlüsselten Credential-Schlüssel von Ihrem Domain-Server erhalten und weitergegeben entlang, als auch diesen zweiten Hop zu tun als Nachweis erbracht, dass dies erlaubt ist (an beiden Enden, siehe unten dies für die Einstellung auf Servern weil es ausdrücklich erlaubt).

muss

Es ist sehr nützlich, dies zu tun, wenn Intranet Web-Anwendungen zu entwickeln, die eine Datenbank-Back-End haben (die 99% der Zeit der Fall ist, nicht wahr?), Und Sie wollen die Autorisierung und Authentifizierung über Windows Integrated Security steuern. Kerberos ist wirklich die einzige Wahl, wenn Ihr Web-Server und Datenbank-Server auf der gleichen Maschine sind, was bedeutet, gibt es keine Anmeldeinformationen übertragen und kein Identitätswechsel erforderlich.

Siehe auch:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top