0

Pour mon projet de dernière année, j'ai développé un site Web ASP.NET et j'ai mis en place un système de connexion à signature unique à l'aide de Windows Identity Foundation (de la même manière que tutoriel affiché ici: http://www.primaryobjects.com/2013/08/08/using-single-sign-on-with-windows-identity-foundation-in-mvc-net)Hébergeur de fournisseur d'identité WIF et génération de certificats auto-signés

Cela signifie que j'ai actuellement 2 sites Web, mon site fournisseur d'identité et le site qui utilise l'IP et contient la plupart des fonctionnalités.L'IP utilise le certificat X509 pour générer le jeton et pour cela J'ai pu jusqu'ici utiliser un certificat auto-signé. Voici le code que je l'ai utilisé pour récupérer le certificat de la machine locale:

var store = new X509Store(StoreName.My, StoreLocation.LocalMachine); 
     X509Certificate2Collection certificates = null; 
     store.Open(OpenFlags.ReadOnly); 

     try 
     { 
      certificates = store.Certificates; 
      var certs = certificates.OfType<X509Certificate2>().Where(x => x.SubjectName.Name.Equals(subjectName, StringComparison.OrdinalIgnoreCase)).ToList(); 

      if (certs.Count == 0) 
       throw new ApplicationException(string.Format("No certificate was found for subject Name {0}", subjectName)); 
      else if (certs.Count > 1) 
       throw new ApplicationException(string.Format("There are multiple certificates for subject Name {0}", subjectName)); 

      return new X509Certificate2(certs[0]); 
     } 

Afin d'être en mesure de présenter mon projet, je vais me demander de l'héberger sur le web, mais cela signifie que j'aurai besoin d'un substitut pour mon certificat autosigné. Je pourrais utiliser quelque chose comme des sites Web azur pour héberger mes sites Web mais je n'ai pas été capable de trouver une solution jusqu'à présent qui me permettrait de générer un certificat auto-signé sur un service comme Azur et de le récupérer par programmation.

Pourriez-vous s'il vous plaît me suggérer une solution à ce problème?

Répondre

0

Idéalement, vous n'avez pas besoin de créer votre propre IDP. Vous pourriez utiliser quelque chose comme ADFS. Azure AD est un IDP et possède ses propres certificats. Vous n'avez donc pas besoin d'en créer.

Tout ce dont vous avez besoin, ce sont les métadonnées et vous trouverez l'URL sous AppServices/Endpoints.

Il existe un exemple here mais notez que cela utilise WS-Fed OWIN pas WIF. (WIF est un peu vieille école). Pour faciliter votre vie, vous pouvez mettre à jour votre web.config programmatically en ajoutant du code à global.asax.

Ou simplement déplacer votre solution entière vers une machine virtuelle dans Azure.

+0

Oui, je comprends votre point et je suis d'accord, sur un projet du monde réel je ne perdrais pas de temps en construisant un fournisseur moi-même. J'ai vu cela comme une opportunité de comprendre ce concept en profondeur et d'ajouter une touche à une partie de l'application à laquelle normalement personne ne ferait attention. Quoi qu'il en soit, merci pour la suggestion. Ill donner un coup d'oeil à ces machines virtuelles Azure. –