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

GILT FÜR: Alle API Management-Ebenen

API Management ermöglicht es ihnen, den Zugriff auf den Back-End-Dienst einer API mithilfe von Clientzertifikaten und gegenseitiger TLS-Authentifizierung 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

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten 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.

    Bei Verwendung eines selbstsignierten Zertifikats:

Voraussetzungen für die Key Vault-Integration

Hinweis

Diese Funktion ist derzeit in Arbeitsbereichen nicht verfügbar.

  1. Wenn Sie noch nicht über einen Schlüsseltresor verfügen, erstellen Sie einen. Schritte zum Erstellen eines Schlüsseltresors finden Sie unter Schnellstart: Erstellen eines Schlüsseltresors über das Azure-Portal.

    Informationen zum Erstellen eines Zertifikats oder Importieren eines Zertifikats in den Schlüsseltresor finden Sie unter Schnellstart: Festlegen und Abrufen eines Zertifikats aus Azure Key Vault über das Azure-Portal.

  2. Aktivieren Sie eine system- oder benutzerseitig zugewiesene verwaltete Identität in der API Management-Instanz.

Konfigurieren des Zugriffs auf den Schlüsseltresor

  1. Navigieren Sie im Portal zu Ihrem Schlüsseltresor.

  2. Wählen Sie im Menü auf der linken Seite Zugriffskonfiguration aus, und beachten Sie das konfigurierte Berechtigungsmodell.

  3. Konfigurieren Sie je nach Berechtigungsmodell entweder eine Schlüsseltresor-Zugriffsrichtlinie oder den Azure RBAC-Zugriff für eine verwaltete API Management-Identität.

    So fügen Sie eine Schlüsseltresor-Zugriffsrichtlinie hinzu

    1. Wählen Sie im Menü auf der linken Seite Zugriffsrichtlinien aus.
    2. Wählen Sie auf der Seite Zugriffsrichtlinien die Option + Erstellen aus.
    3. Wählen Sie auf der Registerkarte Berechtigungen unter Berechtigungen für Geheimnis die Optionen Abrufen und Auflisten und dann Weiter aus.
    4. Klicken Sie auf der Registerkarte Prinzipal auf Prinzipal auswählen, suchen Sie nach dem Ressourcennamen Ihrer verwalteten Identität, und wählen Sie dann Weiter aus. Wenn Sie eine systemseitig zugewiesene Identität verwenden, ist der Prinzipal der Name der API Management-Instanz.
    5. Wählen Sie erneut Weiter aus. Wählen Sie auf der Registerkarte Überprüfen + erstellen die Option Erstellen aus.

    So konfigurieren Sie Azure RBAC-Zugriff

    1. Wählen Sie im linken Menü Zugriffssteuerung (IAM) aus.
    2. Wählen Sie auf der Seite Zugriffssteuerung (IAM) die Option Rollenzuweisung hinzufügen aus.
    3. Wählen Sie auf der Registerkarte Rolle die Option Schlüsseltresor-Zertifikatbenutzer aus.
    4. Wählen Sie auf der Registerkarte Mitglieder die Option Verwaltete Identität>+ Mitglieder auswählen aus.
    5. Wählen Sie auf der Seite Verwaltete Identität auswählen die systemseitig zugewiesene verwaltete Identität oder eine benutzerseitig zugewiesene verwaltete Identität aus, die Ihrer API Management-Instanz zugeordnet ist, und wählen Sie dann Auswählen aus.
    6. Wählen Sie Überprüfen und zuweisen aus.

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? .

  • Stellen Sie sicher, dass Ihre lokale Client-IP-Adresse vorübergehend auf den Schlüsseltresor zugreifen darf, während Sie ein Zertifikat oder Geheimnis auswählen, das Sie der Azure API Management-Instanz hinzufügen möchten. Weitere Informationen finden Sie unter Konfigurieren von Azure Key Vault-Netzwerkeinstellungen.

    Nach Abschluss der Konfiguration können Sie Ihre Clientadresse in der Firewall des Schlüsseltresors blockieren.

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.

Wichtig

Wenn Sie Ihrer API Management-Instanz ein Schlüsseltresorzertifikat hinzufügen, müssen Sie über die Berechtigung verfügen, Geheimnisse aus dem Schlüsseltresor aufzulisten.

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.

    Screenshot: Hinzufügen eines Schlüsseltresorzertifikats zu API Management im Portal

  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.

    Screenshot: Hochladen eines Clientzertifikats in API Management im Portal

  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.

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.

    Verwenden eines Clientzertifikats für die Gatewayauthentifizierung

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.

Deaktivieren der Zertifikatkettenüberprüfung für 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

Sie können die Zertifikatkettenüberprüfung auch mithilfe der Back-End-REST-API deaktivieren.

Löschen eines Clientzertifikats

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

Ein Zertifikat löschen

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