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?

   

    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