Skydda serverdelstjänster med klientcertifikatautentisering i Azure API Management

GÄLLER FÖR: Alla API Management-nivåer

Med API Management kan du skydda åtkomsten till serverdelstjänsten för ett API med hjälp av klientcertifikat och ömsesidig TLS-autentisering. Den här guiden visar hur du hanterar certifikat i en Azure API Management-tjänstinstans med hjälp av Azure-portalen. Den förklarar också hur du konfigurerar ett API för att använda ett certifikat för att komma åt en serverdelstjänst.

Du kan också hantera API Management-certifikat med API Management REST API.

Certifikatalternativ

API Management innehåller två alternativ för att hantera certifikat som används för att skydda åtkomsten till serverdelstjänster:

  • Referera till ett certifikat som hanteras i Azure Key Vault
  • Lägga till en certifikatfil direkt i API Management

Du rekommenderas att använda Key Vault-certifikat eftersom det hjälper till att förbättra API Management-säkerheten:

  • Certifikat som lagras i nyckelvalv kan återanvändas mellan 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 av Azure-portalen eller via rest-API:et för hantering.

Förutsättningar

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Information om hur du kommer igång finns i 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 ännu kan du läsa Skapa en API Management-tjänstinstans.

  • Du bör ha serverdelstjänsten 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älvsignerade certifikat tillåts.

    Om du använder ett självsignerat certifikat:

Förutsättningar för key vault-integrering

Kommentar

För närvarande är den här funktionen inte tillgänglig på arbetsytor.

  1. Om du inte redan har ett nyckelvalv skapar du ett. Anvisningar för hur du skapar ett nyckelvalv finns i Snabbstart: Skapa ett nyckelvalv med azure-portalen.

    Information om hur du skapar eller importerar ett certifikat till nyckelvalvet finns i Snabbstart: Ange och hämta ett certifikat från Azure Key Vault med hjälp av Azure-portalen.

  2. Aktivera en systemtilldelad eller användartilldelad hanterad identitet i API Management-instansen.

Konfigurera åtkomst till nyckelvalv

  1. I portalen navigerar du till ditt nyckelvalv.

  2. I den vänstra menyn väljer du Åtkomstkonfiguration och noterar den behörighetsmodell som har konfigurerats.

  3. Beroende på behörighetsmodellen konfigurerar du antingen en åtkomstprincip för nyckelvalvet eller Azure RBAC-åtkomst för en hanterad API Management-identitet.

    Så här lägger du till en åtkomstprincip för key vault:

    1. I den vänstra menyn väljer du Åtkomstprinciper.
    2. På sidan Åtkomstprinciper väljer du + Skapa.
    3. På fliken Behörigheter går du till Hemliga behörigheter, väljer Hämta och Lista och väljer sedan Nästa.
    4. På fliken Huvudnamn väljer du huvudnamn, söker efter resursnamnet för din hanterade identitet och väljer sedan Nästa. Om du använder en systemtilldelad identitet är huvudnamnet för din API Management-instans.
    5. Välj Nästa igen. På fliken Granska + skapa väljer du Skapa.

    Så här konfigurerar du Azure RBAC-åtkomst:

    1. Välj Åtkomstkontroll (IAM) i den vänstra menyn.
    2. På sidan Åtkomstkontroll (IAM) väljer du Lägg till rolltilldelning.
    3. På fliken Roll väljer du Nyckelvalvscertifikatanvändare.
    4. På fliken Medlemmar väljer du Hanterad identitet>+ Välj medlemmar.
    5. På sidan Välj hanterad identitet väljer du den systemtilldelade hanterade identiteten eller en användartilldelad hanterad identitet som är associerad med din API Management-instans och väljer sedan Välj.
    6. Välj Granska + tilldela.

Krav för Key Vault-brandvägg

Om Key Vault-brandväggen är aktiverad i nyckelvalvet är följande ytterligare krav:

  • Du måste använda API Management-instansens systemtilldelade 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å den här brandväggen .

  • Se till att din lokala klient-IP-adress tillåts komma åt nyckelvalvet tillfälligt medan du väljer ett certifikat eller en hemlighet som ska läggas till i Azure API Management. Mer information finns i Konfigurera nätverksinställningar för Azure Key Vault.

    När du har slutfört konfigurationen kan du blockera klientadressen i nyckelvalvsbrandväggen.

