Déploiement de services et d'applications fédérés ACS dans Azure
S'applique à
Microsoft Azure Active Directory Access Control (également appelé Access Control Service ou ACS)
Windows Identity Foundation (WIF)
Microsoft Azure
Résumé
Cette rubrique consolide les instructions que vous devez prendre en compte lorsque vous développez des applications et des services qui utilisent ACS et qui seront déployés sur Azure.
Objectifs
Gérer les ports générés de manière dynamique avec l'émulateur de calcul.
Déployez Windows runtime Identity Foundation (WIF) sur Azure.
Chiffrer les cookies avec RSA.
Configurez les assemblys appelés par la réflexion à déployer sur Azure.
Gérer les ports générés de manière dynamique avec l'émulateur de calcul
Cette section s'applique quand vous créez des applications web. Elle ne s'applique pas quand vous créez des services web. Le Emulator de calcul fait partie des outils du Kit de développement logiciel (SDK) Azure. Vous pouvez l’utiliser pour exécuter, tester, déboguer et affiner votre application avant de le déployer en tant que service hébergé sur Azure. Dans l'émulateur de calcul, vous ne pouvez pas allouer d'adresse IP unique. L'émulateur de calcul tente d'assigner le port demandé. Si ce port n'est pas disponible, il alloue le meilleur numéro de port suivant disponible. Cela signifie que dans l'émulateur de calcul, le numéro de port assigné à votre service peut être différent de celui que vous avez spécifié dans le fichier de définition. Pour plus d’informations sur le Emulator de calcul, consultez Vue d’ensemble des Windows Azure Compute Emulator (https://go.microsoft.com/fwlink/?LinkId=221212).
Si Le calcul Emulator alloue une adresse IP différente de l’adresse IP configurée comme URL de retour dans le portail de gestion ACS, ACS redirige les demandes authentifiées vers l’URL configurée dans le champ URL de retour de la configuration de partie de confiance, mais aucune page correspondante de cette URL n’existe. Par conséquent, une page vierge sera affichée.
Pour contourner ce comportement, configurez le port public du point de terminaison de votre application web du cloud sur un port disponible sur votre ordinateur. Ainsi, l'émulateur de calcul n'assignera pas de port aléatoire pour éviter toute collision.
Pour configurer le point de terminaison pour utiliser un port disponible
Pour ouvrir l'invite de commandes, cliquez sur Démarrer, tapez cmd, puis appuyez sur Entrée.
Exécutez la commande suivante pour afficher la liste des adresses IP hôtes locales avec des ports utilisés : netstat –a -n | findstr 127.0.0.1
Parcourez la liste et identifiez un port qui n'est pas utilisé actuellement. Vous utiliserez ce port à l'étape suivante.
Dans l'Explorateur de solutions, double-cliquez sur votre rôle, qui se trouve sous le dossier Rôles dans le projet du cloud. La page de propriété du rôle s'affiche.
Dans la page Propriétés du rôle web , cliquez sur l’onglet Points de terminaison .
Dans le fichier **Port public **, spécifiez la valeur de port que vous avez identifiée à l’étape 3.
Pour enregistrer votre travail, appuyez sur Ctrl+S.
Déployer le runtime Windows Identity Foundation dans Windows Azure
Windows Identity Foundation (WIF) est un runtime hors-bande qui doit être installé sur l'ordinateur pour que votre application prenant en charge les revendications puisse l'utiliser. WIF n’est pas installé par défaut sur les instances Azure. Pour exécuter votre application prenant en charge les revendications cloud, vous devez rendre le runtime WIF disponible sur l’instance Azure. Le plus simple consiste à inclure l'assembly WIF avec le package de déploiement.
Pour inclure l'assembly WIF avec le package de déploiement Windows Azure
Dans l'Explorateur de solutions, recherchez votre application prenant en charge les revendications.
Développez le dossier Références.
Recherchez l'assembly Microsoft.IdentityModel sous le dossier Références.
Cliquez avec le bouton droit sur l'assembly, puis cliquez sur Propriétés.
Dans la fenêtre des propriétés, spécifiez **Copier local ** en tant que true et version spécifique en tant que false.
Chiffrer les cookies avec RSA
Cette section s'applique quand vous créez des applications web. Par défaut, WIF protège les cookies grâce au chiffrement à l'aide d'interfaces de programmation d'application de protection des données (DPAPI). DPAPI n’est pas disponible sur Azure. Pour vous assurer que vos fonctions d’application web prenant en compte les revendications cloud fonctionnent correctement lorsqu’elles sont déployées sur Azure, vous devez ajouter des fonctionnalités de chiffrement des cookies à l’aide de RSA.
Pour chiffrer les cookies avec RSA
Dans l'Explorateur de solutions, recherchez votre application web du cloud prenant en charge les revendications.
Ouvrez le fichier global.asax.cs, qui est le code derrière le fichier global.asax, dans l’éditeur Visual Studio.
Ajoutez les déclarations suivantes :
using Microsoft.IdentityModel.Tokens; using Microsoft.IdentityModel.Web; using Microsoft.IdentityModel.Web.Configuration;
Ajoutez le code suivant :
void OnServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e) { // // Use the <serviceCertificate> to protect the cookies that are // sent to the client. // List<CookieTransform> sessionTransforms = new List<CookieTransform>(new CookieTransform[] { new DeflateCookieTransform(), new RsaEncryptionCookieTransform(e.ServiceConfiguration.ServiceCertificate), new RsaSignatureCookieTransform(e.ServiceConfiguration.ServiceCertificate) }); SessionSecurityTokenHandler sessionHandler = new SessionSecurityTokenHandler(sessionTransforms.AsReadOnly()); e.ServiceConfiguration.SecurityTokenHandlers.AddOrReplace(sessionHandler); } void Application_Start(object sender, EventArgs e) { FederatedAuthentication.ServiceConfigurationCreated += OnServiceConfigurationCreated;
Notes
Si vous avez déjà ajouté le gestionnaire d'événements Application_Start, vous pouvez le mettre à jour pour inclure ce code.
Enregistrez votre travail.
Configurer les assemblys qui sont appelés par l'intermédiaire de la réflexion pour le déploiement dans Windows Azure
Dans certains cas, des assembly sont appelés par l'intermédiaire de la réflexion, par exemple lors du développement de services WCF REST (Representational State Transfer) ou de HttpModules qui inspectent des jetons SWT entrants. Pour vous assurer que ces assemblys sont déployés sur Azure, vous devez effectuer des étapes supplémentaires pour les ajouter au package de déploiement.
Pour ajouter des assemblys qui sont appelés par l'intermédiaire de la réflexion au package déploiement Windows Azure
Développez le dossier bin du service ou de l'application web du cloud prenant en charge les revendications.
Cliquez avec le bouton droit sur l'assembly, puis cliquez sur Inclure dans le projet.
Cliquez avec le bouton droit sur la même bibliothèque, puis cliquez sur Propriétés.
Dans la fenêtre Propriétés, cliquez sur Copier si plus récent pour l'option Copier dans le répertoire de sortie.