So authentifizieren Sie einen Benutzer auf der mittleren Ebene mithilfe der Windows-Authentifizierung

8

Wir haben einen Delphi-Server, der RemObjects DataAbstract / SDK verwendet. Wir möchten die Windows-Authentifizierung verwenden, um Benutzer zu authentifizieren, damit sie auf unseren Server zugreifen können.

Momentan machen wir folgendes:

1) Die Clientanwendung sendet den Windows-Benutzernamen und das Kennwort als Klartext an den Server. 2) Der Server überprüft die Anmeldeinformationen mit der folgenden Funktion:

%Vor%

Diese Methode hat natürlich den Nachteil, dass die Benutzerdaten im Klartext über das Netzwerk übertragen werden. Wir könnten sie verschlüsseln, aber die Verschlüsselungs- / Entschlüsselungsschlüssel müssten innerhalb der Anwendung verschickt werden.

Ich bin mir sicher, dass es einen besseren Weg geben muss, unser Ziel zu erreichen. Ich habe ein bisschen über Token gelesen, verstehe aber nicht wirklich, wie sie in dieser Situation funktionieren würden.

Beachten Sie, dass diese Lösung sowohl für einen Delphi Windows-Client als auch für einen Delphi Prism ASP.NET-Client verwendet werden muss.

Danke für jede Hilfe, die Sie geben können.

    
norgepaul 16.12.2010, 14:07
quelle

1 Antwort

2

Das ist etwas, was DataAbstract selbst behandeln sollte, und wenn es nicht so ist, ist es eine halb-unterstützte Bibliothek wie Datasnap :) Wenn es um Remoting geht, ist das Authentifizieren / Autorisieren von Endpunkten und der Schutz des Datenaustauschs wirklich kritisch.

Im Grunde genommen müssen Sie nicht die Anmeldeinformationen des Benutzers senden, sondern ein "Token" austauschen, über das sowohl der Client als auch der Server sich authentifizieren können. Eine vollständige Erklärung kann komplex sein. Sie können von MSDN starten (suchen Sie AcceptSecurityContext () und InitializeSecurityContext ()). Ein mögliches Problem ist, wenn DataAbastract über die richtigen Hooks verfügt, um die Authentifizierungsphase zu implementieren, die mehr als einen Roundtrip erfordern kann.

Als Notbehelf-Maßnahme können Sie IPSec aktivieren, um den Kommunikationskanal zu schützen, und lassen Sie das ganze Benutzerkonto nicht leicht "schnüffeln".

    
user160694 16.12.2010 16:28
quelle