Översikt över ömsesidig autentisering med Application Gateway

Ömsesidig autentisering, eller klientautentisering, gör att Application Gateway kan autentisera klienten som skickar begäranden. Vanligtvis autentiserar bara klienten Application Gateway. Med ömsesidig autentisering kan både klienten och Application Gateway autentisera varandra.

Kommentar

Vi rekommenderar att du använder TLS 1.2 med ömsesidig autentisering eftersom TLS 1.2 kommer att tillåtas i framtiden.

Ömsesidig autentisering

Application Gateway stöder certifikatbaserad ömsesidig autentisering. Du kan ladda upp certifikat för betrodd klientcertifikatutfärdare till Application Gateway och gatewayen använder dessa certifikat för att autentisera klienter som skickar begäranden. Med ökningen av IoT-användningsfall och ökade säkerhetskrav mellan olika branscher ger ömsesidig autentisering ett sätt för dig att hantera och kontrollera vilka klienter som kan kommunicera med din Application Gateway.

Application Gateway innehåller följande två alternativ för att verifiera klientcertifikat:

Ömsesidigt TLS-förbipasseringsläge

I ömsesidigt TLS-genomströmningsläge (mTLS) begär Application Gateway ett klientcertifikat under TLS-handskakningen men avslutar inte anslutningen om certifikatet saknas eller är ogiltigt. Anslutningen till serverdelen fortsätter oavsett certifikatets närvaro eller giltighet. Om ett certifikat tillhandahålls kan Application Gateway vidarebefordra det till serverdelen om det krävs av programmet. Serverdelstjänsten ansvarar för att verifiera klientcertifikatet.

Fördelar med mTLS-genomströmningsläge

mTLS-genomströmningsläge ger följande fördelar:

  • Förenklad gatewaykonfiguration: Ingen ca-certifikatuppladdning krävs på gatewaynivå.
  • Flexibel autentisering: Stöder scenarier med blandad trafik där vissa klienter använder certifikat och andra använder tokenbaserad autentisering.
  • Tillämpning av backend-policy: Tillåter din backend-applikation att implementera anpassad certifikatvalideringslogik och -policyer.
  • Minskade gatewaykostnader: Avlastar certifikatverifieringen till serverdelen, vilket minskar bearbetningen på gatewayen.
  • Stöd för gradvis migrering: Aktiverar stegvis distribution av mTLS utan att störa befintliga trafikmönster.

Om du vill vidarebefordra klientcertifikat till serverdelen konfigurerar du servervariabler. Mer information finns i Servervariabler.

Konfigurera mTLS-genomströmningsläge

Du kan konfigurera mTLS-genomströmningsläge med hjälp av Azure-portalen eller ARM-mallar.

Så här konfigurerar du mTLS-genomströmningsläge i Azure-portalen:

  1. Navigera till din Application Gateway-resurs.

  2. Under Inställningar väljer du SSL-profiler.

  3. Välj + Lägg till för att skapa en ny SSL-profil.

  4. Ange ett namn för din SSL-profil.

  5. På fliken Klientautentisering väljer du Genomkoppling.

    I Passthrough-läge är klientcertifikatet valfritt. Serverdelsservern ansvarar för klientautentisering.

    Skärmbild som visar Skapa SSL-profil-dialogrutan i Azure-portalen med Pass-through valt för klientautentiseringsmetod.

  6. Konfigurera SSL-principinställningar efter behov.

  7. Välj Lägg till för att skapa SSL-profilen.

  8. Associera SSL-profilen med HTTPS-lyssnaren.

Kommentar

PowerShell- och CLI-stöd för genomströmningskonfiguration är för närvarande inte tillgängliga.

Ömsesidigt TLS-strikt läge

I ömsesidigt strikt TLS-läge tillämpar Application Gateway klientcertifikatautentisering under TLS-handskakningen genom att kräva ett giltigt klientcertifikat. Om du vill aktivera strikt läge laddar du upp ett certifikat för betrodd klientcertifikatutfärdare som innehåller en rotcertifikatutfärdare och eventuellt mellanliggande certifikatutfärdare som en del av SSL-profilen. Associera den här SSL-profilen med en lyssnare för att framtvinga ömsesidig autentisering.

Konfigurera ömsesidigt TLS-strikt läge

