Signer des packages avec Azure Key Vault

Dans Visual Studio 2019 version 16.6 Préversion 3 et les versions ultérieures, vous pouvez signer les packages d’application de bureau et UWP avec un certificat stocké dans Azure Key Vault pour les scénarios de développement et de test. Cet outil extrait vos clés publiques et privées de votre instance Azure Key Vault et les charge dans le magasin de certificats de votre ordinateur de développement afin de signer votre package avec SignTool.exe.

Important

Le processus décrit dans cet article est prévu uniquement pour les scénarios de développement et de test. Ce processus n’est pas considéré comme une bonne pratique pour les clés privées dont vous vous servez pour la distribution. Pour une sécurité optimale, vos clés privées destinés à la distribution doivent être gérées uniquement par les outils recommandés par votre plateforme CI/CD (intégration continue/déploiement continu).

Prérequis

  • Un compte Azure. Si vous n’avez pas encore de compte Azure, commencez ici.
  • Une instance Azure Key Vault. Pour plus d’informations, consultez Créer un coffre de clés.
  • Un certificat de signature de package valide importé dans Azure Key Vault. Le certificat par défaut généré par Azure Key Vault ne fonctionne pas pour la signature de code. Pour plus d’informations sur la création d’un certificat de signature de package, consultez Créer un certificat de signature de package.

Importer un certificat dans votre coffre de clés

Il est très simple d’ajouter un certificat à votre coffre de clés. Dans cet exemple, nous ajoutons un certificat de signature de code UWP valide appelé UwpSigningCert.pfx.

  1. Dans les pages de propriétés du coffre de clés, sélectionnez Certificats.
  2. Cliquez sur Générer/Importer.
  3. Dans l’écran Créer un certificat, choisissez les valeurs suivantes :
    • Méthode de création de certificat : Importer
    • Nom du certificat : UwpSigningCert
    • Charger le fichier de certificat : UwpSigningCert.pfx
    • Déchiffrer le certificat : Si votre certificat est protégé par un mot de passe, fournissez-le dans le champ Mot de passe.
  4. Cliquez sur Créer.

Notes

Ce certificat auto-signé ne sera pas approuvé par Windows, sauf s’il a été importé et approuvé par un administrateur. Sécurisez tous vos certificats, y compris les certificats auto-signés.

Configurer les stratégies d’accès de votre coffre de clés

Vous pouvez contrôler qui a accès au contenu de votre coffre de clés en utilisant des stratégies d’accès. Les stratégies d’accès Key Vault accordent les autorisations aux clés, secrets et certificats de manière séparée. Vous pouvez accorder à un utilisateur un accès aux clés et pas aux secrets. Les autorisations d’accès pour les clés, les secrets et les certificats sont gérées au niveau du coffre. Pour plus d'informations, consultez Sécurité Azure Key Vault.

Notes

Quand vous créez un coffre de clés dans un abonnement Azure, il est automatiquement associé au locataire Azure Active Directory de l’abonnement. Toute personne essayant de gérer ou récupérer le contenu d’un coffre de clés doit être authentifiée par Azure AD.

  1. Dans les pages de propriétés du coffre de clés, sélectionnez Stratégies d’accès.
  2. Sélectionnez + Ajouter une stratégie d’accès.
  3. Cliquez sur la liste déroulante Autorisations de clé et cochez les cases Obtenir et Lister sous Opérations de gestion des clés.
  4. Cliquez sur Sélectionner le principal, recherchez l’utilisateur auquel vous accordez l’accès, puis cliquez sur Sélectionner.
  5. Cliquez sur Ajouter.
  6. Veillez à enregistrer vos modifications en cliquant sur Enregistrer.

Notes

Il est déconseillé d’accorder aux utilisateurs un accès direct à un coffre de clés. Dans l’idéal, les utilisateurs doivent être ajoutés à un groupe Azure AD, qui bénéficie lui-même d’un accès au coffre de clés.

Sélectionner un certificat à partir de votre coffre de clés dans Visual Studio

L’Assistant Création de packages d’application dans Visual Studio vous permet de choisir le certificat qui sera utilisé pour signer votre package d’application. Vous pouvez choisir le certificat de signature de package via Azure Key Vault. Vous devez fournir l’URI du coffre de clés qui contient le certificat, et votre compte Microsoft authentifié dans Visual Studio doit disposer des autorisations appropriées pour y accéder.

  1. Ouvrez votre projet d’application UWP ou votre projet de création de packages d’applications Windows dans Visual Studio.
  2. Sélectionnez Publier -> Package -> Créer des packages d’application... pour ouvrir l’Assistant Création de packages d’application.
  3. Dans la page Sélectionner la méthode de distribution, sélectionnez Chargement indépendant.
  4. Dans la page Sélectionner la méthode de signature, cliquez sur Sélectionner dans Azure Key Vault... .
  5. Une fois la boîte de dialogue Sélectionner un certificat dans Azure Key Vault affichée, utilisez le sélecteur de compte pour choisir le compte pour lequel vous avez configuré une stratégie d’accès.
  6. Entrez l’URI du coffre de clés. L’URI se trouve dans la page Vue d’ensemble du coffre de clés et est identifié par le Nom DNS.
  7. Cliquez sur le bouton Afficher les métadonnées.
  8. Une fois le chargement des certificats terminé, sélectionnez dans la liste celui qui vous intéresse (par exemple, UwpSigningCert).
  9. Cliquez sur OK.

Notes

Le certificat est alors importé dans votre magasin de certificats local où il sera utilisé pour la signature de package.

Déchiffrer votre certificat avec un mot de passe d’Azure Key Vault

Si vous utilisez un certificat local protégé par un mot de passe (.pfx) pour signer votre package d’application, il peut être difficile de gérer le mot de passe utilisé pour le déchiffrer. Quand vous importez le certificat dans l’Assistant Création de packages d’application, vous êtes invité à entrer manuellement le mot de passe. Vous avez également la possibilité de choisir le mot de passe dans Azure Key Vault.

  1. Ouvrez votre projet d’application UWP ou votre projet de création de packages d’applications Windows dans Visual Studio.
  2. Sélectionnez Publier -> Package -> Créer des packages d’application... pour ouvrir l’Assistant Création de packages d’application.
  3. Dans la page Sélectionner la méthode de distribution, sélectionnez Chargement indépendant.
  4. Dans la page Sélectionner la méthode de signature, cliquez sur À partir d’un fichier.
  5. Une fois la boîte de dialogue Le certificat est protégé par un mot de passe affichée, cliquez sur Sélectionner un mot de passe à partir du coffre de clés.
  6. Une fois la boîte de dialogue Sélectionner un mot de passe à partir d’Azure Key Vault affichée, utilisez le sélecteur de compte pour choisir le compte pour lequel vous avez configuré une stratégie d’accès.
  7. Entrez l’URI du coffre de clés. L’URI se trouve dans la page Vue d’ensemble du coffre de clés et est identifié par le Nom DNS.
  8. Cliquez sur le bouton Afficher les métadonnées.
  9. Une fois le chargement des mots de passe terminé, sélectionnez dans la liste celui qui vous intéresse (par exemple, UwpSigningCertPassword).
  10. Cliquez sur OK.