Signieren von Paketen mit Azure Key VaultSign packages with Azure Key Vault

In Visual Studio 2019, Version 16.6 Preview 3 und höheren Versionen, können Sie UWP- und Desktop-App-Pakete mit einem Zertifikat signieren, das in Azure Key Vault für Entwicklungs- und Testszenarien gespeichert ist.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. Mit diesem Tool werden Ihre öffentlichen und privaten Schlüssel aus Ihrem Azure Key Vault extrahiert und in den Zertifikatspeicher auf dem Entwicklungscomputer geladen, um das Paket mit „SignTool.exe“ zu signieren.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.

Wichtig

Der in diesem Artikel beschriebene Prozess ist nur für Entwicklungs- und Testszenarien vorgesehen.The process described in this article is intended for development and test scenarios only. Diese Vorgehensweise gilt nicht als bewährte Methode für private Schlüssel, die für die Verteilung verwendet werden.This process is not considered best practice for your private keys used for distribution. Damit optimale Sicherheit gewährleistet ist, sollten Ihre privaten Schlüssel für die Verteilung nur von den Tools verarbeitet werden, die von Ihrer CI/CD-Plattform (Continuous Integration/Continuous Deployment) empfohlen sind.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.

VoraussetzungenPrerequisites

  • Ein Azure-Konto.An Azure account. Wenn Sie noch nicht über ein Azure-Konto verfügen, starten Sie hier.If you do not already have an Azure account, start here.
  • Ein Azure Key Vault.An Azure Key Vault. Weitere Informationen finden Sie unter Erstellen eines Schlüsseltresors.For more info, see Create a Key Vault.
  • Ein gültiges Paketsignaturzertifikat, das in Azure Key Vault importiert wurde.A valid package signing certificate imported into Azure Key Vault. Das von Azure Key Vault generierte Standardzertifikat eignet sich nicht zum Signieren von Code.The default certificate generated by Azure Key Vault will not work for code signing. Details zum Erstellen eines Paketsignaturzertifikats finden Sie unter Erstellen eines Paketsignaturzertifikats.For details on how to create a package signing certificate, see Create a certificate for package signing.

Importieren eines Zertifikats in den Key VaultImport a certificate to your Key Vault

Das Hinzufügen eines Zertifikats zum Key Vault ist sehr einfach.Adding a certificate to your Key Vault is very simple. In diesem Beispiel fügen wir ein gültiges UWP-Codesignaturzertifikat mit dem Namen UwpSigningCert.pfx hinzu.In this example, we add a valid UWP code signing certificate called UwpSigningCert.pfx.

  1. Wählen Sie auf der Eigenschaftenseite des Schlüsseltresors Zertifikate aus.On the Key Vault properties pages, select Certificates.
  2. Klicken Sie auf Generieren/Importieren.Click on Generate/Import.
  3. Wählen Sie auf dem Bildschirm Zertifikat erstellen die folgenden Werte aus:On the Create a certificate screen, choose the following values:
    • Methode der Zertifikaterstellung: importierenMethod of Certificate Creation: Import
    • Zertifikatname: UwpSigningCertCertificate Name: UwpSigningCert
    • Hochladen der Zertifikatdatei: UwpSigningCert.pfxUpload Certificate File: UwpSigningCert.pfx
    • Entschlüsseln des Zertifikats: Wenn Ihr Zertifikat durch ein Kennwort geschützt ist, geben Sie das Kennwort im Feld Kennwort ein.Decrypt Certificate: If your certificate is password-protected, provide it in the Password field.
  4. Klicken Sie auf Erstellen.Click Create.

Hinweis

Dieses selbstsignierte Zertifikat ist für Windows nicht vertrauenswürdig, es sei denn, es wurde von einem Administrator importiert und als vertrauenswürdig gekennzeichnet.This self-signed certificate will not be trusted by Windows unless it has been imported and trusted by an administrator. Schützen Sie alle Ihre Zertifikate, einschließlich selbstsignierter Zertifikate.Keep all of your certificates secure including self-signed certificates.

Konfigurieren der Zugriffsrichtlinien für Ihren Key VaultConfigure the access policies for your Key Vault

