Sichern von Back-End-Diensten über eine Clientzertifikatauthentifizierung in Azure API Management

API Management ermöglicht es ihnen, den Zugriff auf den Back-End-Dienst einer API mithilfe von Clientzertifikaten abzusichern. Diese Anleitung zeigt das Verwalten von Zertifikaten in einer Azure API Management-Dienstinstanz mithilfe des Azure-Portals. Darüber hinaus wird auch erklärt, wie eine API zur Verwendung eines Zertifikats zum Zugriff auf einen Back-End-Dienst konfiguriert wird.

Sie können API Management-Zertifikate auch mit der API Management-REST-APIverwalten.

Zertifikatoptionen

API Management bietet zwei Optionen zum Verwalten von Zertifikaten, mit denen der Zugriff auf Back-End-Dienste gesichert wird:

  • Verweisen auf ein in Azure Key Vault verwaltetes Zertifikat
  • Direktes Hinzufügen einer Zertifikatsdatei in API Management

Die Verwendung von Schlüsseltresorgeheimnissen wird empfohlen, weil dadurch die Sicherheit von API Management verbessert wird:

  • In Schlüsseltresoren gespeicherte Geheimnisse können für mehrere Dienste wiederverwendet werden.
  • Auf in Schlüsseltresoren gespeicherte Zertifikate können präzise Zugriffsrichtlinien angewendet werden.
  • Im Schlüsseltresor aktualisierte Zertifikate werden in API Management automatisch rotiert. Nach der Aktualisierung im Schlüsseltresor wird ein Zertifikat innerhalb von 4 Stunden in API Management aktualisiert. Sie können das Zertifikat auch manuell im Azure-Portal oder über die Verwaltungs-REST-API aktualisieren.

Voraussetzungen

Hinweis

In diesem Artikel wird das Azure Az PowerShell-Modul verwendet. Dieses PowerShell-Modul wird für die Interaktion mit Azure empfohlen. Informationen zu den ersten Schritten mit dem Az PowerShell-Modul finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

  • Falls Sie noch keine API Management-Dienstinstanz erstellt haben, finden Sie weitere Informationen unter Erstellen einer API Management-Dienstinstanz.
  • Sie sollten Ihren Back-End-Dienst für die Clientzertifikatauthentifizierung konfiguriert haben. Informationen zum Konfigurieren der Zertifikatauthentifizierung im Azure App Service finden Sie in diesem Artikel.
  • Sie benötigen Zugriff auf das Zertifikat und die Kennwörter für die Verwaltung in einem Azure Key Vault oder zum Hochladen in den API Management-Dienst. Das Zertifikat muss im PFX -Format vorliegen. Selbstsignierte Zertifikate sind zulässig.

Voraussetzungen für die Key Vault-Integration

  1. Schritte zum Erstellen eines Schlüsseltresors finden Sie unter Schnellstart: Erstellen eines Schlüsseltresors über das Azure-Portal.
  2. Aktivieren Sie eine system- oder benutzerseitig zugewiesene verwaltete Identität in der API Management-Instanz.
  3. Weisen Sie der verwalteten Identität Key Vault-Zugriffsrichtlinien mit Berechtigungen zum Abrufen und Auflisten von Zertifikaten im Tresor zu. So fügen Sie die Richtlinie hinzu
    1. Navigieren Sie im Portal zu Ihrem Schlüsseltresor.
    2. Wählen Sie Einstellungen > Zugriffsrichtlinien > + Zugriffsrichtlinie hinzufügen aus.
    3. Wählen Sie Geheimnisberechtigungen und dann Abrufen und Auflisten aus.
    4. Wählen Sie unter Prinzipal auswählen den Ressourcennamen der verwalteten Identität aus. Wenn Sie eine systemseitig zugewiesene Identität verwenden, ist der Prinzipal der Name der API Management-Instanz.
  4. Erstellen Sie ein Zertifikat in den Schlüsseltresor, oder importieren Sie eines. Weitere Informationen finden Sie unter Schnellstart: Festlegen und Abrufen eines Zertifikats aus Azure Key Vault über das Azure-Portal.

Anforderungen an Key Vault-Firewall

Wenn die Key Vault-Firewall in Ihrem Schlüsseltresor aktiviert ist, gelten die folgenden zusätzlichen Anforderungen:

  • Sie müssen die systemseitig zugewiesene verwaltete Identität der API Management-Instanz verwenden, um auf den Schlüsseltresor zuzugreifen.
  • Aktivieren Sie in der Key Vault-Firewall die Option Vertrauenswürdigen Microsoft-Diensten die Umgehung dieser Firewall erlauben? .

Anforderungen für virtuelle Netzwerke

Wenn die API Management-Instanz in einem virtuellen Netzwerk bereitgestellt wird, müssen Sie darüber hinaus die folgenden Netzwerkeinstellungen konfigurieren:

  • Aktivieren Sie im API Management-Subnetz einen Dienstendpunkt für Azure Key Vault.
  • Konfigurieren Sie eine Netzwerksicherheitsgruppen-Regel (NSG), um ausgehenden Datenverkehr an die Diensttags AzureKeyVault und AzureActiveDirectory zuzulassen.

Einzelheiten finden Sie unter Netzwerkkonfiguration beim Einrichten von Azure API Management in einem VNet.

Hinzufügen eines Schlüsseltresorzertifikats

Weitere Informationen finden Sie unter Voraussetzungen für die Key Vault-Integration.

Achtung

Wenn Sie in API Management ein Zertifikat aus einem Schlüsseltresor verwenden, dürfen Sie auf keinen Fall das Zertifikat, den Schlüsseltresor oder die verwaltete Identität löschen, die für den Zugriff auf den Schlüsseltresor verwendet wird.

