Back-endservices beveiligen met clientcertificaatverificatie in Azure API Management

VAN TOEPASSING OP: Alle API Management-lagen

Met API Management kunt u de toegang tot de back-endservice van een API beveiligen met behulp van clientcertificaten en wederzijdse TLS-verificatie. Deze handleiding laat zien hoe u certificaten beheert in een Azure API Management-service-exemplaar met behulp van Azure Portal. Ook wordt uitgelegd hoe u een API configureert voor het gebruik van een certificaat voor toegang tot een back-endservice.

U kunt API Management-certificaten ook beheren met behulp van de API Management REST API.

Certificaatopties

API Management biedt twee opties voor het beheren van certificaten die worden gebruikt voor het beveiligen van toegang tot back-endservices:

  • Verwijzen naar een certificaat dat wordt beheerd in Azure Key Vault
  • Een certificaatbestand rechtstreeks toevoegen in API Management

Het gebruik van key vault-certificaten wordt aanbevolen omdat hiermee de beveiliging van API Management wordt verbeterd:

  • Certificaten die zijn opgeslagen in sleutelkluizen kunnen opnieuw worden gebruikt in services
  • Gedetailleerde toegangsbeleidsregels kunnen worden toegepast op certificaten die zijn opgeslagen in sleutelkluizen
  • Certificaten die worden bijgewerkt in de sleutelkluis, worden automatisch geroteerd in API Management. Na de update in de sleutelkluis wordt een certificaat in API Management binnen 4 uur bijgewerkt. U kunt het certificaat ook handmatig vernieuwen met behulp van Azure Portal of via de REST API voor beheer.

Vereisten

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

  • Zie Een API Management-service-exemplaar maken als u nog geen API Management-service-exemplaar hebt gemaakt.

  • Uw back-endservice moet zijn geconfigureerd voor verificatie van clientcertificaten. Raadpleeg dit artikel voor het configureren van certificaatverificatie in de Azure-app Service.

  • U hebt toegang nodig tot het certificaat en het wachtwoord voor beheer in een Azure-sleutelkluis of uploaden naar de API Management-service. Het certificaat moet de PFX-indeling hebben. Zelfondertekende certificaten zijn toegestaan.

    Als u een zelfondertekend certificaat gebruikt:

    • Installeer vertrouwde basis- en tussenliggende CA-certificaten in uw API Management-exemplaar.

      Notitie

      CA-certificaten voor certificaatvalidatie worden niet ondersteund in de verbruikslaag.

    • Validatie van certificaatketen uitschakelen

Vereisten voor key vault-integratie

  1. Als u nog geen sleutelkluis hebt, maakt u er een. Zie quickstart: Een sleutelkluis maken met behulp van Azure Portal voor stappen voor het maken van een sleutelkluis.

    Als u een certificaat wilt maken of importeren in de sleutelkluis, raadpleegt u de quickstart: Een certificaat instellen en ophalen uit Azure Key Vault met behulp van de Azure-portal.

  2. Schakel een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit in het API Management-exemplaar in.

Toegang tot key vault configureren

  1. Navigeer in de portal naar uw sleutelkluis.

  2. Selecteer in het linkermenu De configuratie van Access en noteer het machtigingsmodel dat is geconfigureerd.

  3. Afhankelijk van het machtigingsmodel configureert u een toegangsbeleid voor key vault of Azure RBAC-toegang voor een beheerde API Management-identiteit.

    Ga als volgende te werk om toegangsbeleid voor key vault toe te voegen:

    1. Selecteer toegangsbeleid in het linkermenu.
    2. Selecteer + Maken op de pagina Toegangsbeleid.
    3. Selecteer Op het tabblad Machtigingen onder Geheime machtigingen de optie Ophalen en lijst en selecteer vervolgens Volgende.
    4. Selecteer principal op het tabblad Principal, zoek de resourcenaam van uw beheerde identiteit en selecteer vervolgens Volgende. Als u een door het systeem toegewezen identiteit gebruikt, is de principal de naam van uw API Management-exemplaar.
    5. Selecteer Volgende opnieuw. Selecteer op het tabblad Beoordelen en maken de optie Maken.

    Azure RBAC-toegang configureren:

    1. Selecteer toegangsbeheer (IAM) in het linkermenu.
    2. Selecteer Op de pagina Toegangsbeheer (IAM) de optie Roltoewijzing toevoegen.
    3. Selecteer Key Vault Secrets User op het tabblad Rol.
    4. Selecteer Op het tabblad Leden beheerde identiteit>+ Leden selecteren.
    5. Selecteer op de pagina Beheerde identiteit selecteren de door het systeem toegewezen beheerde identiteit of een door de gebruiker toegewezen beheerde identiteit die is gekoppeld aan uw API Management-exemplaar en selecteer vervolgens Selecteren.
    6. Selecteer Controleren + toewijzen.

Vereisten voor Key Vault-firewall

Als Key Vault-firewall is ingeschakeld voor uw sleutelkluis, zijn de volgende aanvullende vereisten:

  • U moet de door het systeem toegewezen beheerde identiteit van het API Management-exemplaar gebruiken om toegang te krijgen tot de sleutelkluis.

  • Schakel in key Vault-firewall de optie Vertrouwde Microsoft-services toestaan in om deze firewalloptie te omzeilen.

  • Zorg ervoor dat uw lokale client-IP-adres tijdelijk toegang heeft tot de sleutelkluis terwijl u een certificaat of geheim selecteert om toe te voegen aan Azure API Management. Zie Azure Key Vault-netwerkinstellingen configureren voor meer informatie.

    Nadat u de configuratie hebt voltooid, kunt u het clientadres blokkeren in de firewall van de sleutelkluis.