Mithilfe von Zugriffsrichtlinien können Sie steuern, wer Zugriff auf die Inhalte Ihres Schlüsseltresors hat.You can control who has access to the contents of your Key Vault by using access policies. Schlüsseltresor-Zugriffsrichtlinien erteilen Berechtigungen separat an Schlüssel, Geheimnisse und Zertifikate.Key Vault access policies grant permissions separately to keys, secrets, and certificates. Sie können einem Benutzer Zugriff nur auf Schlüssel, nicht aber auf Geheimnisse erteilen.You can grant a user access only to keys and not to secrets. Die Zugriffsberechtigungen für Schlüssel, Geheimnisse und Zertifikate werden auf Tresorebene verwaltet.Access permissions for keys, secrets, and certificates are managed at the vault level. Weitere Informationen finden Sie unter Azure Key Vault – Sicherheit.For more information, see Azure Key Vault security.

Hinweis

Wenn Sie in einem Azure-Abonnement einen Schlüsseltresor erstellen, wird dieser automatisch dem Azure Active Directory-Mandanten des Abonnements zugeordnet.When you create a Key Vault in an Azure subscription, it is automatically associated with the Azure Active Directory tenant of the subscription. Jeder, der versucht, Inhalte in einem Schlüsseltresor zu verwalten oder sie aus ihm abzurufen, muss mithilfe von Azure AD authentifiziert werden.Anyone trying to manage or retrieve content from a Key Vault must be authenticated by Azure AD.

  1. Wählen Sie auf den Eigenschaftenseiten des Schlüsseltresors Zugriffsrichtlinien aus.On the Key Vault properties pages, select Access policies.
  2. Wählen Sie + Zugriffsrichtlinie hinzufügen aus.Select + Add Access Policy.
  3. Klicken Sie auf das Dropdownfeld Schlüsselberechtigungen, und aktivieren Sie unter Schlüsselverwaltungsvorgänge die Kontrollkästchen für Abrufen und Auflisten.Click on the Key permissions dropdown and check the boxes for Get and List under Key Management Operations.
  4. Klicken Sie auf Prinzipal auswählen, suchen Sie nach dem Benutzer, dem Sie Zugriff erteilen möchten, und klicken Sie auf Auswählen.Click on Select principal, search for the user you are granting access to, and click Select.
  5. Klicken Sie auf Hinzufügen.Click Add.
  6. Achten Sie darauf, Ihre Änderungen zu speichern, indem Sie auf Speichern klicken.Make sure to save your changes by clicking Save.

Hinweis

Es wird davon abgeraten, Benutzern direkten Zugriff auf einen Schlüsseltresor zu erteilen.Giving users direct access to a key vault is discouraged. Im Idealfall sollten Benutzer einer Azure AD-Gruppe hinzugefügt werden, der ihrerseits Zugriff auf den Schlüsseltresor erteilt wird.Ideally, users should be added to an Azure AD group, which is in turn given access to the key vault.

Auswählen eines Zertifikats aus Ihrem Schlüsseltresor in Visual StudioSelect a certificate from your Key Vault in Visual Studio

