Signieren von Paketen mit Azure Key Vault

In Visual Studio 2022, Version 17.8 Preview 2 und höher, können Sie UWP- und Desktop-App-Pakete mit einem Zertifikat aus dem Azure Key Vault signieren. Dieses Tool sendet den App-Paket-Digest (Hash) zur kryptografischen Signatur mit Ihrem ausgewählten Zertifikat an Azure Key Vault. Der signierte Digest wird dann zurückgegeben und lokal an Ihr Paket angefügt.

Wichtig

Dieser Prozess ist sicher. Der private Schlüssel des Zertifikats verlässt nie Azure Key Vault.

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 Schlüsseltresor

Das Hinzufügen eines Zertifikats zum Schlüsseltresor 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 den Schlüsseltresor-Eigenschaftenseiten die Option Zertifikate aus.
  2. Klicken Sie auf Generieren/Importieren.
  3. Wählen Sie auf dem Bildschirm Zertifikat erstellen die folgenden Werte:
    • Methode der Zertifikaterstellung: Importieren
    • Zertifikatname: UwpSigningCert
    • Zertifikatdatei hochladen: UwpSigningCert.pfx
    • Zertifikat entschlüsseln: Wenn das 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 Schlüsseltresor

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 nur Zugriff auf Schlüssel, nicht auf Geheimnisse gewähren. 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 Zertifikatberechtigungen, und aktivieren Sie unter Zertifikatverwaltungsvorgänge die Kontrollkästchen für Abrufen und Auflisten.
  4. Klicken Sie auf das Dropdownfeld Geheimnisberechtigungen, und aktivieren Sie unter Verwaltungsvorgänge für Geheimnisse die Kontrollkästchen für Abrufen und Auflisten.
  5. Klicken Sie auf Prinzipal auswählen, suchen Sie nach dem Benutzer, dem Sie Zugriff erteilen möchten, und klicken Sie auf Auswählen.
  6. Klicken Sie auf Hinzufügen.
  7. Achten Sie darauf, Ihre Änderungen zu speichern, indem Sie auf Speichern klicken.

Hinweis

Es wird davon abgeraten, Benutzern Direktzugriff auf einen Schlüsseltresor zu erteilen. Im Idealfall werden Benutzer zu einer Azure AD-Gruppe hinzugefügt, die wiederum Zugriff auf den Schlüsseltresor erhält.

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ählenQuerladen 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.

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ählenQuerladen 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 aus Schlüsseltresor 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.

Aktivieren der Signierung in CI/CD-Szenarien

Um die Signierung in CI/CD-Szenarien zu aktivieren, müssen Sie die Pipeline so konfigurieren, dass sie DefaultAzureCredential für die Authentifizierung bei Azure Key Vault verwendet. DefaultAzureCredential versucht, die Identität des Pipeline-Agents für den Zugriff auf den Key Vault zu verwenden, wenn er über die entsprechenden Berechtigungen verfügt. Alternativ können Sie einen Dienstprinzipal oder eine verwaltete Identität angeben, der bzw. die für die Authentifizierung verwendet werden soll.