Activer la communication HTTPS dans Azure Services cloud (support étendu)
Article
La communication avec Microsoft Azure Services cloud (support étendu) est effectuée à l’aide du protocole HTTPS (Hypertext Transfer Protocol Secure). Cet article explique comment activer la communication HTTPS pour Services cloud (support étendu).
Les étapes générales pour déployer un projet de Services cloud (support étendu) dans Azure sont les suivantes :
Préparez votre certificat.
Configurez votre projet.
Empaqueter le fichier projet dans les fichiers de définition de service (.csdef), de configuration de service (.cscfg) et de package de service (.cspkg) de votre service cloud.
Modifiez la configuration de la ressource Services cloud (support étendu), si nécessaire. Par exemple, vous pouvez apporter l’une des modifications suivantes :
Mettez à jour l’URL du package.
Configurez le paramètre d’URL.
Mettez à jour le paramètre des secrets du système d’exploitation.
Déployez et mettez à jour le nouveau projet dans Azure.
Note
Le projet peut être déployé via plusieurs méthodes différentes, telles que l’utilisation des outils suivants :
Un outil d’intégration continue et de livraison continue (CI/CD), tel qu’Azure DevOps
Quelle que soit la méthode de déploiement, les étapes de déploiement générales sont identiques.
Les deux premières étapes sont nécessaires pour toutes les méthodes de déploiement. Ces étapes sont décrites dans la section Modifications du code. Les étapes restantes sont également importantes, mais elles ne nécessitent pas toujours une intervention manuelle de l’utilisateur. Par exemple, les étapes peuvent être effectuées automatiquement par un outil tel que Visual Studio. Les trois dernières étapes sont décrites dans la section Modifications de configuration.
Modifications du code
Pour apporter les modifications du code pour préparer votre certificat et configurer votre projet, procédez comme suit :
Notez l’empreinte numérique du certificat (chaîne hexadécimale à 40 chiffres).
Dans le fichier de configuration de service (.cscfg) de votre projet, ajoutez l’empreinte numérique du certificat au rôle dans lequel vous souhaitez utiliser le certificat. Par exemple, si vous souhaitez utiliser le certificat comme certificat SSL pour communiquer avec un WebRole, vous pouvez ajouter du code XML semblable à l’extrait de code suivant pour WebRole1 le premier enfant de l’élément racine ServiceConfiguration :
Vous pouvez personnaliser le nom du certificat, mais il doit correspondre au nom du certificat utilisé dans le fichier de définition de service (.csdef).
Dans le fichier de définition de service (.csdef), ajoutez les éléments suivants.
Parent XPath
Éléments à ajouter
Attributs à utiliser
/ServiceDefinition/WebRole/Sites/Site/Bindings
Binding
name, endpointName
/ServiceDefinition/WebRole/Endpoints
InputEndpoint
name, protocol, port, certificate
/ServiceDefinition/WebRole
Certificates/Certificate
name, storeLocation, storeName, permissionLevel
L’élément Certificates doit être ajouté directement après la balise de fermeture Endpoints . Il ne contient aucun attribut. Il contient uniquement des éléments enfants Certificate .
Par exemple, votre fichier de définition de service peut ressembler au code XML suivant :
Dans cet exemple, le fichier de définition de service est modifié pour lier un point de terminaison d’entrée du HttpsIn protocole HTTPS sur le port 443. Il utilise le Certificate1 certificat pour un magasin qui a un nom My et un emplacement pour LocalMachine un niveau d’autorisation limité ou élevé. Les noms de certificat dans les éléments et Certificate les InputEndpoint deux correspondent les uns aux autres. Ils correspondent également au nom du certificat utilisé dans le fichier de configuration de service (.cscfg) de l’étape précédente.
Modifications de configuration
Les instructions de modification de la configuration de votre service cloud diffèrent en fonction de la façon dont votre service cloud a été déployé. Ces instructions sont affichées sous les onglets suivants. Chaque onglet représente une méthode de déploiement différente.
Chargez le package de service généré (<project-name.cspkg>) et les fichiers de configuration de service cloud (ServiceConfiguration.Cloud.cscfg) dans un conteneur de compte de stockage pour votre service cloud.
Note
Vous devez également charger le fichier de définition de service (ServiceDefinition.csdef) à l’aide du même processus décrit pour les deux autres fichiers.
Générez une URL de signature d’accès partagé (SAP) pour chacun des fichiers chargés.
Dans le Portail Azure, revenez à la page Vue d’ensemble de votre service cloud, puis sélectionnez Mettre à jour.
Dans la page Mettre à jour le service cloud, apportez les modifications suivantes sous l’onglet Informations de base :
Dans le champ Emplacement de définition de package/configuration/service , sélectionnez À partir de l’objet blob.
Dans le champ Charger un package (.cspkg, .zip), procédez comme suit :
Sélectionnez le lien Parcourir .
Sélectionnez le compte de stockage et le conteneur dans lequel vous avez chargé des fichiers.
Dans la page conteneur, sélectionnez le fichier correspondant (dans ce cas, <project-name.cspkg>), puis sélectionnez le bouton Sélectionner.
Pour le champ Charger une configuration (.cscfg) (et le fichier ServiceConfiguration.Cloud.cscfg ), répétez la sous-procédure décrite à l’étape précédente.
Pour le champ Charger une définition de service (.csdef) (et le fichier ServiceDefinition.csdef ), répétez à nouveau la sous-version.
Sélectionnez l’onglet Configuration.
Dans le champ Coffre de clés, sélectionnez le coffre de clés dans lequel vous avez chargé le certificat (plus haut dans la section Modifications du code). Une fois le certificat trouvé dans le coffre de clés sélectionné, le certificat répertorié affiche l’état trouvé.
Pour déployer le projet nouvellement configuré, sélectionnez le bouton Mettre à jour .
Chargez le fichier de package de service généré (<project-name.cspkg>) dans un conteneur de compte de stockage pour votre service cloud.
Note
Malgré ce qui est indiqué dans les instructions, vous n’avez pas besoin de charger le fichier de configuration du service cloud (ServiceConfiguration.Cloud.cscfg). Seul le fichier de package de service doit être chargé ici.
Générez une URL de signature d’accès partagé (SAP) pour le fichier de package de service chargé.
Dans le script PowerShell suivant, remplacez les espaces réservés au début du script par les valeurs réelles de chaque variable, puis exécutez le script pour mettre à jour votre service cloud :
Chargez le package de service généré (<project-name.cspkg>) et les fichiers de configuration de service cloud (ServiceConfiguration.Cloud.cscfg) dans un conteneur de compte de stockage pour votre service cloud.
Générez une URL de signature d’accès partagé (SAP) pour chacun des fichiers chargés.
Obtenez les valeurs suivantes à partir de la page de certificat du coffre de clés dans l’Portail Azure :
URL du certificat Key Vault
ID d’abonnement
Nom du groupe de ressources dans lequel le coffre de clés est déployé
Nom du service pour le coffre de clés
Dans votre modèle ARM d’origine pour le service cloud, recherchez la osProfile propriété. Si le projet de service cloud d’origine prend uniquement en charge la communication HTTP, la osProfile propriété est vide ("osProfile": {}). Pour permettre au service cloud de récupérer le certificat approprié à partir du coffre de clés approprié, spécifiez le coffre de clés que vous souhaitez utiliser dans le modèle ARM. Vous pouvez utiliser un paramètre pour représenter cette valeur. Vous pouvez également encoder en dur la valeur dans le modèle ARM, comme illustré dans l’exemple suivant :
Dans le texte JSON du modèle ARM, la id valeur du sourceVault paramètre fait partie de l’URL de la page Key Vault dans le Portail Azure. La certificateUrl valeur est l’URL du certificat de coffre de clés que vous avez trouvée précédemment. Les formats de texte de ces valeurs sont affichés dans le tableau suivant.
Déployez votre modèle ARM mis à jour contenant de nouveaux paramètres, tels que le jeton SAP de package, le jeton SAP de configuration, etc. Pour voir comment déclarer et spécifier ces paramètres, vous pouvez passer en revue un exemple de fichier de modèle ARM et un exemple de fichier de paramètres de modèle ARM. Ensuite, attendez que le déploiement se termine.
Note
Si vous recevez un message d’erreur indiquant que l’adresse IP publique est utilisée, supprimez l’adresse IP publique du fichier de configuration de service (.cscfg) et le fichier de paramètres du modèle ARM. Ne supprimez pas la déclaration d’adresse IP publique du fichier de modèle ARM lui-même.
Cette section explique comment utiliser le Kit de développement logiciel (SDK) Azure et C# pour apporter les modifications de configuration appropriées. Pour utiliser le Kit de développement logiciel (SDK) pour déployer le projet de service cloud et modifier la configuration associée, vous devez inscrire une application dans l’ID Microsoft Entra. Pour effectuer l’inscription, consultez le portail Utiliser le portail pour créer une application Microsoft Entra et un principal de service qui peuvent accéder à l’article sur les ressources . Le tableau suivant décrit les étapes spécifiques à suivre et la sous-section correspondante à lire dans cet article.
Étape
Lien sous-section
Attribuer le rôle propriétaire de votre abonnement à votre application
Configurez la stratégie d’accès pour le coffre de clés et accordez l’autorisation à votre application (au moins au niveau de lecture) afin d’accéder au certificat.
Chargez le fichier de package de service généré (<project-name.cspkg>) dans un conteneur de compte de stockage pour votre service cloud.
Note
Malgré ce qui est indiqué dans les instructions, vous n’avez pas besoin de charger le fichier de configuration du service cloud (ServiceConfiguration.Cloud.cscfg). Seul le fichier de package de service doit être chargé ici.
Générez une URL de signature d’accès partagé (SAP) pour le fichier de package de service chargé.
Obtenez les valeurs suivantes à partir de la page de certificat du coffre de clés dans l’Portail Azure :
URL du certificat Key Vault
ID d’abonnement
Nom du groupe de ressources dans lequel le coffre de clés est déployé
Nom du service pour le coffre de clés
Téléchargez l’exemple de projet (fichier d’archive compressé) et extrayez son contenu.
Ouvrez le fichier SDKSample\CreateCloudService\CreateCloudService\LoginHelper.cs dans un éditeur de texte. Dans la InitializeServiceClient méthode, remplacez les valeurs des tenantIdvariables , clientIdet clientCredentials chaîne avec les valeurs de l’ID de locataire, de l’ID d’application et du secret d’application, respectivement. Ces valeurs sont celles que vous avez copiées lorsque vous avez inscrit votre application.
Ouvrez le fichier SDKSample\CreateCloudService\CreateCloudService\Program.cs dans un éditeur de texte. Dans la Main méthode, remplacez certaines des valeurs initialisées des variables déclarées au début de la méthode. Le tableau suivant montre les noms des variables et les valeurs que vous devez utiliser pour elles.
Nom de la variable
Nouvelle valeur
m_subId
ID de l’abonnement qui contient le service cloud
csrgName
Nom du groupe de ressources qui contient le service cloud
csName
Nom de la ressource de service cloud
kvrgName
Nom du groupe de ressources qui contient la ressource key vault
kvName
Nom de la ressource key vault
kvsubid
ID de l’abonnement qui contient le coffre de clés (cela peut différer de l’ID d’abonnement du service cloud)
secretidentifier
URL du certificat key vault
filename
Chemin d’accès local à votre fichier de configuration de service (ServiceConfiguration.Cloud.cscfg)
packageurl
URL SAS du fichier de package de service (<project-name.cspkg>)
Dans le volet Explorateur de solutions Visual Studio, cliquez avec le bouton droit sur le nœud du projet, puis sélectionnez Gérer les packages NuGet. Sous l’onglet Parcourir , recherchez, sélectionnez et installez les packages suivants :
Microsoft.Azure.Management.ResourceManager
Microsoft.Azure.Management.Compute
Microsoft.Azure.Management.Storage
Azure.Identity
Microsoft.Rest.ClientRuntime.Azure.Authentication
Exécutez le projet, puis attendez que les messages apparaissent dans le volet Sortie . Si le volet affiche « quitter avec le code 0 », la mise à jour et le déploiement doivent fonctionner correctement. S’il affiche « quitter avec le code 1 », vous devrez peut-être vérifier les messages d’erreur pour examiner les problèmes.
Dans Visual Studio, vous devez apporter deux modifications de configuration. Vous configurez votre configuration de service afin que le contexte local soit aligné sur le contexte cloud, puis vous spécifiez l’emplacement de votre coffre de clés.
Pour la configuration du service, copiez le contenu du contexte cloud (fichier ServiceConfiguration.Cloud.cscfg ) et collez-les dans le contexte local (fichier ServiceConfiguration.Local.cscfg ). Avez-vous une autre configuration ou avez-vous toujours besoin du fichier de configuration local pour d’autres utilisations ? Si l’une ou l’autre condition est vraie, conservez les certificate éléments du contexte local existant.
Dans le volet Explorateur de solutions Visual Studio, cliquez avec le bouton droit sur le nœud du projet, puis sélectionnez Publier. Passez à l’Assistant Publier une application Azure jusqu’à atteindre l’onglet Paramètres . Sous cet onglet, définissez le champ Coffre de clés sur l’emplacement dans lequel votre coffre de clés est enregistré. Enfin, sélectionnez le bouton Publier , puis attendez que le déploiement se termine.
Après avoir apporté les modifications de configuration, les clients pourront communiquer avec votre site web de services cloud à l’aide du protocole HTTPS. Si votre certificat est auto-signé, le navigateur peut signaler un avertissement indiquant que le certificat n’est pas sécurisé, mais que le navigateur ne bloque pas la connexion.