Signieren von Paketen mit 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. 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.

Wichtig

Der in diesem Artikel beschriebene Prozess ist nur für Entwicklungs- und Testszenarien vorgesehen. Diese Vorgehensweise gilt nicht als bewährte Methode für private Schlüssel, die für die Verteilung verwendet werden. 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.

Voraussetzungen

  • Ein Azure-Konto. Wenn Sie noch nicht über ein Azure-Konto verfügen, starten Sie hier.
  • Ein Azure Key Vault. Weitere Informationen finden Sie unter Erstellen eines Schlüsseltresors.
  • Ein gültiges Paketsignaturzertifikat, das in Azure Key Vault importiert wurde. Das von Azure Key Vault generierte Standardzertifikat eignet sich nicht zum Signieren von Code. Details zum Erstellen eines Paketsignaturzertifikats finden Sie unter Erstellen eines Paketsignaturzertifikats.

Importieren eines Zertifikats in den Key Vault

Das Hinzufügen eines Zertifikats zum Key Vault ist sehr einfach. In diesem Beispiel fügen wir ein gültiges UWP-Codesignaturzertifikat mit dem Namen UwpSigningCert.pfx hinzu.

  1. Wählen Sie auf der Eigenschaftenseite des Schlüsseltresors Zertifikate aus.
  2. Klicken Sie auf Generieren/Importieren.
  3. Wählen Sie auf dem Bildschirm Zertifikat erstellen die folgenden Werte aus:
    • Methode der Zertifikaterstellung: importieren
    • Zertifikatname: UwpSigningCert
    • Hochladen der Zertifikatdatei: UwpSigningCert.pfx
    • Entschlüsseln des Zertifikats: Wenn Ihr Zertifikat durch ein Kennwort geschützt ist, geben Sie das Kennwort im Feld Kennwort ein.
  4. Klicken Sie auf Erstellen.

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. Schützen Sie alle Ihre Zertifikate, einschließlich selbstsignierter Zertifikate.

Konfigurieren der Zugriffsrichtlinien für Ihren Key Vault

Mithilfe von Zugriffsrichtlinien können Sie steuern, wer Zugriff auf die Inhalte Ihres Schlüsseltresors hat. Schlüsseltresor-Zugriffsrichtlinien erteilen Berechtigungen separat an Schlüssel, Geheimnisse und Zertifikate. Sie können einem Benutzer Zugriff nur auf Schlüssel, nicht aber auf Geheimnisse erteilen. Die Zugriffsberechtigungen für Schlüssel, Geheimnisse und Zertifikate werden auf Tresorebene verwaltet. Weitere Informationen finden Sie unter Azure Key Vault – Sicherheit.

Hinweis

Wenn Sie in einem Azure-Abonnement einen Schlüsseltresor erstellen, wird dieser automatisch dem Azure Active Directory-Mandanten des Abonnements zugeordnet. Jeder, der versucht, Inhalte in einem Schlüsseltresor zu verwalten oder sie aus ihm abzurufen, muss mithilfe von Azure AD authentifiziert werden.

  1. Wählen Sie auf den Eigenschaftenseiten des Schlüsseltresors Zugriffsrichtlinien aus.
  2. Wählen Sie + Zugriffsrichtlinie hinzufügen aus.
  3. Klicken Sie auf das Dropdownfeld Schlüsselberechtigungen, und aktivieren Sie unter Schlüsselverwaltungsvorgänge die Kontrollkästchen für Abrufen und Auflisten.
  4. Klicken Sie auf Prinzipal auswählen, suchen Sie nach dem Benutzer, dem Sie Zugriff erteilen möchten, und klicken Sie auf Auswählen.
  5. Klicken Sie auf Hinzufügen.
  6. Achten Sie darauf, Ihre Änderungen zu speichern, indem Sie auf Speichern klicken.

Hinweis

Es wird davon abgeraten, Benutzern direkten Zugriff auf einen Schlüsseltresor zu erteilen. Im Idealfall sollten Benutzer einer Azure AD-Gruppe hinzugefügt werden, der ihrerseits Zugriff auf den Schlüsseltresor erteilt wird.

Auswählen eines Zertifikats aus Ihrem Schlüsseltresor 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. Sie können das Paketsignaturzertifikat über Azure Key Vault auswählen. 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.

  1. Öffnen Sie in Visual Studio Ihr UWP-Anwendungsprojekt oder das Desktop-Paketerstellungsprojekt für Windows-Anwendungen.
  2. Wählen Sie Veröffentlichen -> Pakete -> App-Pakete erstellen... aus, um den Assistenten App-Pakete erstellen zu öffnen.
  3. Wählen Sie auf der Seite Verteilungsmethode auswählen Querladen aus.
  4. Klicken Sie auf der Seite Signaturmethode auswählen auf Aus Azure Key Vault auswählen... .
  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.
  6. Geben Sie den URI des Schlüsseltresors ein. Sie finden den URI auf der Übersichtsseite des Schlüsseltresors, er kann über den DNS-Namen identifiziert werden.
  7. Klicken Sie auf die Schaltfläche Metadaten anzeigen.
  8. Nachdem das Laden der Zertifikate abgeschlossen ist, wählen Sie das gewünschte Zertifikat in der Liste aus (beispielsweise UwpSigningCert).
  9. Klicken Sie auf OK.

Hinweis

Das Zertifikat wird in Ihren lokalen Zertifikatspeicher importiert, wo es zum Signieren von Paketen verwendet wird.

Entschlüsseln Ihres Zertifikats mit einem Kennwort aus 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. Wenn Sie das Zertifikat in den Assistenten App-Pakete erstellen importieren, werden Sie zur manuellen Eingabe des Kennwort aufgefordert. Alternativ besteht die Option, das Kennwort in Azure Key Vault auszuwählen.

  1. Öffnen Sie in Visual Studio Ihr UWP-Anwendungsprojekt oder das Desktop-Paketerstellungsprojekt für Windows-Anwendungen.
  2. Wählen Sie Veröffentlichen -> Pakete -> App-Pakete erstellen... aus, um den Assistenten App-Pakete erstellen zu öffnen.
  3. Wählen Sie auf der Seite Verteilungsmethode auswählen Querladen aus.
  4. Klicken Sie auf der Seite Signaturmethode auswählen auf Aus Datei auswählen... .
  5. Wenn das Dialogfeld Zertifikat ist kennwortgeschützt angezeigt wird, klicken Sie auf Kennwort in Key Vault auswählen.
  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.
  7. Geben Sie den URI des Schlüsseltresors ein. Sie finden den URI auf der Übersichtsseite des Schlüsseltresors, er kann über den DNS-Namen identifiziert werden.
  8. Klicken Sie auf die Schaltfläche Metadaten anzeigen.
  9. Nachdem das Laden der Kennwörter abgeschlossen ist, wählen Sie das gewünschte Kennwort in der Liste aus (beispielsweise UwpSigningCertPassword).
  10. Klicken Sie auf OK.