web-dev-qa-db-fra.com

Implémentation C # ASP.NET Single Sign-On

Je suis chargé d'implémenter l'authentification unique pour nos clients dans notre prochaine version. Le flux existe comme suit:

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

Ainsi, il existe deux mécanismes par lesquels un utilisateur peut être authentifié sur notre site:

  1. Accéder à la page d'accueil de notre produit et vous connecter à l'aide de l'adresse électronique/du mot de passe que nous stockons dans notre système local.
  2. Utilisation de la connexion unique pour laquelle l'élève s'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 en ASP.NET (par opposition à Java/Ruby), devrions-nous utiliser CAS, JOSSO ou un autre produit tiers à authentification unique? Ou existe-t-il un élément disponible dans un environnement .NET qui serait plus simple pour nous en tant que société .NET?

67
Adam Levitt

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

Découvrez les tutoriels suivants en ligne:

Principes de base de l'authentification unique , juillet 2012

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

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

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

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

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

Pour plus d'informations, lisez l'article du blog MSDN Intégrez OpenAuth/OpenID avec votre application ASP.NET existante à l'aide de fournisseurs universels .

J'espère que cela t'aides!

54
Shahed C - MSFT

Je suis en retard à la fête, mais pour l'option n ° 1, j'irais avec IdentityServer (.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 comme magasin d'utilisateurs d'IdentityServer. Les clients doivent ensuite être pointés sur votre IdentityServer en tant que fournisseur d'identifiant ouvert.

10
Evdzhan Mustafa

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

** Le seul problème avec les produits tiers est qu'ils facturent par utilisateur/mois, et cela peut coûter très cher.

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

Si vous décidez d'utiliser votre propre implémentation, vous pouvez utiliser les cadres 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
    • Django OIDC Provider

J'irais avec les applications IdentityServer4 et ASP.NET Core, il est facile à configurer et vous pouvez également ajouter votre propre fournisseur d'authentification. Il utilise les protocoles OAuth/OpenID plus récents que SAML 2.0 et WS-Federation.

7
Alex.H

UltimateSAML SSO est un toolkit .NET conforme aux spécifications OASIS SAML v1.x et v2.0. Il offre un moyen simple et élégant d’ajouter à vos applications ASP.NET, ASP.NET MVC, ASP.NET Core, Desktop et Service une prise en charge de SAML Single-Sign-On et Single-Logout. La bibliothèque légère vous aide à fournir un accès unique aux sites Web en nuage et intranet à l'aide d'une seule entrée d'informations d'identification.

La revue détaillée d'UltimateSAML SSO peut être trouvée ici

3
brunoid