Om du vill konfigurera strikt läge för ömsesidig autentisering laddar du upp ett certifikat för betrodd klientcertifikatutfärdare som en del av klientautentiseringsdelen av en SSL-profil. Associera sedan SSL-profilen med en lyssnare för att slutföra konfigurationen. Det klientcertifikat som du laddar upp måste alltid innehålla ett rotcertifikat. Du kan ladda upp en certifikatkedja, men kedjan måste innehålla ett rot-CA-certifikat utöver mellanliggande CA-certifikat. Den maximala storleken för varje uppladdad fil måste vara 25 KB eller mindre.

Om ditt klientcertifikat till exempel innehåller ett root CA-certifikat, flera mellanliggande CA-certifikat och ett slutcertifikat, laddar du upp root CA-certifikatet och alla mellanliggande CA-certifikat till Application Gateway i en fil. Mer information om hur du extraherar ett certifikat för betrodd klientcertifikatutfärdare finns i Extrahera certifikat för betrodd klientcertifikatutfärdare.

Om du laddar upp en certifikatkedja med rot-CA och mellanliggande CA-certifikat, laddar du upp certifikatkedjan som en PEM- eller CER-fil till gateway.

Viktigt!

Ladda upp hela certifikatkedjan för betrodd klient-CAs till Application Gateway när du använder ömsesidig autentisering.

Varje SSL-profil har stöd för upp till 100 betrodda certifikatkedjor för klientcertifikatutfärdare. En enda Application Gateway har stöd för totalt 200 betrodda CA-certifikatkedjor för klienter.

Kommentar

  • Ömsesidig autentisering är endast tillgängligt på Standard_v2 och WAF_v2 SKU:er.
  • Konfiguration av ömsesidig autentisering för TLS-protokolllyssnare är för närvarande tillgänglig via REST API, PowerShell och CLI.

Certifikat som stöds för ömsesidig autentisering med strikt TLS-läge

Application Gateway stöder certifikat som utfärdats från både offentliga och privat etablerade certifikatutfärdare.

  • CA-certifikat som utfärdats från välkända certifikatutfärdare: Mellanliggande och rotcertifikat finns ofta i betrodda certifikatarkiv och aktiverar betrodda anslutningar med liten eller ingen extra konfiguration på enheten.
  • CA-certifikat utfärdade från organisationsetablerade certifikatutfärdare: Dessa certifikat utfärdas vanligtvis privat via din organisation och är inte betrodda av andra entiteter. Importera mellanliggande certifikat och rotcertifikat till betrodda certifikatarkiv för klienter för att upprätta kedjeförtroende.

Kommentar

När du utfärdar klientcertifikat från väletablerade certifikatutfärdare bör du överväga att arbeta med certifikatutfärdare för att se om ett mellanliggande certifikat kan utfärdas för din organisation. Den här metoden förhindrar oavsiktlig autentisering av klientcertifikat mellan organisationer.

Verifiering av klientcertifikat för strikt ömsesidigt TLS-läge

Verifiera klientcertifikatets DN

Du kan verifiera klientcertifikatets omedelbara utfärdare och endast tillåta att Application Gateway litar på utfärdaren. Det här alternativet är inaktiverat som standard, men du kan aktivera det via portalen, PowerShell eller Azure CLI.

Om du aktiverar Application Gateway för att verifiera klientcertifikatets omedelbara utfärdare beskriver följande scenarier hur klientcertifikatutfärdarenS DN extraheras från de uppladdade certifikaten:

  • Scenario 1: Certifikatkedjan innehåller rotcertifikat, mellanliggande certifikat och lövcertifikat.
    • Det mellanliggande certifikatets ämnesnamn extraheras som klientcertifikatutfärdarens DN.
  • Scenario 2: Certifikatkedjan innehåller rotcertifikat, mellanliggande1 certifikat, mellanliggande2 certifikat och lövcertifikat.
    • Ämnesnamnet för Intermediate2-certifikatet extraheras som utfärdarens DN för klientcertifikatet.
  • Scenario 3: Certifikatkedjan innehåller rotcertifikat och lövcertifikat.
    • Rotcertifikatets ämnesnamn extraheras som klientcertifikatutfärdarens DN.
  • Scenario 4: Flera certifikatkedjor med samma längd i samma fil. Kedja 1 innehåller rotcertifikat, mellanliggande1 certifikat och lövcertifikat. Kedja 2 innehåller rotcertifikat, mellanliggande2 certifikat och lövcertifikat.
    • Ämnesnamnet för intermediate1-certifikatet extraheras som klientcertifikatutfärdarens DN.
  • Scenario 5: Flera certifikatkedjor med olika längd i samma fil. Kedja 1 innehåller rotcertifikat, mellanliggande1 certifikat och lövcertifikat. Kedja 2 innehåller rotcertifikat, intermediärcertifikat 2, intermediärcertifikat 3 och lövcertifikat.
    • Det mellanliggande certifikatets ämnesnamn extraheras som klientcertifikatutfärdarens DN.