Krav för virtuella nätverk

Om API Management-instansen distribueras i ett virtuellt nätverk konfigurerar du även följande nätverksinställningar:

Mer information finns i Nätverkskonfiguration när du konfigurerar Azure API Management i ett virtuellt nätverk.

Lägga till ett key vault-certifikat

Se Krav för key vault-integrering.

Viktigt!

När du lägger till ett key vault-certifikat i DIN API Management-instans måste du ha behörighet att lista hemligheter från nyckelvalvet.

Varning

När du använder ett nyckelvalvscertifikat i API Management bör du vara försiktig så att du inte tar bort certifikatet, nyckelvalvet eller den hanterade identitet som används för att komma åt nyckelvalvet.

Så här lägger du till ett key vault-certifikat i API Management:

  1. I Azure-portalen går du till din API Management-instans.

  2. Under Säkerhet väljer du Certifikat.

  3. Välj Certifikat>+ Lägg till.

  4. I ID anger du ett valfritt namn.

  5. I Certifikat väljer du Nyckelvalv.

  6. Ange identifieraren för ett nyckelvalvcertifikat eller välj Välj för att välja ett certifikat från ett nyckelvalv.

    Viktigt!

    Om du anger en nyckelvalvscertifikatidentifierare själv kontrollerar du att den inte har versionsinformation. Annars roteras inte certifikatet automatiskt i API Management efter en uppdatering i nyckelvalvet.

  7. I Klientidentitet väljer du en systemtilldelad eller en befintlig användartilldelad hanterad identitet. Lär dig hur du lägger till eller ändrar hanterade identiteter i API Management-tjänsten.

    Kommentar

    Identiteten behöver behörighet för att hämta och lista certifikat från nyckelvalvet. Om du inte redan har konfigurerat åtkomst till nyckelvalvet uppmanar API Management dig så att den automatiskt kan konfigurera identiteten med nödvändiga behörigheter.

  8. Markera Lägga till.

    Skärmbild av att lägga till ett key vault-certifikat i API Management i portalen.

  9. Välj Spara.

Ladda upp ett certifikat

Så här laddar du upp ett klientcertifikat till API Management:

  1. I Azure-portalen går du till din API Management-instans.

  2. Under Säkerhet väljer du Certifikat.

  3. Välj Certifikat>+ Lägg till.

  4. I ID anger du ett valfritt namn.

  5. I Certifikat väljer du Anpassad.

  6. Bläddra för att välja .pfx-certifikatfilen och ange dess lösenord.

  7. Markera Lägga till.

    Skärmbild av uppladdning av ett klientcertifikat till API Management i portalen.

  8. Välj Spara.

När certifikatet har laddats upp visas det i fönstret Certifikat . Om du har många certifikat bör du anteckna tumavtrycket för det önskade certifikatet för att konfigurera ett API för att använda ett klientcertifikat för gatewayautentisering.

Konfigurera ett API för att använda klientcertifikat för gatewayautentisering

  1. I Azure-portalen går du till din API Management-instans.

  2. Under API:er väljer du API:er.

  3. Välj ett API i listan.

  4. På fliken Design väljer du redigeringsikonen i avsnittet Serverdel .

  5. I Gateway-autentiseringsuppgifter väljer du Klientcertifikat och väljer ditt certifikat i listrutan.

  6. Välj Spara.

    Använda klientcertifikat för gatewayautentisering

Varning

Den här ändringen träder i kraft omedelbart och anrop till driften av det API:et använder certifikatet för att autentisera på serverdelsservern.

Dricks

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.

Inaktivera validering av certifikatkedjan för självsignerade certifikat

Om du använder självsignerade certifikat måste du inaktivera validering av certifikatkedjan för API Management för att kommunicera med serverdelssystemet. Annars returneras en 500-felkod. För att konfigurera detta kan du använda New-AzApiManagementBackend PowerShell-cmdletarna (för ny serverdel) eller Set-AzApiManagementBackend (för befintliga serverdelar) och ange parametern -SkipCertificateChainValidation till True.

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

Du kan också inaktivera validering av certifikatkedjan med hjälp av REST-API:et för serverdelen .

Ta bort ett klientcertifikat

Om du vill ta bort ett certifikat markerar du det och väljer sedan Ta bort på snabbmenyn (...).

Ta bort ett certifikat

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 har konfigurerats för att använda det.

Nästa steg