Back-endservices beveiligen met behulp van verificatie van clientcertificaten in Azure API Management
API Management kunt u de toegang tot de back-endservice van een API beveiligen met behulp van clientcertificaten. Deze handleiding laat zien hoe u certificaten in een Azure API Management-service-exemplaar beheert met behulp van de Azure Portal. Ook wordt uitgelegd hoe u een API configureert voor het gebruik van een certificaat voor toegang tot een back-endservice.
U kunt ook uw API Management beheren met behulp van API Management REST API.
Certificaatopties
API Management biedt twee opties voor het beheren van certificaten die worden gebruikt om de toegang tot back-endservices te beveiligen:
- Verwijzen naar een certificaat dat wordt beheerd in Azure Key Vault
- Voeg een certificaatbestand rechtstreeks in API Management
Het gebruik van Key Vault-certificaten wordt aanbevolen omdat dit helpt om de beveiliging API Management verbeteren:
- Certificaten die zijn opgeslagen in sleutelkluizen, kunnen opnieuw worden gebruikt in verschillende services
- Gedetailleerd toegangsbeleid kan worden toegepast op certificaten die zijn opgeslagen in sleutelkluizen
- Certificaten die zijn bijgewerkt in de sleutelkluis, worden automatisch geroteerd in API Management. Na de update in de sleutelkluis wordt een certificaat in API Management binnen vier uur bijgewerkt. U kunt het certificaat ook handmatig vernieuwen met behulp van de Azure Portal of via de REST API.
Vereisten
Notitie
In dit artikel wordt de Azure Az PowerShell-module gebruikt. Dit is de aanbevolen PowerShell-module voor interactie met Azure. Raadpleeg Azure PowerShell installeren om aan de slag te gaan met de Az PowerShell-module. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
- Als u nog geen service-API Management hebt gemaakt, zie Een service API Management maken.
- Uw back-endservice moet zijn geconfigureerd voor verificatie van clientcertificaten. Raadpleeg dit artikel om certificaatverificatie te Azure App Service in het artikel.
- U moet toegang hebben 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. Zelf-ondertekende certificaten zijn toegestaan.
Vereisten voor key vault-integratie
- Zie Voor stappen voor het maken van een sleutelkluis Quickstart: Een sleutelkluis makenmet behulp van de Azure Portal.
- Schakel een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit in het API Management in.
- Wijs een toegangsbeleid voor een sleutelkluis toe aan de beheerde identiteit met machtigingen om certificaten uit de kluis op te halen en weer te geven. Het beleid toevoegen:
- Navigeer in de portal naar uw sleutelkluis.
- Selecteer Instellingen > Toegangsbeleid > + Toegangsbeleid toevoegen.
- Selecteer Certificaatmachtigingen en selecteer vervolgens Get en List.
- Selecteer in Principal selecteren de resourcenaam van uw beheerde identiteit. Als u een door het systeem toegewezen identiteit gebruikt, is de principal de naam van uw API Management-exemplaar.
- Maak of importeer een certificaat in de sleutelkluis. Zie Quickstart: Een certificaat instellen en ophalenvan Azure Key Vault met behulp van Azure Portal .
Vereisten voor Key Vault firewall
Als Key Vault firewall is ingeschakeld voor uw sleutelkluis, zijn de volgende aanvullende vereisten:
- U moet de door API Management door het systeem toegewezen beheerde identiteit van het exemplaar gebruiken om toegang te krijgen tot de sleutelkluis.
- Schakel Key Vault de optie Vertrouwde Microsoft-services toestaan deze firewall over te laten in Key Vault firewall.
Vereisten voor het virtuele netwerk
Als het API Management is geïmplementeerd in een virtueel netwerk, moet u ook de volgende netwerkinstellingen configureren:
- Schakel een service-eindpunt in Azure Key Vault in het API Management subnet.
- Configureer een regel voor een netwerkbeveiligingsgroep (NSG) om uitgaand verkeer naar de servicetags AzureKeyVault en AzureActiveDirectory toe te staan.
Zie Netwerkconfiguratiedetails in Verbinding maken naar een virtueel netwerk voor meer informatie.
Een sleutelkluiscertificaat toevoegen
Zie Vereisten voor key vault-integratie.
Waarschuwing
Wanneer u een sleutelkluiscertificaat in API Management, moet u het certificaat, de sleutelkluis of de beheerde identiteit die wordt gebruikt voor toegang tot de sleutelkluis, niet verwijderen.
Een sleutelkluiscertificaat toevoegen aan API Management:
Blader in Azure Portal naar uw API Management-exemplaar.
Selecteer onder Beveiliging de optie Certificaten.
Selecteer Certificaten > + Toevoegen.
Voer in Id een naam van uw keuze in.
Selecteer in Certificaat de optie Sleutelkluis.
Voer de id van een sleutelkluiscertificaat in of kies Selecteren om een certificaat uit een sleutelkluis te selecteren.
Belangrijk
Als u zelf een certificaat-id voor een sleutelkluis op geeft, moet u ervoor zorgen dat deze geen versiegegevens heeft. Anders wordt het certificaat niet automatisch geroteerd in API Management na een update in de sleutelkluis.
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 het certificaat van de sleutelkluis op te halen en weer te geven. Als u de toegang tot de sleutelkluis nog niet hebt geconfigureerd, wordt API Management gevraagd om de identiteit automatisch te configureren met de benodigde machtigingen.
Selecteer Toevoegen.
Selecteer Opslaan.
Upload certificaat maken
Een clientcertificaat uploaden naar API Management:
Blader in Azure Portal naar uw API Management-exemplaar.
Selecteer onder Beveiliging de optie Certificaten.
Selecteer Certificaten > + Toevoegen.
Voer in Id een naam van uw keuze in.
Selecteer in Certificaat de optie Aangepast.
Blader om het PFX-certificaatbestand te selecteren en voer het wachtwoord in.
Selecteer Toevoegen.
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.
Notitie
Als u certificaatketenvalidatie wilt uitschakelen wanneer u bijvoorbeeld een zelf-ondertekend certificaat gebruikt, volgt u de stappen die worden beschreven in Zelf-ondertekendecertificaten , verderop in dit artikel.
Een API configureren voor het gebruik van een clientcertificaat voor gatewayverificatie
Blader in Azure Portal naar uw API Management-exemplaar.
Selecteer API's onder API's.
Selecteer een API in de lijst.
Selecteer op het tabblad Ontwerpen het editorpictogram in de sectie Back-end.
In Gatewayreferenties selecteert u Clientcertificaat en selecteert u uw certificaat in de vervolgkeuzekeuze.
Selecteer Opslaan.
Waarschuwing
Deze wijziging is onmiddellijk van kracht en aanroepen van 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 bekeken in de beleidseditor.
Zelfondertekende certificaten
Als u zelf-ondertekende certificaten gebruikt, moet u certificaatketenvalidatie uitschakelen voor API Management te communiceren met het back-endsysteem. Anders wordt een 500-foutcode weergegeven. Als u dit wilt configureren, kunt u de New-AzApiManagementBackend PowerShell-cmdlets (voor nieuwe back-end) of (voor bestaande Set-AzApiManagementBackend 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
Een clientcertificaat verwijderen
Als u een certificaat wilt verwijderen, selecteert u dit en selecteert u vervolgens Verwijderen in het contextmenu (...).
Belangrijk
Als naar het certificaat wordt verwezen door beleidsregels, wordt er een waarschuwingsscherm weergegeven. Als u het certificaat wilt verwijderen, moet u het certificaat eerst verwijderen uit alle beleidsregels die zijn geconfigureerd om het te gebruiken.