Skydda servertjänster med klientcertifikatautentisering i Azure API Management
API Management kan du skydda åtkomsten till serversidan för ett API med hjälp av klientcertifikat. Den här guiden visar hur du hanterar certifikat i en Azure API Management-tjänstinstans med hjälp av Azure Portal. Den förklarar också hur du konfigurerar ett API för att använda ett certifikat för att få åtkomst till en servertjänst.
Du kan också hantera API Management certifikat med hjälp av API Management REST API.
Certifikatalternativ
API Management två alternativ för att hantera certifikat som används för säker åtkomst till servertjänster:
- Referera till ett certifikat som hanteras i Azure Key Vault
- Lägg till en certifikatfil direkt i API Management
Vi rekommenderar att du använder Key Vault-certifikat eftersom det förbättrar API Management säkerhet:
- Certifikat som lagras i nyckelvalv kan återanvändas i flera tjänster
- Detaljerade åtkomstprinciper kan tillämpas på certifikat som lagras i nyckelvalv
- Certifikat som uppdateras i nyckelvalvet roteras automatiskt i API Management. Efter uppdateringen i nyckelvalvet uppdateras ett certifikat i API Management inom 4 timmar. Du kan också uppdatera certifikatet manuellt med hjälp Azure Portal eller via REST API.
Förutsättningar
Anteckning
I den här artikeln används Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för att interagera med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
- Om du inte har skapat en API Management-tjänstinstans än kan du gå till Skapa en API Management-tjänstinstans.
- Du bör ha din servertjänst konfigurerad för klientcertifikatautentisering. Information om hur du konfigurerar certifikatautentisering i Azure App Service finns i den här artikeln.
- Du behöver åtkomst till certifikatet och lösenordet för hantering i ett Azure-nyckelvalv eller ladda upp till API Management tjänsten. Certifikatet måste vara i PFX-format. Själv signerade certifikat tillåts.
Krav för Key Vault-integrering
- Anvisningar för hur du skapar ett nyckelvalv finns i Snabbstart: Skapa ett nyckelvalv med hjälp av Azure Portal.
- Aktivera en system-tilldelad eller användar tilldelad hanterad identitet i API Management instansen.
- Tilldela en åtkomstprincip för nyckelvalv till den hanterade identiteten med behörighet att hämta och lista certifikat från valvet. Så här lägger du till principen:
- Navigera till ditt nyckelvalv i portalen.
- Välj Inställningar > Åtkomstprinciper > Lägg till åtkomstprincip.
- Välj Certifikatbehörigheter och välj sedan Hämta och Lista.
- I Välj huvudnamn väljer du resursnamnet för din hanterade identitet. Om du använder en system tilldelad identitet är huvudnamnet namnet på din API Management instans.
- Skapa eller importera ett certifikat till nyckelvalvet. Se Snabbstart: Ange och hämta ett certifikat från Azure Key Vault med hjälp av Azure Portal.
Krav för Key Vault brandvägg
Om Key Vault brandväggen är aktiverad på ditt nyckelvalv, är följande ytterligare krav:
- Du måste använda den API Management instansens system tilldelade hanterade identitet för att få åtkomst till nyckelvalvet.
- I Key Vault brandväggen aktiverar du alternativet Tillåt betrodda Microsoft-tjänster att kringgå brandväggen.
Krav för virtuellt nätverk
Om API Management-instansen distribueras i ett virtuellt nätverk konfigurerar du även följande nätverksinställningar:
- Aktivera en tjänstslutpunkt för Azure Key Vault på API Management undernätet.
- Konfigurera en regel för nätverkssäkerhetsgrupp (NSG) för att tillåta utgående trafik till tjänsttaggarna AzureKeyVault och AzureActiveDirectory.
Mer information finns i informationen om nätverkskonfiguration i Anslut till ett virtuellt nätverk.
Lägga till ett nyckelvalvscertifikat
Se Krav för Key Vault-integrering.
Varning
När du använder ett nyckelvalvscertifikat i API Management bör du vara noga med att inte ta bort certifikatet, nyckelvalvet eller den hanterade identitet som används för att få åtkomst till nyckelvalvet.
Så här lägger du till ett nyckelvalvscertifikat API Management:
I Azure Portalnavigerar du till din API Management instans.
Under Säkerhet väljer du Certifikat.
Välj Certifikat > + Lägg till.
I Id anger du ett val av namn.
I Certifikat väljer du Nyckelvalv.
Ange identifieraren för ett nyckelvalvscertifikat eller välj Välj för att välja ett certifikat från ett nyckelvalv.
Viktigt
Om du själv anger ett nyckelvalvscertifikats-ID måste du kontrollera att det inte har versionsinformation. Annars roteras inte certifikatet automatiskt i API Management efter en uppdatering i nyckelvalvet.
I Klientidentitet väljer du en system tilldelad eller en befintlig användar tilldelad hanterad identitet. Lär dig hur du lägger till eller ändrar hanterade identiteter i API Management tjänsten.
Anteckning
Identiteten måste ha behörighet att hämta och lista certifikat från nyckelvalvet. Om du inte redan har konfigurerat åtkomst till nyckelvalvet uppmanas du API Management så att den automatiskt kan konfigurera identiteten med nödvändiga behörigheter.
Välj Lägg till.
Välj Spara.
Upload ett certifikat
Så här laddar du upp ett klientcertifikat till API Management:
I Azure Portalnavigerar du till din API Management instans.
Under Säkerhet väljer du Certifikat.
Välj Certifikat > + Lägg till.
I Id anger du ett val av namn.
I Certifikat väljer du Anpassad.
Bläddra för att välja certifikatets PFX-fil och ange dess lösenord.
Välj Lägg till.
Välj Spara.
När certifikatet har laddats upp visas det i fönstret Certifikat. Om du har många certifikat noterar du tumavtrycket för det önskade certifikatet för att konfigurera ett API att använda ett klientcertifikat för gatewayautentisering.
Anteckning
Om du vill inaktivera verifiering av certifikatkedjan när du till exempel använder ett själv signerat certifikat följer du stegen som beskrivs i Själv signerade certifikatsenare i den här artikeln.
Konfigurera ett API för att använda klientcertifikat för gatewayautentisering
I Azure Portalnavigerar du till din API Management instans.
Under API:er väljer du API:er.
Välj ett API i listan.
På fliken Design väljer du redigeringsikonen i avsnittet Backend.
I Autentiseringsuppgifter för gateway väljer du Klientcertifikat och sedan certifikatet i listrutan.
Välj Spara.
Varning
Den här ändringen börjar gälla omedelbart och anrop till åtgärder för det API:et använder certifikatet för att autentisera på backend-servern.
Tips
När ett certifikat har angetts för gatewayautentisering för serverdelstjänsten för ett API, blir det en del av principen för det API:et och kan visas i principredigeraren.
Själv signerade certifikat
Om du använder själv signerade certifikat måste du inaktivera verifiering av certifikatkedjan för att API Management kommunicera med serversystemet. Annars returneras en 500-felkod. För att konfigurera detta kan du använda (för ny New-AzApiManagementBackend backend) eller (för befintliga Set-AzApiManagementBackend backend) PowerShell-cmdlets och ange -SkipCertificateChainValidation parametern till True .
$context = New-AzApiManagementContext -resourcegroup 'ContosoResourceGroup' -servicename 'ContosoAPIMService'
New-AzApiManagementBackend -Context $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true
Ta bort ett klientcertifikat
Om du vill ta bort ett certifikat markerar du det och väljer sedan Ta bort på snabbmenyn (...).
Viktigt
Om certifikatet refereras till av några principer visas en varningsskärm. Om du vill ta bort certifikatet måste du först ta bort certifikatet från alla principer som är konfigurerade att använda det.