Comment dois-je mettre en œuvre SAMLP 2.0 dans un ASP.NET MVC 4 fournisseur de service?
Je suis l'élaboration d'un MVC 4 web de l'application en C# et de gérer la connexion à l'aide d'un existant fournisseur d'identité SAML 2.0. Je suis à l'aide de HTTP POST de liaison avec SimpleSAMLphp.
Semble-t-il dans .NET 4.5, je devrais être à l'aide de Windows Identity Foundation. Tout d'abord, j'ai essayé d'installer le De l'identité et de l'Accès de l'Outil. (Je suis à l'aide de Visual Studio 2013, qui est censé avoir cet outil intégré, mais VS2013 version ne supporte pas les "ré-entrancy", ce qui signifie que je ne peux pas l'utiliser pour ajouter de l'INVESTISSEMENT soutien à mon application.)
Après le pointage de l'Identité et de l'Outil d'Accès à mon fournisseur d'identité de métadonnées de l', j'obtiens ce message d'erreur:
Apparemment, c'est le message d'erreur qui indique que SAMLP 2.0 n'est pas pris en charge par WIF. Cela semble être distincte de SAML 2.0 jetons, qui sont pris en charge (au moins, ce documentation obsolète indique qu'il y a un Microsoft.IdentityModel.Tokens.Saml2
espace de noms).
Puis, j'ai découvert le WIF Extension pour SAML 2.0. Cependant, cela a été publiée en Mai 2011 et ne semble pas avoir été touché depuis. Néanmoins, j'ai téléchargé l'extension et tenté de créer le SamlConfigTool inclus dans le fichier ZIP. L'outil est une application console qui m'informe que:
Cet outil vous demandera les informations nécessaires à la création d'un fichier de métadonnées qui décrit votre partie de confiance. Il vous demande de l'une des adresses de partenaires métadonnées des fichiers à télécharger. Enfin, il va générer un fichier appelé
Changes_To_Web_Config.xml
qui a les changements qui devraient être apportés à votre site web.fichier de configuration pour activer SAML protection.
Après avoir entré mon ID de l'entité et SAML point de terminaison, le SamlConfigTool rapidement s'est écrasé. Ok, peut-être que je n'ai pas besoin d'utiliser l'outil de configuration et je peux juste copier ce qui est fait dans l'exemple de fournisseur de services VS projet. Après la migration, je suis en mesure d'ouvrir le projet dans VS2012, mais il n'est pas clair pour moi exactement comment il fonctionne, il ne semble pas contenir de code C#, juste de nouvelles entrées dans le Web.config. Il n'est pas clair pour moi comment je doit adapter cette configuration pour remplacer la coutume code de connexion dans mon MVC 4 app, et en tout cas en s'appuyant sur une mort de la bibliothèque à partir de 3 ans ne semble pas être une bonne idée.
Donc, quelle est la meilleure façon de mettre en œuvre SAML 2.0 ASP.NET MVC 4? Je suis en train de décodage, le codage, l'analyse et la compression de données XML à la main et il se sent comme il doit y avoir un moyen plus facile.
Vous devez vous connecter pour publier un commentaire.
Vous avez raison dans ce WIF (aujourd'hui dans le noyau .NET en vertu de la
System.IdentityModel
) prend uniquement en charge le grâce à saml2! des jetons de et pas le grâce à saml2! des protocoles nécessaires pour mettre en œuvre un fournisseur de services.Kentor.AuthServices est un open source SP de la mise en œuvre de ASP.NET MVC construit sur le haut de .NET 4.5. Installez le paquet et ajouter quelques paramètres dans le web.config - aucun codage requis.
Disclaimer: je suis l'auteur de
Kentor.AuthServices
Web.config
, et mon projet génère toujours, mais je vais avoir du mal à obtenir AuthServices rien à faire. L'ajout de la[Authorize]
attribut à monActionResult
ne semble pas faire quoi que ce soit.Autant que je sache, il n'y a pas de support pour SAML2P dans WIF encore. Je vous suggère de mettre en œuvre vous-même.
Vous pouvez utiliser une bibliothèque qui implémente SAML2P et à utiliser dans votre projet MVC. Certaines des bibliothèques que vous pourriez utiliser sont OIOSAML.NET ou commercial ComponentPro SAML.
Ou il y a une option pour régler l'intermédiaire IAM. De MVC vous définissez ideneity fournisseur de cet intermédiaire IAM à l'aide de ws -* (protocole standard façon, mis en œuvre dans visual studio). Cette IAM doit être configuré pour relayer vos messages d'authentification pour les PDI que vous souhaitez utiliser avec SAML2P. Après l'authentification de l'utilisateur IAM serait seulement de transformer les demandes et de délivrer un nouveau jeton que vous MVC de l'application des fiducies. Essayez de regarder Shibboleth ou ThinkTecture IdentityServer v2 (mais la seconde ne doit pas mettre en œuvre SAML2P de sorte que vous auriez à ajouter le support vous-même). Ou vous pourriez utiliser ADFS2.
Comment sur http://www.nuget.org/packages/SAML2/ ? Il dit que c'est une fourche de OIOSAML.NET.
Vous avez besoin d'une bibliothèque, sauf si vous voulez l'écrire vous-même. J'ai travaillé avec https://www.nuget.org/packages/ITfoxtec.Saml2.Mvc.