Viktigt!

Vi rekommenderar att du bara laddar upp en certifikatkedja per fil. Den här rekommendationen är särskilt viktig om du aktiverar alternativet verifiera klientcertifikatets DN. Att ladda upp flera certifikatkedjor i en fil resulterar i scenario fyra eller fem, vilket kan orsaka problem senare när klientcertifikatet som visas inte matchar klientcertifikatutfärdaren DN som Application Gateway extraherade från kedjorna.

Mer information om hur du extraherar certifikatkedjor för betrodd klientcertifikatutfärdare finns i Extrahera certifikatkedjor för betrodd klientcertifikatutfärdare.

Servervariabler

Med ömsesidig TLS-autentisering kan du använda ytterligare servervariabler för att skicka information om klientcertifikatet till serverdelsservrarna bakom Application Gateway. Mer information om vilka servervariabler som är tillgängliga och hur du använder dem finns i Servervariabler.

Återkallande av certifikat

När en klient initierar en anslutning till en Application Gateway som konfigurerats med ömsesidig TLS-autentisering kan certifikatkedjan och utfärdarens unika namn verifieras. Dessutom kan återkallningsstatusen för klientcertifikatet kontrolleras med OCSP (Online Certificate Status Protocol). Under valideringen granskas certifikatet som presenteras av klienten via den definierade OCSP-svararen i AIA-tillägget (Authority Information Access). Om klientcertifikatet har återkallats svarar Application Gateway klienten med en HTTP 400-statuskod och orsak. Om certifikatet är giltigt fortsätter begäran att bearbetas av Application Gateway och vidarebefordras till den definierade serverdelspoolen.

Du kan aktivera återkallning av klientcertifikat via REST API, ARM-mall, Bicep, CLI eller PowerShell.

Använd följande kommandon för att konfigurera kontroll av klientåterkallning på en befintlig Application Gateway med hjälp av Azure PowerShell:

# Get Application Gateway configuration
$AppGw = Get-AzApplicationGateway -Name "ApplicationGateway01" -ResourceGroupName "ResourceGroup01"

# Create new SSL Profile
$profile  = Get-AzApplicationGatewaySslProfile -Name "SslProfile01" -ApplicationGateway $AppGw

# Verify Client Cert Issuer DN and enable Client Revocation Check
Set-AzApplicationGatewayClientAuthConfiguration -SslProfile $profile -VerifyClientCertIssuerDN -VerifyClientRevocation OCSP

# Update Application Gateway
Set-AzApplicationGateway -ApplicationGateway $AppGw

En lista över alla Azure PowerShell referenser för konfiguration av klientautentisering på Application Gateway finns i följande artiklar:

För att verifiera att STATUS för OCSP-återkallande utvärderades för klientbegäran innehåller åtkomstloggar en egenskap med namnet sslClientVerify som visar status för OCSP-svaret.

Det är viktigt att OCSP-svararen är mycket tillgänglig och att nätverksanslutningen mellan Application Gateway och svararen är möjlig. Om Application Gateway inte kan matcha det fullständigt kvalificerade domännamnet (FQDN) för den definierade svararen, eller om nätverksanslutningen blockeras till eller från svararen, misslyckas certifikatåterkallningsstatusen och Application Gateway returnerar ett 400 HTTP-svar till den begärande klienten.

Kommentar

OCSP-kontroller verifieras via lokal cache baserat på den nextUpdate tid som definierats av ett tidigare OCSP-svar. Om OCSP-cachen inte har fyllts i från en tidigare begäran kan det första svaret misslyckas. När klienten försöker igen ska svaret hittas i cacheminnet och begäran bearbetas som förväntat.

Anteckningar

  • Återkallningskontroll via CRL stöds inte.
  • Kontroll av klientåterkallning introducerades i API-version 2022-05-01.

När du har lärt dig mer om ömsesidig autentisering går du till Konfigurera Application Gateway med ömsesidig autentisering i PowerShell för att skapa en Application Gateway som använder ömsesidig autentisering.