Cette documentation est archivée et n’est pas conservée.

Déploiement de services et d'applications fédérés ACS dans Azure

Mis à jour: juin 2015

  • Microsoft Azure Active Directory Access Control (également appelé Access Control Service ou ACS)

  • Windows Identity Foundation (WIF)

  • Microsoft Azure

Cette rubrique récapitule les recommandations que vous devez suivre lors du développement d'applications et de services qui utilisent ACS et qui seront déployés dans Azure.

  1. Gérer les ports générés de manière dynamique avec l'émulateur de calcul.

  2. Déployer le runtime Windows Identity Foundation (WIF) dans Azure.

  3. Chiffrer les cookies avec RSA.

  4. Configurer les assemblys appelés par l'intermédiaire de la réflexion pour le déploiement dans Azure.

Cette section s'applique quand vous créez des applications web. Elle ne s'applique pas quand vous créez des services web. L'émulateur de calcul fait partie des outils du Kit de développement logiciel SDK Azure. Vous pouvez l'utiliser pour exécuter, déboguer et peaufiner votre application avant de la déployer en tant que service hébergé dans 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 l'émulateur de calcul, consultez Exécuter une application Windows Azure dans l'émulateur de calcul (http://go.microsoft.com/fwlink/?LinkId=221212).

Si l'émulateur de calcul alloue une adresse IP différente de celle 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 dans cette URL n'existera. 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.

  1. Pour ouvrir l'invite de commandes, cliquez sur Démarrer, tapez cmd, puis appuyez sur Entrée.

  2. Exécutez la commande suivante pour afficher la liste des adresses IP d'hôtes locaux avec des ports utilisés : netstat –a –n | findstr 127.0.0.1

  3. Parcourez la liste et identifiez un port qui n'est pas utilisé actuellement. Vous utiliserez ce port à l'étape suivante.

  4. 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.

  5. Dans la page Propriétés de rôle Web, cliquez sur l'onglet Points de terminaison.

  6. Dans le fichier Port public, spécifiez la valeur de port identifiée à l'Étape 3.

  7. Pour enregistrer votre travail, appuyez sur Ctrl+S.

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 de Azure. Pour exécuter votre application du cloud prenant en charge les revendications, 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.

  1. Dans l'Explorateur de solutions, recherchez votre application prenant en charge les revendications.

  2. Développez le dossier Références.

  3. Recherchez l'assembly Microsoft.IdentityModel sous le dossier Références.

  4. Cliquez avec le bouton droit sur l'assembly, puis cliquez sur Propriétés.

  5. Dans la fenêtre de propriétés, affectez la valeur True à Copie locale et la valeur False à Version spécifique.

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 dans Azure. Pour être sûr que votre application web du cloud prenant en charge les revendications fonctionne correctement quand elle est déployée dans Azure, vous devez ajouter la fonctionnalité de chiffrement des cookies à l'aide de RSA.

  1. Dans l'Explorateur de solutions, recherchez votre application web du cloud prenant en charge les revendications.

  2. Ouvrez le fichier global.asax.cs, qui contient le code-behind du fichier global.asax, dans l'éditeur Visual Studio.

  3. Ajoutez les déclarations suivantes :

    using Microsoft.IdentityModel.Tokens;
    using Microsoft.IdentityModel.Web;
    using Microsoft.IdentityModel.Web.Configuration;
    
  4. 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;
    
    noteRemarque
    Si vous avez déjà ajouté le gestionnaire d'événements Application_Start, vous pouvez le mettre à jour pour inclure ce code.

  5. Enregistrez votre travail.

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 être sûr que ces assemblys sont déployés dans Azure, vous devez effectuer des étapes supplémentaires pour les ajouter au package de déploiement.

  1. Développez le dossier bin du service ou de l'application web du cloud prenant en charge les revendications.

  2. Cliquez avec le bouton droit sur l'assembly, puis cliquez sur Inclure dans le projet.

  3. Cliquez avec le bouton droit sur la même bibliothèque, puis cliquez sur Propriétés.

  4. Dans la fenêtre Propriétés, cliquez sur Copier si plus récent pour l'option Copier dans le répertoire de sortie.

Voir aussi

Afficher: