Ich schreibe eine ziemlich große Anwendung mit einem HTML / CSS / JS-Frontend, die AngularJS und eine ASP.NET MVC Web API als Backend verwendet.
Ich möchte, dass sich Benutzer authentifizieren können, ich ThinkTecture AuthorizationServer auf einem separaten Computer installiert habe und eine ADFS-Instanz auf dem Domänencontroller ausgeführt wird. Momentan verwende ich die mit ADFS gelieferte Webseite für die Anmeldung, aber es wäre schön, wenn ich meine eigene Seite benutzen könnte, die nach dem Benutzernamen / Passwort Combo fragt, sie an AuthorizationServer / ADFS weitergibt, und dann einfach die Authentifizierungs-Token danach.
Hat jemand etwas Ähnliches getan?
Grüße, Daníel
Tatsächlich wird Ihr Benutzer sich in Ihrem SPA anmelden, dann haben Sie eine Serverseite (Java oder .NET oder *), die diese Anfrage erhalten.
Der Server fragt das Token nach ADFS, ADFS sendet das Token und Ihr Server übergibt das Token in der Antwort per Cookie an AngularJS.
Bei angularer Seite ist kein HTTP-Interceptor zu erwarten, um den Status der Antwort zu überprüfen (401,403) ...
Der Cookie wird von AngularJS bei jeder Anfrage automatisch erneut gesendet, wenn Sie wissen möchten, wie ein htppInterceptor auf AngularJS implementiert wird, überprüfen Sie einfach:
AngularJs -.net MVC WebApi-Authentifizierungsbeispiel
In diesem Thread erkläre ich, wie man diesen Schritt implementiert.
Wie auch immer: Ihr SPA ist ein RIA ok, aber immer noch der Client Teil einer Webapp. Ich denke nicht, dass es wirklich gut ist (ich denke, es ist wirklich schlimm), dass der Klient sich direkt mit dem ADFS in Verbindung setzt ... Wie kann Man-In-The-Middle verhindert werden, wenn Sie das tun?
Tags und Links angularjs authentication single-page-application adfs