2017-11-24 8 views
1

Ich wurde gebeten, die Integration mit einem SAML 2.0-IdP zur Benutzerauthentifizierung zu implementieren. Ich habe noch nie mit einem föderierten Genehmigungsverfahren gearbeitet, also ist das alles neu für mich, also bitte verzeih, wenn ich eine dumme Frage stelle, aber hier geht es.SAML-Authentifizierung ohne SAML-Autorisierung

Für meine Bedürfnisse möchte ich nur eine SAMLP-Authentifizierungsanfrage senden. Wenn ich eine Antwort bekomme, die besagt, dass der Benutzer gültig ist, gebe ich ihnen Zugriff auf mein System, das eine Benutzer-ID hat, die mit dem übereinstimmt, was zurückgegeben wird. Ab diesem Zeitpunkt muss die Autorisierung von meinem System durchgeführt werden und ich muss bei jeder Anfrage kein Token an SAML IdP senden. Nachdem sie sich eingeloggt haben, bin ich mit dem IdP fertig.

Viele der Fragen und Beispiele, die ich hier und auf anderen Seiten sehe, beinhalten das Hinzufügen umfangreicher Bibliotheken zu meinem Projekt. Wenn ich sie und die Dokumentation um sie herum ansehe, scheinen sie alle entweder die Authentifizierung bei jeder Anfrage über ein IIS-Modul oder durch Integration mit dem MVC-Routing-Mechanismus durchführen zu wollen.

So jetzt zu meiner Frage. Kann ich das XML nicht einfach selbst erstellen und als SAMLRequest-Wert auf den Querystring kleben? Dann analysieren Sie die Antwort-XML, die für die Werte zurückkommt, die ich brauche? Wenn dies ein gültiger Weg ist, hat jemand einen Beispielcode, der das tut?

Jede Hilfe wäre sehr dankbar

Antwort

0

Die Strömung, die Sie beschreiben, wie die Dinge sind in der Regel getan: Eine SAML2 Anfrage an die Idp die Benutzer zu authentifizieren und dann für alle nachfolgenden Anfragen, einen Session-Cookie zu setzen.

Erstellen Sie das nicht selbst, wenn Sie nicht viel Zeit zum Verständnis der SAML2- und XML-Signaturvalidierungsregeln benötigen. Sie sind komplex und die meisten benutzerdefinierten Implementierungen bekommen es falsch, was zu kompromittierten Sicherheit.

Meine eigene Bibliothek, Kentor.AuthServices funktioniert so, wie Sie es möchten. Obwohl es entweder als ein HTTP-Modul, ein MVC-Controller oder eine OWIN-Middleware kommt, interferiert es nur mit den ersten Anforderungen, die die tatsächliche Anmeldung ausmachen. Alle nachfolgenden Anforderungen werden nur übergeben und der Session-Cookie-Mechanismus verarbeitet die Sitzungsauthentifizierung.

+0

Dank Anders. Und danke für all Ihre Bemühungen auf den Kentor Authservices. Ich habe das Projekt von GITHub heruntergezogen. Ich habe mich entschieden zu versuchen, die HTTP-Modul-Methode der Implementierung zu implementieren. Ich habe die Web.config geändert, aber jetzt bin ich nicht sicher, welche der vielen Dateien ich in meine Verzeichnisstruktur aufnehmen muss. Ich denke es ist nur Kentor.AuthServices.HttpModule. Kann ich das HTTP-Modul auch weiterhin verwenden, wenn ich eine .NET-Web-API mit einem HTML/JavaScript-Frontend verwende oder muss ich die MVC-Implementierung verwenden? Entschuldigung für dumme Fragen, die immer noch versuchen zu lernen. – pachyderm94

+0

Dies ist eine andere Frage, bitte posten Sie sie als Kommentar anstatt als Kommentar. Neue Fragen in Kommentaren zu Stack Overflow werden schnell unübersichtlich. –