Implémentation d’authentification unique ASP.NET C #

Je suis chargé de mettre en œuvre l’authentification unique pour nos clients dans le cadre de notre prochaine version. Le stream existe comme suit:

  1. L’utilisateur se connecte au système de portail principal de son école en utilisant un identifiant / mot de passe d’étudiant qui lui est fourni par l’école.
  2. L’utilisateur clique sur le lien vers le produit de mon entreprise.
  3. L’utilisateur accède automatiquement à la page du tableau de bord comme s’il venait de se connecter via le formulaire de connexion sur notre site.

Ainsi, il existe deux mécanismes permettant d’authentifier un utilisateur sur notre site:

  1. Venir sur la page d’accueil de notre produit et vous connecter en utilisant l’e-mail / mot de passe que nous stockons dans notre système local.
  2. En utilisant l’authentification unique où l’étudiant est déjà connecté au système principal de l’école avec un identifiant et un mot de passe.

Si l’implémentation de notre produit est dans ASP.NET (par opposition à Java / Ruby), devrions-nous utiliser CAS, JOSSO ou un autre produit d’authentification unique tiers? Ou existe-t-il quelque chose pour un environnement .NET qui serait plus simple pour nous en tant que société .NET?

    Il existe plusieurs options pour implémenter l’authentification unique pour une application .NET.

    Consultez les tutoriels suivants en ligne:

    Bases de la signature unique , juillet 2012

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

    GaryMcAllisterOnline: intégration de ASP.NET MVC 4, ADFS 2.0 et tiers (IdentityServer2) , janvier 2013

    http://garymcallisteronline.blogspot.com/2013/01/aspnet-mvc-4-adfs-20-and-3rd-party-sts.html

    Le premier utilise ASP.NET Web Forms, tandis que le second utilise ASP.NET MVC4.

    Si vos exigences vous permettent d’utiliser une solution tierce, envisagez également OpenID. Il existe une bibliothèque open source appelée DotNetOpenAuth .

    Pour plus d’informations, lisez l’article sur MSDN Intégrez OpenAuth / OpenID à votre application ASP.NET existante en utilisant Universal Providers .

    J’espère que cela t’aides!

    Je suis en retard à la fête, mais pour l’option # 1, j’irais avec IdentityServer3 (.NET 4.6 ou inférieur) ou IdentityServer4 (compatible avec Core ).

    Vous pouvez réutiliser votre magasin d’utilisateurs existant dans votre application et le connecter pour être le magasin d’utilisateurs d’IdentityServer. Ensuite, les clients doivent être dirigés vers votre IdentityServer en tant que fournisseur d’identifiant ouvert.

    Il existe plusieurs fournisseurs d’identité avec prise en charge SSO prête à l’emploi, ainsi que des produits tiers **.

    ** Le seul problème avec les produits tiers est qu’ils facturent par utilisateur / mois, ce qui peut être très coûteux.

    Certains des outils disponibles et des API pour .NET sont:

    • IdentityExpress (avec l’interface utilisateur d’administration) par IdentityServer
    • Service d’identité Censortingfy
    • Okta Identity (SAML 2.0)
    • OneLogin

    Si vous décidez d’utiliser votre propre implémentation, vous pouvez utiliser les frameworks ci-dessous classés par langage de programmation.

    • C #

      • IdentityServer3 (protocoles OAuth / OpenID, OWIN / Katana )
      • IdentityServer4 (protocoles OAuth / OpenID, ASP.NET Core )
      • OAuth 2.0 par Okta
    • Javascript

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

      • pyoidc
      • Fournisseur Django OIDC

    Je voudrais aller avec IdentityServer4 et ASP.NET Core application, il est facile à configurer et vous pouvez également append votre propre fournisseur d’authentification. Il utilise les protocoles OAuth / OpenID qui sont plus récents que SAML 2.0 et WS-Federation.

    UltimateSAML SSO est un kit d’outils .NET compatible avec les spécifications OASIS SAML v1.x et v2.0. Il offre un moyen simple et élégant d’append la prise en charge de SAML Single Sign-On et Single-Logout à vos applications ASP.NET, ASP.NET MVC, ASP.NET Core, Desktop et Service. La bibliothèque légère vous permet de fournir un access SSO aux sites Web cloud et intranet en utilisant une seule entrée de référence.

    La revue détaillée UltimateSAML SSO se trouve ici