Signer des packages avec Azure Key VaultSign packages with 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.In Visual Studio 2019 version 16.6 Preview 3 and later versions, you can sign UWP and desktop app packages with a certificate stored in Azure Key Vault for development and test scenarios. 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.This tool extracts your public and private keys from your Azure Key Vault and loads them in the certificate store on your development computer in order to sign your package with SignTool.exe.

Important

Le processus décrit dans cet article est prévu uniquement pour les scénarios de développement et de test.The process described in this article is intended for development and test scenarios only. Ce processus n’est pas considéré comme une bonne pratique pour les clés privées dont vous vous servez pour la distribution.This process is not considered best practice for your private keys used for 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).To ensure best security practices, your private keys for distribution should be handled only by the tooling recommended by your Continuous Integration and Continuous Deployment (CI/CD) platform.

PrérequisPrerequisites

  • Un compte Azure.An Azure account. Si vous n’avez pas encore de compte Azure, commencez ici.If you do not already have an Azure account, start here.
  • Une instance Azure Key Vault.An Azure Key Vault. Pour plus d’informations, consultez Créer un coffre de clés.For more info, see Create a Key Vault.
  • Un certificat de signature de package valide importé dans Azure Key Vault.A valid package signing certificate imported into Azure Key Vault. Le certificat par défaut généré par Azure Key Vault ne fonctionne pas pour la signature de code.The default certificate generated by Azure Key Vault will not work for code signing. Pour plus d’informations sur la création d’un certificat de signature de package, consultez Créer un certificat de signature de package.For details on how to create a package signing certificate, see Create a certificate for package signing.

Importer un certificat dans votre coffre de clésImport a certificate to your Key Vault

Il est très simple d’ajouter un certificat à votre coffre de clés.Adding a certificate to your Key Vault is very simple. Dans cet exemple, nous ajoutons un certificat de signature de code UWP valide appelé UwpSigningCert.pfx.In this example, we add a valid UWP code signing certificate called UwpSigningCert.pfx.

  1. Dans les pages de propriétés du coffre de clés, sélectionnez Certificats.On the Key Vault properties pages, select Certificates.
  2. Cliquez sur Générer/Importer.Click on Generate/Import.
  3. Dans l’écran Créer un certificat, choisissez les valeurs suivantes :On the Create a certificate screen, choose the following values:
    • Méthode de création de certificat : ImporterMethod of Certificate Creation: Import
    • Nom du certificat : UwpSigningCertCertificate Name: UwpSigningCert
    • Charger le fichier de certificat : UwpSigningCert.pfxUpload Certificate File: 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.Decrypt Certificate: If your certificate is password-protected, provide it in the Password field.
  4. Cliquez sur Créer.Click Create.

Notes

Ce certificat auto-signé ne sera pas approuvé par Windows, sauf s’il a été importé et approuvé par un administrateur.This self-signed certificate will not be trusted by Windows unless it has been imported and trusted by an administrator. Sécurisez tous vos certificats, y compris les certificats auto-signés.Keep all of your certificates secure including self-signed certificates.

Configurer les stratégies d’accès de votre coffre de clésConfigure the access policies for your Key Vault

Vous pouvez contrôler qui a accès au contenu de votre coffre de clés en utilisant des stratégies d’accès.You can control who has access to the contents of your Key Vault by using access policies. Les stratégies d’accès Key Vault accordent les autorisations aux clés, secrets et certificats de manière séparée.Key Vault access policies grant permissions separately to keys, secrets, and certificates. Vous pouvez accorder à un utilisateur un accès aux clés et pas aux secrets.You can grant a user access only to keys and not to secrets. Les autorisations d’accès pour les clés, les secrets et les certificats sont gérées au niveau du coffre.Access permissions for keys, secrets, and certificates are managed at the vault level. Pour plus d'informations, consultez Sécurité Azure Key Vault.For more information, see Azure Key Vault security.

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.When you create a Key Vault in an Azure subscription, it is automatically associated with the Azure Active Directory tenant of the subscription. 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.Anyone trying to manage or retrieve content from a Key Vault must be authenticated by Azure AD.

  1. Dans les pages de propriétés du coffre de clés, sélectionnez Stratégies d’accès.On the Key Vault properties pages, select Access policies.
  2. Sélectionnez + Ajouter une stratégie d’accès.Select + Add Access Policy.
  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.Click on the Key permissions dropdown and check the boxes for Get and List under Key Management Operations.
  4. Cliquez sur Sélectionner le principal, recherchez l’utilisateur auquel vous accordez l’accès, puis cliquez sur Sélectionner.Click on Select principal, search for the user you are granting access to, and click Select.
  5. Cliquez sur Ajouter.Click Add.
  6. Veillez à enregistrer vos modifications en cliquant sur Enregistrer.Make sure to save your changes by clicking Save.

