Signer des packages avec Azure Key Vault

Dans Visual Studio 2022 version 17.8 Préversion 2 et ultérieure, vous pouvez signer les packages d’application de bureau et UWP avec un certificat d’Azure Key Vault. Cet outil envoie votre synthèse de package d’application (hachage) à Azure Key Vault pour la signature de chiffrement avec votre certificat choisi. La synthèse signée est ensuite retournée et attachée à votre package localement.

Important

Ce processus est sécurisé. La clé privée du certificat ne quitte jamais Azure Key Vault.

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 des propriétés Key Vault, sélectionnez Certificats.
  2. Cliquez sur Generate/Import (Générer/Importer) .
  3. Dans l’écran Créer un certificat, choisissez les valeurs suivantes :
    • Méthode de création de certificat : importation
    • 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.

Remarque

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.

Remarque

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 certificat et cochez les cases Obtenir et Lister sous Opérations de gestion des certificats.
  4. Cliquez sur la liste déroulante Autorisations de secret et cochez les cases Obtenir et Lister sous Opérations de gestion des secrets.
  5. Cliquez sur Sélectionner le principal, recherchez l’utilisateur auquel vous accordez l’accès, puis cliquez sur Sélectionner.
  6. Cliquez sur Ajouter.
  7. Veillez à enregistrer vos modifications en cliquant sur Enregistrer.

Remarque

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.

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.

Activer la connexion dans les scénarios CI/CD

Pour activer la connexion aux scénarios CI/CD, vous devez configurer votre pipeline pour utiliser DefaultAzureCredential pour vous authentifier auprès d’Azure Key Vault. DefaultAzureCredential tente d’utiliser l’identité de l’agent de pipeline pour accéder au coffre de clés, s’il dispose des autorisations appropriées. Vous pouvez également spécifier un principal de service ou une identité managée à utiliser pour l’authentification.