Delen via


Back-endservices beveiligen met behulp van clientcertificaatverificatie in Azure API Management

VAN TOEPASSING OP: Alle API Management-niveaus

Met API Management kunt u de toegang tot de back-endservice van een API beveiligen met behulp van clientcertificaten en wederzijdse TLS-verificatie. In dit artikel wordt beschreven hoe u certificaten in API Management beheert 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:

  • Verwijs naar een certificaat dat wordt beheerd in Azure Key Vault.
  • Voeg rechtstreeks een certificaatbestand toe in API Management.

U wordt aangeraden key vault-certificaten te gebruiken, omdat dit de beveiliging van API Management verbetert:

  • Certificaten die zijn opgeslagen in sleutelkluizen, kunnen opnieuw worden gebruikt in alle 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 een update in de sleutelkluis wordt een certificaat in API Management binnen vier 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-exemplaar hebt gemaakt.

  • Configureer de verificatie van uw back-endserviceclientcertificaat. Zie Wederzijdse TLS-verificatie configureren in App Service voor informatie over het configureren van certificaatverificatie in Azure App Service.

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

    Als u een zelfondertekend certificaat gebruikt:

Vereisten voor key vault-integratie

Notitie

Deze functie is momenteel niet beschikbaar in werkruimten.

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

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

Toegang tot key vault configureren

  1. Ga in de portal naar uw Key Vault.
  2. Selecteer in het linkermenu De configuratie van Access. Let op het machtigingsmodel dat is geconfigureerd.
  3. Afhankelijk van het machtigingsmodel configureert u of een toegangsbeleid voor de key vault of Azure RBAC-toegang voor een beheerde API Management-identiteit.

Om een toegangsbeleid voor een key vault toe te voegen:

  1. Selecteer toegangsbeleid in het linkermenu.
  2. Op de pagina Toegangsbeleid, selecteer + Toevoegen.
  3. Selecteer Op het tabblad Machtigingen onder Geheime machtigingen de optie Ophalen en weergeven en selecteer vervolgens Volgende.
  4. Klik op het tabblad Principal, selecteer Principal, zoek naar 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.

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

Vereisten voor Key Vault-firewall

Als Key Vault-firewall is ingeschakeld voor uw sleutelkluis, moet u aan deze vereisten voldoen:

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

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

  • 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 Key Vault in het API Management-subnet.
  • Configureer een NSG-regel voor netwerkbeveiliging om uitgaand verkeer naar de AzureKeyVault- en AzureActiveDirectory-service tags toe te staan.

Zie De netwerkconfiguratie bij het instellen van API Management in een virtueel netwerk voor meer informatie.

Een certificaat voor de sleutelkluis toevoegen

Zie Vereisten voor key vault-integratie.

Belangrijk

Als u een sleutelkluiscertificaat wilt toevoegen 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 zorgen 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. Ga in Azure Portal naar uw API Management-exemplaar.

  2. Onder Beveiliging selecteer Certificaten.

  3. Selecteer Certificaten>+ Toevoegen.

  4. Voer in Id een naam 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 versiegegevens bevat. Anders wordt het certificaat niet automatisch vernieuwd in API Management na een update in de Key Vault.

  7. Selecteer in clientidentiteit een door het systeem toegewezen identiteit of een bestaande door de gebruiker toegewezen beheerde identiteit. Zie Beheerde identiteiten gebruiken in Azure API Management voor meer informatie.

    Notitie

    De identiteit moet machtigingen hebben om certificaten op te halen en te bekijken 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. Ga in Azure Portal naar uw API Management-exemplaar.

  2. Onder Beveiliging selecteer Certificaten.

  3. Selecteer Certificaten>+ Toevoegen.

  4. Voer in Id een naam 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 certificaat dat u zojuist hebt geüpload. U hebt deze nodig om een API te configureren voor het gebruik van het clientcertificaat voor gatewayverificatie.

Een API configureren voor het gebruik van clientcertificaat voor gatewayverificatie

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

  2. Onder API's selecteer API's.

  3. Selecteer een API in de lijst.

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

  5. Selecteer in GatewayreferentiesClientcertificaat en selecteer vervolgens een certificaat in de lijst met clientcertificaten.

  6. Selecteer Opslaan.

    Clientcertificaat gebruiken voor gatewayverificatie

Let op

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

Aanbeveling

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 om API Management in staat te stellen te communiceren met het back-endsysteem. Anders krijgt u een 500-foutcode. Als u deze validatie wilt uitschakelen, kunt u de New-AzApiManagementBackend PowerShell-cmdlets (voor een nieuwe back-end) of Set-AzApiManagementBackend (voor een bestaande back-end) gebruiken en de -SkipCertificateChainValidation parameter instellen op True:

$context = New-AzApiManagementContext -ResourceGroupName '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 Verwijderen in het menu met het beletselteken (...):

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 het eerst verwijderen uit beleidsregels die zijn geconfigureerd om het te gebruiken.