Notes

Il est déconseillé d’accorder aux utilisateurs un accès direct à un coffre de clés.Giving users direct access to a key vault is discouraged. 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.Ideally, users should be added to an Azure AD group, which is in turn given access to the key vault.

Sélectionner un certificat à partir de votre coffre de clés dans Visual StudioSelect a certificate from your Key Vault in 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.The Create App Packages wizard in Visual Studio enables you to choose the certificate that will be used to sign your app package. Vous pouvez choisir le certificat de signature de package via Azure Key Vault.You can choose the package signing certificate 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.You must provide the URI of the Key Vault that contains the certificate, and your Microsoft account authenticated in Visual Studio must have the correct permissions to access it.

  1. Ouvrez votre projet d’application UWP ou votre projet de création de packages d’applications Windows dans Visual Studio.Open your UWP application project or desktop Windows application packaging project in Visual Studio.
  2. Sélectionnez Publier -> Package -> Créer des packages d’application... pour ouvrir l’Assistant Création de packages d’applications.Select Publish -> Package -> Create app packages... to open the Create App Packages wizard.
  3. Dans la page Sélectionner la méthode de distribution, sélectionnez Chargement indépendant.On the Select distribution method page, select Sideloading.
  4. Dans la page Sélectionner la méthode de signature, cliquez sur Sélectionner dans Azure Key Vault... .On the Select signing method page, click Select from 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.After the Select a certificate from Azure Key Vault dialog appears, use the account picker to choose the account for which you have configured an access policy.
  6. Entrez l’URI du coffre de clés.Enter the URI of the Key Vault. L’URI se trouve dans la page Vue d’ensemble du coffre de clés et est identifié par le Nom DNS.The URI can be found on the Overview page of the Key Vault and is identified by DNS Name.
  7. Cliquez sur le bouton Afficher les métadonnées.Click the View Metadata button.
  8. Une fois le chargement des certificats terminé, sélectionnez dans la liste celui qui vous intéresse (par exemple, UwpSigningCert).After the certificates have finished loading, select the one you want from the list (for example, UwpSigningCert).
  9. Cliquez sur OK.Click OK.

Notes

Le certificat est alors importé dans votre magasin de certificats local où il sera utilisé pour la signature de package.The certificate will be imported to your local certificate store where it will be used for package signing.

Déchiffrer votre certificat avec un mot de passe d’Azure Key VaultDecrypt your certificate with a password from 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.If you are using a local password-protected certificate (.pfx) to sign your app package, it can be difficult to manage the password used to decrypt it. Quand vous importez le certificat dans l’Assistant Création de packages d’application, vous êtes invité à entrer manuellement le mot de passe.When you are importing the certificate in the Create App Packages wizard, you will be prompted to manually enter the password. Vous avez également la possibilité de choisir le mot de passe dans Azure Key Vault.Alternatively, there is an option to choose the password from Azure Key Vault.

  1. Ouvrez votre projet d’application UWP ou votre projet de création de packages d’applications Windows dans Visual Studio.Open your UWP application project or desktop Windows application packaging project in Visual Studio.
  2. Sélectionnez Publier -> Package -> Créer des packages d’application... pour ouvrir l’Assistant Création de packages d’application.Select Publish -> Package -> Create app packages... to open the Create App Packages wizard.
  3. Dans la page Sélectionner la méthode de distribution, sélectionnez Chargement indépendant.On the Select distribution method page, select Sideloading.
  4. Dans la page Sélectionner la méthode de signature, cliquez sur À partir d’un fichier.On the Select signing method page, click Select From File...
  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.After the Certificate is password protected dialog appears, click Select Password From Key Vault.
  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.After the Select a password from Azure Key Vault dialog appears, use the account picker to choose the account for which you have configured an access policy.
  7. Entrez l’URI du coffre de clés.Enter the URI of the Key Vault. L’URI se trouve dans la page Vue d’ensemble du coffre de clés et est identifié par le Nom DNS.The URI can be found on the Overview page of the Key Vault and is identified by DNS Name.
  8. Cliquez sur le bouton Afficher les métadonnées.Click the View Metadata button.
  9. Une fois le chargement des mots de passe terminé, sélectionnez dans la liste celui qui vous intéresse (par exemple, UwpSigningCertPassword).After the passwords have finished loading, select the one you want from the list (for example, UwpSigningCertPassword).
  10. Cliquez sur OK.Click OK.