Der Assistent App-Pakete erstellen in Visual Studio ermöglicht Ihnen die Auswahl des Zertifikats, das zum Signieren Ihres App-Pakets verwendet werden soll.The Create App Packages wizard in Visual Studio enables you to choose the certificate that will be used to sign your app package. Sie können das Paketsignaturzertifikat über Azure Key Vault auswählen.You can choose the package signing certificate via Azure Key Vault. Sie müssen den URI des Schlüsseltresors bereitstellen, der das Zertifikat enthält, und Ihr in Visual Studio authentifiziertes Microsoft-Konto muss die erforderlichen Berechtigungen für den Zugriff aufweisen.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. Öffnen Sie in Visual Studio Ihr UWP-Anwendungsprojekt oder das Desktop-Paketerstellungsprojekt für Windows-Anwendungen.Open your UWP application project or desktop Windows application packaging project in Visual Studio.
  2. Wählen Sie Veröffentlichen -> Pakete -> App-Pakete erstellen... aus, um den Assistenten App-Pakete erstellen zu öffnen.Select Publish -> Package -> Create app packages... to open the Create App Packages wizard.
  3. Wählen Sie auf der Seite Verteilungsmethode auswählen Querladen aus.On the Select distribution method page, select Sideloading.
  4. Klicken Sie auf der Seite Signaturmethode auswählen auf Aus Azure Key Vault auswählen... .On the Select signing method page, click Select from Azure Key Vault....
  5. Wenn das Dialogfeld Zertifikat aus Azure Key Vault auswählen angezeigt wird, verwenden Sie die Kontoauswahl, um das Konto auszuwählen, für das Sie eine Zugriffsrichtlinie konfiguriert haben.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. Geben Sie den URI des Schlüsseltresors ein.Enter the URI of the Key Vault. Sie finden den URI auf der Übersichtsseite des Schlüsseltresors, er kann über den DNS-Namen identifiziert werden.The URI can be found on the Overview page of the Key Vault and is identified by DNS Name.
  7. Klicken Sie auf die Schaltfläche Metadaten anzeigen.Click the View Metadata button.
  8. Nachdem das Laden der Zertifikate abgeschlossen ist, wählen Sie das gewünschte Zertifikat in der Liste aus (beispielsweise UwpSigningCert).After the certificates have finished loading, select the one you want from the list (for example, UwpSigningCert).
  9. Klicken Sie auf OK.Click OK.

Hinweis

Das Zertifikat wird in Ihren lokalen Zertifikatspeicher importiert, wo es zum Signieren von Paketen verwendet wird.The certificate will be imported to your local certificate store where it will be used for package signing.

Entschlüsseln Ihres Zertifikats mit einem Kennwort aus Azure Key VaultDecrypt your certificate with a password from Azure Key Vault

Wenn Sie ein lokales, per Kennwort geschütztes Zertifikat (PFX) zum Signieren Ihres App-Pakets verwenden, kann die Verwaltung des zum Entschlüsseln verwendeten Kennworts schwierig sein.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. Wenn Sie das Zertifikat in den Assistenten App-Pakete erstellen importieren, werden Sie zur manuellen Eingabe des Kennwort aufgefordert.When you are importing the certificate in the Create App Packages wizard, you will be prompted to manually enter the password. Alternativ besteht die Option, das Kennwort in Azure Key Vault auszuwählen.Alternatively, there is an option to choose the password from Azure Key Vault.

  1. Öffnen Sie in Visual Studio Ihr UWP-Anwendungsprojekt oder das Desktop-Paketerstellungsprojekt für Windows-Anwendungen.Open your UWP application project or desktop Windows application packaging project in Visual Studio.
  2. Wählen Sie Veröffentlichen -> Pakete -> App-Pakete erstellen... aus, um den Assistenten App-Pakete erstellen zu öffnen.Select Publish -> Package -> Create app packages... to open the Create App Packages wizard.
  3. Wählen Sie auf der Seite Verteilungsmethode auswählen Querladen aus.On the Select distribution method page, select Sideloading.
  4. Klicken Sie auf der Seite Signaturmethode auswählen auf Aus Datei auswählen... .On the Select signing method page, click Select From File...
  5. Wenn das Dialogfeld Zertifikat ist kennwortgeschützt angezeigt wird, klicken Sie auf Kennwort in Key Vault auswählen.After the Certificate is password protected dialog appears, click Select Password From Key Vault.
  6. Wenn das Dialogfeld Kennwort aus Azure Key Vault auswählen angezeigt wird, verwenden Sie die Kontoauswahl, um das Konto auszuwählen, für das Sie eine Zugriffsrichtlinie konfiguriert haben.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. Geben Sie den URI des Schlüsseltresors ein.Enter the URI of the Key Vault. Sie finden den URI auf der Übersichtsseite des Schlüsseltresors, er kann über den DNS-Namen identifiziert werden.The URI can be found on the Overview page of the Key Vault and is identified by DNS Name.
  8. Klicken Sie auf die Schaltfläche Metadaten anzeigen.Click the View Metadata button.
  9. Nachdem das Laden der Kennwörter abgeschlossen ist, wählen Sie das gewünschte Kennwort in der Liste aus (beispielsweise UwpSigningCertPassword).After the passwords have finished loading, select the one you want from the list (for example, UwpSigningCertPassword).
  10. Klicken Sie auf OK.Click OK.