Vereisten voor het virtuele netwerk

Als het API Management-exemplaar wordt geïmplementeerd in een virtueel netwerk, configureert u ook de volgende netwerkinstellingen:

  • Schakel een service-eindpunt in voor Azure Key Vault in het API Management-subnet.
  • Configureer een netwerkbeveiligingsgroepregel (NSG) om uitgaand verkeer naar de AzureKeyVault- en AzureActiveDirectory-servicetags toe te staan.

Zie De netwerkconfiguratie bij het instellen van Azure API Management in een VNet voor meer informatie.

Een sleutelkluiscertificaat toevoegen

Zie Vereisten voor key vault-integratie.

Belangrijk

Wanneer u een sleutelkluiscertificaat toevoegt aan uw API Management-exemplaar, moet u gemachtigd zijn om geheimen uit de sleutelkluis weer te geven.

Let op

Wanneer u een sleutelkluiscertificaat in API Management gebruikt, moet u ervoor waken dat u het certificaat, de sleutelkluis of de beheerde identiteit die wordt gebruikt voor toegang tot de sleutelkluis, niet verwijdert.

Een sleutelkluiscertificaat toevoegen aan API Management:

  1. Blader in Azure Portal naar uw API Management-exemplaar.

  2. Selecteer Onder Beveiliging certificaten.

  3. Selecteer Certificaten>+ Toevoegen.

  4. Voer in Id een naam van uw keuze in.

  5. Selecteer sleutelkluis in Certificaat.

  6. Voer de id van een sleutelkluiscertificaat in of kies Selecteren om een certificaat in een sleutelkluis te selecteren.

    Belangrijk

    Als u zelf een sleutelkluiscertificaat-id invoert, moet u ervoor zorgen dat deze geen versie-informatie bevat. Anders draait het certificaat niet automatisch in API Management na een update in de sleutelkluis.

  7. Selecteer in clientidentiteit een door het systeem toegewezen of een bestaande door de gebruiker toegewezen beheerde identiteit. Meer informatie over het toevoegen of wijzigen van beheerde identiteiten in uw API Management-service.

    Notitie

    De identiteit heeft machtigingen nodig om een certificaat op te halen en weer te geven uit de sleutelkluis. Als u nog geen toegang tot de sleutelkluis hebt geconfigureerd, wordt u door API Management gevraagd om de identiteit automatisch te configureren met de benodigde machtigingen.

  8. Selecteer Toevoegen.

    Schermopname van het toevoegen van een sleutelkluiscertificaat aan API Management in de portal.

  9. Selecteer Opslaan.

Een certificaat uploaden

Een clientcertificaat uploaden naar API Management:

  1. Blader in Azure Portal naar uw API Management-exemplaar.

  2. Selecteer Onder Beveiliging certificaten.

  3. Selecteer Certificaten>+ Toevoegen.

  4. Voer in Id een naam van uw keuze in.

  5. Selecteer Aangepast in Certificaat.

  6. Blader om het PFX-bestand van het certificaat te selecteren en voer het bijbehorende wachtwoord in.

  7. Selecteer Toevoegen.

    Schermopname van het uploaden van een clientcertificaat naar API Management in de portal.

  8. Selecteer Opslaan.

Nadat het certificaat is geüpload, wordt het weergegeven in het venster Certificaten . Als u veel certificaten hebt, noteert u de vingerafdruk van het gewenste certificaat om een API te configureren voor het gebruik van een clientcertificaat voor gatewayverificatie.

Een API configureren voor het gebruik van clientcertificaat voor gatewayverificatie

  1. Blader in Azure Portal naar uw API Management-exemplaar.

  2. Selecteer API's onder API's.

  3. Selecteer een API in de lijst.

  4. Selecteer op het tabblad Ontwerpen het editorpictogram in de sectie Back-end .

  5. Selecteer in gatewayreferenties het clientcertificaat en selecteer uw certificaat in de vervolgkeuzelijst.

  6. Selecteer Opslaan.

    Clientcertificaat gebruiken voor gatewayverificatie

Let op

Deze wijziging is onmiddellijk van kracht en aanroepen naar bewerkingen van die API gebruiken het certificaat om te verifiëren op de back-endserver.

Tip

Wanneer een certificaat is opgegeven voor gatewayverificatie voor de back-endservice van een API, wordt het onderdeel van het beleid voor die API en kan het worden weergegeven in de beleidseditor.

Validatie van certificaatketen uitschakelen voor zelfondertekende certificaten

Als u zelfondertekende certificaten gebruikt, moet u validatie van certificaatketens uitschakelen voor API Management om te communiceren met het back-endsysteem. Anders wordt er een 500-foutcode geretourneerd. Als u dit wilt configureren, kunt u de PowerShell-cmdlets (voor nieuwe New-AzApiManagementBackend back-end) of Set-AzApiManagementBackend (voor bestaande back-end) gebruiken en de -SkipCertificateChainValidation parameter instellen op True.

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

U kunt validatie van certificaatketens ook uitschakelen met behulp van de REST API van de back-end .

Een clientcertificaat verwijderen

Als u een certificaat wilt verwijderen, selecteert u het en selecteert u Verwijderen in het contextmenu (...).

Een certificaat verwijderen

Belangrijk

Als naar het certificaat wordt verwezen door beleidsregels, wordt er een waarschuwingsscherm weergegeven. Als u het certificaat wilt verwijderen, moet u eerst het certificaat verwijderen uit beleidsregels die zijn geconfigureerd om het te gebruiken.

Volgende stappen