Ich bin beauftragt, Single Sign-On für unsere Kunden im Rahmen unserer nächsten Version zu implementieren. Der Fluss existiert wie folgt:
- Der Benutzer meldet sich mit einer Schüler-ID / einem Passwort, die ihm von der Schule zur Verfügung gestellt wurden, beim Hauptportalsystem seiner Schule an.
- Der Benutzer klickt auf den Link zum Produkt meines Unternehmens.
- Der Benutzer wird automatisch zur Dashboard-Seite weitergeleitet, als hätte er sich gerade über das Anmeldeformular auf unserer Website angemeldet.
Daher gibt es zwei Mechanismen, mit denen ein Benutzer auf unserer Website authentifiziert werden kann:
- Besuchen Sie die Homepage unseres Produkts und melden Sie sich mit der E-Mail / dem Passwort an, die wir in unserem lokalen System speichern.
- Verwenden der einmaligen Anmeldung, bei der sich der Schüler bereits mit einer Schüler-ID und einem Kennwort beim Hauptsystem der Schule angemeldet hat.
Wenn die Implementierung unseres Produkts in ASP.NET erfolgt (im Gegensatz zu Java / Ruby), sollten wir CAS, JOSSO oder ein anderes Single Sign-On-Produkt eines Drittanbieters verwenden? Oder steht einer .NET-Umgebung etwas zur Verfügung, das für uns als .NET-Unternehmen einfacher wäre?
c#
asp.net
single-sign-on
Adam Levitt
quelle
quelle
Antworten:
Es gibt mehrere Optionen zum Implementieren von SSO für eine .NET-Anwendung.
Schauen Sie sich die folgenden Tutorials online an:
Grundlagen von Single Sign on , Juli 2012
http://www.codeproject.com/Articles/429166/Basics-of-Single-Sign-on-SSO
GaryMcAllisterOnline: ASP.NET MVC 4, ADFS 2.0 und STS-Integration von Drittanbietern (IdentityServer2) , Januar 2013
http://garymcallisteronline.blogspot.com/2013/01/aspnet-mvc-4-adfs-20-and-3rd-party-sts.html
Der erste verwendet ASP.NET Web Forms, während der zweite ASP.NET MVC4 verwendet.
Wenn Ihre Anforderungen die Verwendung einer Drittanbieterlösung ermöglichen, sollten Sie auch OpenID in Betracht ziehen. Es gibt eine Open-Source-Bibliothek namens DotNetOpenAuth .
Weitere Informationen finden Sie im MSDN-Blogbeitrag Integrieren Sie OpenAuth / OpenID mithilfe von Universal Providern in Ihre vorhandene ASP.NET-Anwendung .
Hoffe das hilft!
quelle
Ich bin zu spät zur Party, aber für Option 1 würde ich mich für IdentityServer3 (.NET 4.6 oder niedriger) oder IdentityServer4 (kompatibel mit Core ) entscheiden.
Sie können Ihren vorhandenen Benutzerspeicher in Ihrer App wiederverwenden und diesen als Benutzerspeicher von IdentityServer verwenden. Dann müssen die Clients auf Ihren IdentityServer als Open-ID-Anbieter verwiesen werden.
quelle
Es gibt mehrere Identitätsanbieter mit sofort einsatzbereitem SSO-Support, auch Produkte von Drittanbietern **.
** Das einzige Problem bei Produkten von Drittanbietern besteht darin, dass sie pro Benutzer / Monat berechnet werden und sehr teuer sein können.
Einige der verfügbaren Tools und mit APIs für .NET sind:
Wenn Sie sich für eine eigene Implementierung entscheiden, können Sie die folgenden Frameworks verwenden, die nach Programmiersprachen kategorisiert sind.
C #
Javascript
Python
quelle
UltimateSAML SSO ist ein OASIS SAML v1.x- und v2.0-kompatibles .NET-Toolkit. Es bietet eine elegante und einfache Möglichkeit, Ihren ASP.NET-, ASP.NET MVC-, ASP.NET Core-, Desktop- und Dienstanwendungen Unterstützung für SAML mit einmaliger Anmeldung und einmaliger Abmeldung hinzuzufügen. Mithilfe der kompakten Bibliothek können Sie SSO-Zugriff auf Cloud- und Intranet-Websites mithilfe eines einzigen Eintrags für Anmeldeinformationen bereitstellen.
Eine ausführliche UltimateSAML SSO-Überprüfung finden Sie hier
quelle
[Haftungsausschluss: Ich bin einer der Mitwirkenden]
Wir haben eine sehr einfache kostenlose / OpenSource-Komponente erstellt, die SAML-Unterstützung für ASP.NET-Apps https://github.com/jitbit/AspNetSaml hinzufügt
Grundsätzlich ist es nur eine kurze C # -Datei, die Sie in Ihr Projekt einfügen (oder über Nuget installieren) und mit Ihrer App verwenden können
quelle