So fügen Sie ein Schlüsseltresorzertifikat zu API Management hinzu

  1. Navigieren Sie im Azure-Portal zu Ihrer API Management-Instanz.

  2. Wählen Sie unter Sicherheit die Option Zertifikate aus.

  3. Wählen Sie Zertifikate>+ Hinzufügen aus.

  4. Geben Sie in Id den gewünschten Namen ein.

  5. Wählen Sie in Zertifikat die Option Schlüsseltresor aus.

  6. Geben Sie den Bezeichner eines Schlüsseltresorzertifikats ein, oder wählen Sie Auswählen aus, um ein Zertifikat aus einem Schlüsseltresor auszuwählen.

    Wichtig

    Wenn Sie selbst einen Bezeichner für ein Schlüsseltresorzertifikat eingeben, stellen Sie sicher, dass dieser keine Versionsinformationen enthält. Andernfalls wird das Zertifikat nach einer Aktualisierung im Schlüsseltresor nicht automatisch in API Management rotiert.

  7. Wählen Sie unter Clientidentität eine systemseitig zugewiesene oder eine vorhandene benutzerseitig zugewiesene verwaltete Identität aus. Erfahren Sie, wie Sie verwaltete Identitäten in Ihrem API Management-Dienst hinzufügen oder bearbeiten.

    Hinweis

    Die Identität benötigt Berechtigungen zum Abrufen und Auflisten von Zertifikaten im Schlüsseltresor. Wenn Sie den Zugriff auf den Schlüsseltresor noch nicht konfiguriert haben, werden Sie von API Management dazu aufgefordert. Der Dienst kann die Identität dann automatisch mit den erforderlichen Berechtigungen konfigurieren.

  8. Wählen Sie Hinzufügen.

    Add key vault certificate

  9. Wählen Sie Speichern aus.

Hochladen eines Zertifikats

So laden Sie ein Schlüsseltresorzertifikat in API Management hoch

  1. Navigieren Sie im Azure-Portal zu Ihrer API Management-Instanz.

  2. Wählen Sie unter Sicherheit die Option Zertifikate aus.

  3. Wählen Sie Zertifikate>+ Hinzufügen aus.

  4. Geben Sie in Id den gewünschten Namen ein.

  5. Wählen Sie in Zertifikat die Option Benutzerdefinierte aus.

  6. Durchsuchen Sie das Dateisystem, um die PFX-Zertifikatdatei auszuwählen, und geben Sie das zugehörige Kennwort ein.

  7. Wählen Sie Hinzufügen.

    Upload client certificate

  8. Wählen Sie Speichern aus.

Nachdem das Zertifikat hochgeladen wurde, wird es im Fenster Zertifikate angezeigt. Wenn Sie viele Zertifikate haben, notieren Sie sich den Fingerabdruck des gewünschten Zertifikats zum Konfigurieren einer API zum Verwenden eines Clientzertifikats für die Gatewayauthentifizierung.

Hinweis

Wenn Sie beispielsweise bei der Verwendung eines selbstsignierten Zertifikats die Überprüfung der Zertifikatkette deaktivieren möchten, führen Sie die weiter unten in diesem Artikel unter Selbstsignierte Zertifikate beschriebenen Schritte aus.

Konfigurieren einer API zum Verwenden eines Clientzertifikats für die Gatewayauthentifizierung

  1. Navigieren Sie im Azure-Portal zu Ihrer API Management-Instanz.

  2. Wählen Sie unter APIs die Option APIs aus.

  3. Wählen Sie eine API aus der Liste aus.

  4. Wählen Sie auf der Registerkarte Entwurf das Editorsymbol im Abschnitt Back-End aus.

  5. Wählen Sie in Gatewayanmeldeinformationen die Option Clientzertifikat aus, und wählen Sie Ihr Zertifikat aus der Dropdownliste aus.

  6. Wählen Sie Speichern aus.

    Use client certificate for gateway authentication

Achtung

Die Änderungen werden unmittelbar übernommen, und Funktionsaufrufe dieser API verwenden das Zertifikat für die Authentifizierung beim Back-End-Server.

Tipp

Wenn für den Back-End-Dienst einer API ein Zertifikat zur Gatewayauthentifizierung angegeben ist, wird es Teil der Richtlinie dieser API und kann im Richtlinien-Editor angezeigt werden.

Selbstsignierte Zertifikate

Wenn Sie selbstsignierte Zertifikate verwenden, müssen Sie die Überprüfung der Zertifikatkette deaktivieren, damit API Management mit dem Back-End-System kommuniziert. Andernfalls wird der Fehlercode 500 zurückgegeben. Verwenden Sie zum Konfigurieren das PowerShell-Cmdlet New-AzApiManagementBackend (für ein neues Back-End) oder Set-AzApiManagementBackend (für ein vorhandenes Back-End), und legen Sie den Parameter -SkipCertificateChainValidation auf True fest.

$context = New-AzApiManagementContext -resourcegroup 'ContosoResourceGroup' -servicename 'ContosoAPIMService'
New-AzApiManagementBackend -Context  $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true

Löschen eines Clientzertifikats

Wenn Sie ein Zertifikat löschen möchten, wählen Sie es aus und dann im Kontextmenü ( ... ) Löschen.

Delete a certificate

Wichtig

Falls andere Richtlinien auf das Zertifikat verweisen, wird ein Warnbildschirm angezeigt. Um das Zertifikat zu löschen, müssen Sie es zunächst aus allen Richtlinien entfernen, die zu seiner Verwendung konfiguriert sind.

Nächste Schritte