Verwenden Sie die Windows-Authentifizierung mit OAuth 2.0

8

Ich habe einen OWIN-Autorisierungsserver und mehrere Ressourcenserver eingerichtet, die ASP.NET-Web-APIs verfügbar machen. Ich serviciere einen JWT vom Autorisierungsserver, der für jeden Ressourcenserver spezifisch ist (die Idee ist, dass jeder Ressourcenserver benutzerdefinierte Ansprüche benötigt, die in seinem Token eingeschlossen sind).

Diese Server befinden sich alle in einer Intranetumgebung, in der wir in der Vergangenheit die Windows-Authentifizierung (Kerberos) verwendet haben, um eine einmalige Anmeldung zu ermöglichen. Diese Funktion ist in meiner Implementierung verloren gegangen, weil ich den Benutzernamen und das Passwort (authentifiziert gegen AD) des Benutzers verwende, um ein Token zu gewähren. Ich frage mich, ob es eine Möglichkeit gibt, eine Single-Sign-On-Erfahrung zurückzuerhalten - indem Sie beispielsweise die Windows-Authentifizierung verwenden, um die Identität eines Benutzers festzustellen, bevor Sie ihm ein Token erteilen.

Ich denke, das ist etwas unorthodox und könnte dumm sein. Bitte sagen Sie mir, ob es einen besseren, alternativen Ansatz gibt, SSO mit OAuth 2.0 in einer Intranetumgebung zu erhalten.

    
Joshua Barron 30.11.2014, 19:45
quelle

1 Antwort

5

Wie sich herausstellte, war das nicht so schwer wie erwartet. Ich habe einen Standard-Web-API-Controller von einem alternativen Endpunkt ( /token/windows/ ) erstellt. Dieser Endpunkt nimmt einen HTTP-POST mit der Client-ID (Ressourcen-ID), mit der der Windows-Benutzer versucht, eine Verbindung herzustellen. Ich stelle das Standardattribut " [Authorize] " für die Aktion ein, um sicherzustellen, dass die Identität festgelegt wird. Anschließend erstelle ich manuell eine Anspruchsidentität und gebe dem Benutzer eine JWT zurück. Ab diesem Zeitpunkt verwendet der Benutzer den Standard-Token-Aktualisierungsprozess.

Bearbeiten : Im Folgenden finden Sie ein Beispiel, das darstellt, was ich implementiert habe. Beachten Sie, dass diese App in IIS zur Unterstützung der Windows-Authentifizierung konfiguriert ist (zusätzlich zur anonymen Authentifizierung):

%Vor%     
Joshua Barron 23.02.2015, 14:34
quelle