C # ASP.NET-Single-Sign-On-Implementierung

Ich habe die Aufgabe, Single Sign-On für unsere Kunden als Teil unserer nächsten Version zu implementieren. Der Ablauf ist wie folgt:

  1. Der Benutzer meldet sich mit einer ihm / ihr von der Schule zur Verfügung gestellten Studenten-ID / Passwort an das Hauptportal seiner Schule an.
  2. Der Nutzer klickt auf den Link zum Produkt meines Unternehmens.
  3. Der Benutzer wird automatisch zur Dashboard-Seite weitergeleitet, als ob er sich gerade über das Anmeldeformular auf unserer Website angemeldet hätte.

Daher gibt es zwei Mechanismen, mit denen ein Benutzer auf unserer Website authentifiziert werden kann:

  1. Kommen Sie auf die Startseite unseres Produkts und melden Sie sich mit der E-Mail / dem Passwort an, die wir in unserem lokalen System speichern.
  2. Verwenden der Einzelanmeldung, bei der sich der Schüler bereits mit einer Schüler-ID und einem Passwort am Hauptsystem der Schule angemeldet hat.

Wenn die Implementierung unseres Produkts in ASP.NET (im Gegensatz zu Java / Ruby) erfolgt, sollten wir CAS, JOSSO oder ein anderes Single Sign-On-Produkt von Drittanbietern verwenden? Oder gibt es für eine .NET-Umgebung etwas, das für uns als .NET-Unternehmen einfacher wäre?

Solutions Collecting From Web of "C # ASP.NET-Single-Sign-On-Implementierung"

Es gibt mehrere Optionen zum Implementieren von SSO für eine .NET-Anwendung.

Sehen Sie sich die folgenden Tutorials online an:

Grundlagen der Einzelanmeldung , Juli 2012

http://www.codeproject.com/Articles/429166/Basics-of-Single-Sign-on-SSO

GaryMcAllisterOnline: ASP.NET MVC 4, ADFS 2.0 und 3rd-Party-STS-Integration (IdentityServer2) , Jan 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 zulassen, sollten Sie auch OpenID berücksichtigen. Es gibt eine Open-Source-Bibliothek namens DotNetOpenAuth .

Weitere Informationen finden Sie im MSDN-Blogpost Integrate OpenAuth / OpenID mit Ihrer vorhandenen ASP.NET-Anwendung unter Verwendung von Universal Providers .

Hoffe das hilft!

Ich bin zu spät zur Party, aber für Option 1 würde ich mit IdentityServer3 (.NET 4.6 oder niedriger) oder IdentityServer4 (kompatibel mit Core ) gehen.

Sie können Ihren vorhandenen Benutzerspeicher in Ihrer App wiederverwenden und als User Store des IdentityServer verwenden. Dann müssen die Clients auf Ihren IdentityServer als den offenen ID-Provider verwiesen werden.

Es gibt mehrere Identity-Anbieter mit SSO-Unterstützung, auch Drittanbieterprodukte **.

** Das einzige Problem mit Produkten von Drittanbietern ist, dass sie pro Benutzer / Monat berechnen, und es kann sehr teuer sein.

Einige der verfügbaren Tools und mit APIs für .NET sind:

  • IdentityExpress (mit Admin-Benutzeroberfläche) von IdentityServer
  • Centrify Identitätsdienst
  • Okta Identität (SAML 2.0)
  • EinLogin

Wenn Sie sich für eine eigene Implementierung entscheiden, können Sie die folgenden Frameworks verwenden, die nach Programmiersprache kategorisiert sind.

  • C #

    • IdentityServer3 (OAuth / OpenID-Protokolle, OWIN / Katana )
    • IdentityServer4 (OAuth / OpenID-Protokolle, ASP.NET-Core )
    • OAuth 2.0 von Okta
  • Javascript

    • pass-openidconnect (node.js)
    • oidc-provider (node.js)
    • openid-client (node.js)
  • Python

    • pyoidc
    • Django OIDC-Anbieter

Ich würde mit IdentityServer4 und ASP.NET Core-Anwendung gehen, es ist einfach konfigurierbar und Sie können auch Ihren eigenen Authentifizierungsanbieter hinzufügen. Es verwendet OAuth / OpenID- Protokolle, die neuer als SAML 2.0 und WS-Federation sind.

UltimateSAML SSO ist ein mit OASIS SAML v1.x und v2.0 konformes .NET-Toolkit. Es bietet eine elegante und einfache Möglichkeit, Ihre ASP.NET-, ASP.NET MVC-, ASP.NET Core-, Desktop- und Service-Anwendungen um SAML für Single Sign-On und Single-Logout zu erweitern. Mithilfe der Lightweight-Bibliothek können Sie SSO-Zugriff auf Cloud- und Intranetwebsites mithilfe eines einzelnen Anmeldeinformationseintrags bereitstellen.

Detaillierte UltimateSAML SSO Überprüfung kann hier gefunden werden