Overzicht van wederzijdse verificatie met Application Gateway
Met wederzijdse verificatie of clientverificatie kan application gateway aanvragen verzenden door de client te verifiëren. Normaal gesproken wordt alleen de client geverifieerd bij application gateway; met wederzijdse verificatie kunnen zowel de client als de Application Gateway elkaar verifiëren.
Notitie
We raden u aan TLS 1.2 te gebruiken met wederzijdse verificatie, omdat TLS 1.2 in de toekomst wordt verplicht.
Wederzijdse verificatie
Application Gateway ondersteunt wederzijdse verificatie op basis van certificaten, waar u een of meer vertrouwde ca-certificaten voor clients kunt uploaden naar de Application Gateway. De gateway gebruikt dat certificaat om de client te verifiëren die een aanvraag naar de gateway verzendt. Dankzij de toename van IoT-gebruiksvoorbeelden en verhoogde beveiligingsvereisten in verschillende branches biedt wederzijdse verificatie een manier om te beheren en te bepalen welke clients met uw Application Gateway kunnen communiceren.
Voor het configureren van wederzijdse verificatie moet een vertrouwd client-CA-certificaat worden geüpload als onderdeel van het clientverificatiegedeelte van een SSL-profiel. Het SSL-profiel moet vervolgens aan een listener worden gekoppeld om de configuratie van wederzijdse verificatie te voltooien. Er moet altijd een basis-CA-certificaat aanwezig zijn in het clientcertificaat dat u uploadt. U kunt ook een certificaatketen uploaden, maar de keten moet een basis-CA-certificaat bevatten naast zoveel tussenliggende CA-certificaten als u wilt. De maximale grootte van elk geüpload bestand moet 25 kB of minder zijn.
Als uw clientcertificaat bijvoorbeeld een basis-CA-certificaat, meerdere tussenliggende CA-certificaten en een basiscertificaat bevat, moet u ervoor zorgen dat het basis-CA-certificaat en alle tussenliggende CA-certificaten in één bestand naar Application Gateway worden geüpload. Zie voor meer informatie over het extraheren van een vertrouwd client-CA-certificaat hoe u vertrouwde client-CA-certificaten kunt extraheren.
Als u een certificaatketen uploadt met basis-CA- en tussenliggende CA-certificaten, moet de certificaatketen worden geüpload als een PEM- of CER-bestand naar de gateway.
Belangrijk
Zorg ervoor dat u de volledige ca-certificaatketen van de vertrouwde client uploadt naar de Application Gateway wanneer u wederzijdse verificatie gebruikt.
Elk SSL-profiel kan maximaal 100 ca-certificaatketens van vertrouwde clients ondersteunen. Eén Application Gateway kan in totaal 200 ca-certificaatketens van vertrouwde clients ondersteunen.
Notitie
- Wederzijdse verificatie is alleen beschikbaar voor Standard_v2 en WAF_v2 SKU's.
- De configuratie van wederzijdse verificatie voor TLS-protocollisteners (preview) is momenteel beschikbaar via REST API, PowerShell en CLI. Ondersteuning voor Azure Portal is binnenkort beschikbaar.
Certificaten die worden ondersteund voor wederzijdse verificatie
Application Gateway ondersteunt certificaten die zijn uitgegeven door zowel openbare als privé gevestigde certificeringsinstanties.
- CA-certificaten die zijn uitgegeven door bekende certificeringsinstanties: tussenliggende en basiscertificaten worden vaak gevonden in vertrouwde certificaatarchieven en maken vertrouwde verbindingen mogelijk met weinig tot geen aanvullende configuratie op het apparaat.
- CA-certificaten die zijn uitgegeven door gevestigde certificeringsinstanties van de organisatie: deze certificaten worden doorgaans privé uitgegeven via uw organisatie en worden niet vertrouwd door andere entiteiten. Tussenliggende en basiscertificaten moeten worden geïmporteerd in vertrouwde certificaatarchieven voor clients om een ketenvertrouwensrelatie tot stand te brengen.
Notitie
Wanneer u clientcertificaten van goed gevestigde certificeringsinstanties uitgeeft, kunt u overwegen om met de certificeringsinstantie te werken om te zien of een tussenliggend certificaat kan worden uitgegeven voor uw organisatie om onbedoelde verificatie van clientcertificaten tussen organisaties te voorkomen.
Aanvullende validatie van clientverificatie
DN van clientcertificaat verifiëren
U hebt de mogelijkheid om de directe uitgever van het clientcertificaat te controleren en alleen de Application Gateway toe te staan die verlener te vertrouwen. Deze optie is standaard uitgeschakeld, maar u kunt dit inschakelen via portal, PowerShell of Azure CLI.
Als u ervoor kiest om application gateway in te schakelen om de onmiddellijke uitgever van het clientcertificaat te controleren, kunt u als volgt bepalen welke DN van de certificaatverlener van het clientcertificaat wordt geëxtraheerd uit de geüploade certificaten.
- Scenario 1: Certificaatketen omvat: basiscertificaat - tussenliggend certificaat - leaf-certificaat
- De onderwerpnaam van het tussenliggende certificaat is wat Application Gateway zal extraheren als de DN van de certificaatverlener van het clientcertificaat en wordt gecontroleerd op basis van.
- Scenario 2: Certificaatketen omvat: basiscertificaat - tussenliggend1 certificaat - tussenliggend2-certificaat - leaf-certificaat
- De onderwerpnaam van het tussenliggende2-certificaat wordt geëxtraheerd als de DN van de certificaatverlener van het clientcertificaat en wordt gecontroleerd op basis van.
- Scenario 3: Certificaatketen omvat: basiscertificaat - leaf-certificaat
- De onderwerpnaam van het basiscertificaat wordt geëxtraheerd en gebruikt als DN van clientcertificaatverlener.
- Scenario 4: Meerdere certificaatketens van dezelfde lengte in hetzelfde bestand. Keten 1 omvat: basiscertificaat - tussenliggend1 certificaat - certificaat van het blad. Keten 2 omvat: basiscertificaat - tussenliggend2-certificaat - leaf-certificaat.
- De onderwerpnaam van het tussenliggende1-certificaat wordt geëxtraheerd als DN van clientcertificaatverlener.
- Scenario 5: Meerdere certificaatketens van verschillende lengten in hetzelfde bestand. Keten 1 omvat: basiscertificaat - tussenliggend1 certificaat - certificaat van het blad. Chain 2 bevat een basiscertificaat - tussenliggend2-certificaat - tussenliggend3-certificaat - certificaat van het basiscertificaat.
- De onderwerpnaam van het tussenliggende3-certificaat wordt geëxtraheerd als DN van clientcertificaatverlener.
Belangrijk
U wordt aangeraden slechts één certificaatketen per bestand te uploaden. Dit is vooral belangrijk als u de DN van het clientcertificaat controleert. Door meerdere certificaatketens in één bestand te uploaden, eindigt u in scenario vier of vijf en loopt u later mogelijk problemen op wanneer het gepresenteerde clientcertificaat niet overeenkomt met de DN Application Gateway van de clientcertificaatverlener die is geëxtraheerd uit de ketens.
Zie voor meer informatie over het extraheren van ca-certificaatketens van vertrouwde clients hoe u ca-certificaatketens voor vertrouwde clients kunt extraheren.
Servervariabelen
Met wederzijdse TLS-verificatie zijn er extra servervariabelen die u kunt gebruiken om informatie over het clientcertificaat door te geven aan de back-endservers achter de Application Gateway. Bekijk servervariabelen voor meer informatie over welke servervariabelen beschikbaar zijn en hoe u deze kunt gebruiken.
Certificaatintrekking
Wanneer een client een verbinding initieert met een Toepassingsgateway die is geconfigureerd met wederzijdse TLS-verificatie, kan niet alleen de certificaatketen en de DN-naam van de verlener worden gevalideerd, maar kan de intrekkingsstatus van het clientcertificaat worden gecontroleerd met OCSP (Online Certificate Status Protocol). Tijdens de validatie wordt het certificaat dat door de client wordt gepresenteerd, opgezoekd via de gedefinieerde OCSP-responder die is gedefinieerd in de AIA-extensie (Authority Information Access). Als het clientcertificaat is ingetrokken, reageert de toepassingsgateway met een HTTP 400-statuscode en -reden op de client. Als het certificaat geldig is, wordt de aanvraag nog steeds verwerkt door de toepassingsgateway en doorgestuurd naar de gedefinieerde back-endpool.
Het intrekken van clientcertificaten kan worden ingeschakeld via REST API, ARM, Bicep, CLI of PowerShell.
Als u clientintrekkingscontrole wilt configureren voor een bestaande toepassingsgateway via Azure PowerShell, kunt u naar de volgende opdrachten verwijzen:
# 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
Hier vindt u een lijst met alle Azure PowerShell-verwijzingen voor clientverificatieconfiguratie in Application Gateway:
Om te controleren of de ocsp-intrekkingsstatus is geëvalueerd voor de clientaanvraag, bevatten toegangslogboeken een eigenschap met de naam sslClientVerify, met de status van het OCSP-antwoord.
Het is van cruciaal belang dat de OCSP-responder maximaal beschikbaar is en dat de netwerkverbinding tussen Application Gateway en de responder mogelijk is. In het geval dat Application Gateway de FQDN (Fully Qualified Domain Name) van de gedefinieerde responder of netwerkverbinding niet kan omzetten naar/van de responder, mislukt de certificaatintrekkingsstatus en retourneert Application Gateway een HTTP-antwoord van 400 naar de aanvragende client.
Opmerking: OCSP-controles worden gevalideerd via lokale cache op basis van de volgendeUpdate-tijd die is gedefinieerd door een eerder OCSP-antwoord. Als de OCSP-cache niet is ingevuld vanuit een vorige aanvraag, kan het eerste antwoord mislukken. Wanneer de client opnieuw wordt geprobeerd, moet het antwoord worden gevonden in de cache en wordt de aanvraag verwerkt zoals verwacht.
Opmerkingen
- Intrekkingscontrole via CRL wordt niet ondersteund
- Clientintrekkingscontrole is geïntroduceerd in API-versie 2022-05-01
Volgende stappen
Nadat u meer hebt geleerd over wederzijdse verificatie, gaat u naar Application Gateway configureren met wederzijdse verificatie in PowerShell om een Application Gateway te maken met behulp van wederzijdse verificatie.