Delen via


Problemen met KCD-configuraties (Beperkte Kerberos-delegering) oplossen met de Microsoft Entra-toepassingsproxy

Methoden voor eenmalige aanmelding variëren van de ene toepassing naar de andere. Microsoft Entra-toepassingsproxy biedt standaard KCD (Beperkte Kerberos-delegering). Gebruikers verifiëren zich bij privétoepassingen met behulp van Kerberos.

Dit artikel bevat één referentiepunt voor het oplossen van de meest voorkomende problemen. Het gaat ook om de diagnose van complexere implementatieproblemen.

In dit artikel worden de volgende veronderstellingen weergegeven.

  • Implementatie van Microsoft Entra-toepassingsproxy en algemene toegang tot niet-KCD-toepassingen. Zie Aan de slag met de toepassingsproxyvoor meer informatie.
  • De gepubliceerde toepassing is gebaseerd op IIS (Internet Information Services) en de Microsoft-implementatie van Kerberos.
  • Server- en toepassingshosts bevinden zich in één Microsoft Entra-domein. Voor meer informatie over cross-domain- en forestscenario's, zie KCD-whitepaper.
  • De toepassing wordt gepubliceerd in een Microsoft Entra-tenant waarvoor verificatie vooraf is ingeschakeld. Gebruikers worden naar verwachting geverifieerd met verificatie op basis van formulieren. Uitgebreide clientverificatiescenario's vallen niet onder dit artikel.

Voorwaarden

Eenvoudige onjuiste configuraties of algemene fouten veroorzaken de meeste problemen. Controleer alle vereisten in KCD-eenmalige aanmelding gebruiken met de toepassingsproxy voordat u problemen kunt oplossen.

Connectorhosts zijn niet beperkt tot communicatie met alleen een specifieke lokale sitedomeincontroller (DC). Controleer de domeincontroller die wordt gebruikt, omdat deze kan worden gewijzigd.

Scenario's tussen domeinen zijn afhankelijk van verwijzingen die een connectorhost naar DC's leiden die zich mogelijk buiten de perimeter van het lokale netwerk bevinden. In deze gevallen is het even belangrijk om ook verkeer naar DC's te verzenden die andere respectieve domeinen vertegenwoordigen. Zo niet, mislukt de delegatie.

Vermijd actieve IPS-apparaten (Inbraakpreventiesysteem) of IDS-apparaten (Inbraakdetectiesysteem) tussen connectorhosts en DC's. Deze apparaten zijn te intrusief en verstoren het belangrijkste RPC-verkeer (Remote Procedure Call).

Test delegatie in eenvoudige scenario's. Hoe meer variabelen u introduceert, hoe meer u mogelijk te maken hebt met. Als u tijd wilt besparen, beperkt u het testen tot één connector. Voeg meer connectors toe nadat het probleem is opgelost.

Sommige omgevingsfactoren kunnen ook bijdragen aan een probleem. Om deze factoren te voorkomen, minimaliseert u de architectuur zoveel mogelijk tijdens het testen. Zo zijn onjuist geconfigureerde interne toegangsbeheerlijsten (ACL's) voor interne firewalls gebruikelijk. Verzend indien mogelijk al het verkeer van een connector rechtstreeks naar de DC's en de back-endtoepassing.

De beste plaats om verbindingslijnen zo dicht mogelijk bij hun doelen te plaatsen. Een firewall die inline is bij het testen voegt onnodige complexiteit toe en kan uw onderzoeken verlengen.

Wat toont een KCD-probleem? Er zijn verschillende veelvoorkomende aanwijzingen dat eenmalige aanmelding van KCD mislukt. De eerste tekenen van een probleem worden weergegeven in de browser.

Schermopname die een voorbeeld toont van een onjuiste K C D-configuratiefout, waarbij de fout

voorbeeld: Autorisatie is mislukt vanwege ontbrekende machtigingen

Beide afbeeldingen geven hetzelfde symptoom weer: eenmalige aanmeldingsfout. Gebruikerstoegang tot de toepassing wordt geweigerd.

Probleemoplossing

Verdeel het oplossen van problemen in drie fasen.

Voorafgaande authenticatie van de cliënt

De externe gebruiker die via een browser wordt geverifieerd. De mogelijkheid om vooraf te verifiëren bij Microsoft Entra ID is nodig om KCD-eenmalige aanmelding (SSO) te laten functioneren. Test en los deze mogelijkheid op als er problemen zijn. De fase voor verificatie vooraf is niet gerelateerd aan KCD of de gepubliceerde toepassing. Het is eenvoudig om eventuele verschillen te corrigeren door te controleren of het onderwerpaccount bestaat in Microsoft Entra-id. Controleer of de toepassing niet is uitgeschakeld of geblokkeerd. De foutreactie in de browser is beschrijvend genoeg om de oorzaak uit te leggen.

Delegeringsservice

De privénetwerkconnector die een Kerberos-serviceticket voor gebruikers ophaalt vanuit een Kerberos Key Distribution Center (KCD).

De externe communicatie tussen de client en de Azure-front-end heeft geen invloed op KCD. Deze communicatie zorgt er alleen voor dat KCD werkt. De toepassingsproxyservice wordt voorzien van een geldige gebruikers-id die wordt gebruikt om een Kerberos-ticket op te halen. Zonder deze id is KCD niet mogelijk en mislukt.

De foutberichten van de browser geven een aantal goede aanwijzingen over waarom dingen mislukken. Noteer de velden activity ID en timestamp in het antwoord. De informatie helpt het gedrag te correleren met werkelijke gebeurtenissen in het gebeurtenislogboek van de toepassingsproxy.

voorbeeld: onjuiste KCD-configuratiefout

De bijbehorende vermeldingen in het gebeurtenislogboek worden weergegeven als gebeurtenissen 13019 of 12027. Zoek de gebeurtenislogboeken van de connector in logboeken voor toepassingen en services>Microsoft>Microsoft Entra-privénetwerk>Connector>Admin.

  1. Gebruik een A-record in uw interne DNS (Domain Name System) voor het adres van de toepassing, niet een CName.
  2. Controleer opnieuw dat de connector-host het recht heeft om te delegeren aan de Service Principal Name (SPN) van het aangewezen doelaccount. Bevestig opnieuw dat Elk verificatieprotocol gebruiken is geselecteerd. Zie het SSO-configuratieartikelvoor meer informatie.
  3. Controleer of er slechts één exemplaar van de SPN aanwezig is in Microsoft Entra ID. Voer setspn -x uit vanaf een opdrachtprompt op een host die lid is van een domein.
  4. Controleer of een domeinbeleid wordt afgedwongen dat de maximale grootte van uitgegeven Kerberos-tokensbeperkt. Het beleid voorkomt dat de connector een token krijgt als dit te veel is.

Een netwerktracering die uitwisselingen tussen de connectorhost en een domein Kerberos Constrained Delegation (KDC) vastlegt, is de beste volgende stap om meer details op laag niveau over de problemen te krijgen. Voor meer informatie, zie het diepgaande document Probleemoplossing bij.

Als ticketing er goed uitziet, ziet u een gebeurtenis in de logboeken waarin staat dat de verificatie is mislukt omdat de toepassing een 401 heeft geretourneerd. Met deze gebeurtenis wordt aangegeven dat de doeltoepassing uw ticket heeft afgewezen. Ga naar de volgende fase.

Specifieke toepassing

De consument van het Kerberos-ticket dat door de connector is geleverd. In deze fase verwacht u dat de connector een Kerberos-serviceticket naar de back-end heeft verzonden. Het ticket is een header in het eerste verzoek van de applicatie.

  1. Door de interne URL van de toepassing te gebruiken die is gedefinieerd in de portal, controleert u of de toepassing rechtstreeks vanuit de browser op de connectorhost toegankelijk is. Vervolgens kunt u zich aanmelden. Meer informatie vindt u op de connector Probleem oplossen pagina.

  2. Controleer of voor verificatie tussen de browser en de toepassing Kerberos wordt gebruikt.

  3. Voer DevTools (F12) uit in Internet Explorer of gebruik Fiddler- vanaf de connectorhost. Ga naar de toepassing met behulp van de interne URL. Controleer de aangeboden webautorisatieheaders die zijn geretourneerd in het antwoord van de toepassing om ervoor te zorgen dat er onderhandeld of Kerberos aanwezig is.

    • De volgende Kerberos-blob, die wordt geretourneerd in het antwoord van de browser aan de toepassing, begint met YII. Deze letters laten zien dat Kerberos draait. Microsoft NT LAN Manager (NTLM) begint daarentegen altijd met TlRMTVNTUAAB, die NTLM Security Support Provider (NTLMSSP) leest wanneer deze wordt gedecodeerd vanuit Base64. Als u TlRMTVNTUAAB aan het begin van de blob ziet, is Kerberos niet beschikbaar. Als u TlRMTVNTUAABniet ziet, is Kerberos waarschijnlijk beschikbaar.

      Notitie

      Als u Fiddler gebruikt, moet u voor deze methode uitgebreide beveiliging tijdelijk uitschakelen voor de configuratie van de toepassing in IIS.

      browservenster voor netwerkinspectie

    • De blob in deze afbeelding begint niet met TIRMTVNTUAAB. In dit voorbeeld is Kerberos beschikbaar en begint de Kerberos-blob niet met YII-.

  4. Verwijder NTLM tijdelijk uit de lijst met providers op de IIS-site. Open de app rechtstreeks vanuit Internet Explorer op de connectorhost. NTLM staat niet meer in de lijst met providers. U hebt alleen toegang tot de toepassing via Kerberos. Als de toegang mislukt, is er mogelijk een probleem met de configuratie van de toepassing. Kerberos-verificatie werkt niet.

    • Als Kerberos niet beschikbaar is, controleert u de verificatie-instellingen van de toepassing in IIS. Zorg ervoor dat Negotiate bovenaan wordt weergegeven, met NTLM net eronder. Als u Niet onderhandelenziet, Kerberos of Negotiate, of PKU2U-, gaat u alleen door als Kerberos functioneel is.

      Windows-verificatieproviders

    • Als Kerberos en NTLM zijn ingesteld, schakelt u tijdelijk de verificatie vooraf uit voor de toepassing in de portal. Probeer toegang te krijgen vanaf internet met behulp van de externe URL. U wordt gevraagd om te verifiëren. U kunt dit doen met hetzelfde account dat in de vorige stap is gebruikt. Als dat niet het probleem is, is er een probleem met de back-endtoepassing, niet met KCD.

    • Schakel verificatie vooraf opnieuw in in de portal. Verifieer via Azure door verbinding te maken met de toepassing via de externe URL. Als Single Sign-On (SSO) mislukt, ziet u een forbidden-foutmelding in de browser en gebeurtenis 13022 in het logboek:

      Microsoft Entra Private Network Connector kan de gebruiker niet verifiëren omdat de back-endserver reageert op Kerberos-verificatiepogingen met een HTTP 401-fout.

      toont de HTTP 401 fout 'verboden'

    • Controleer de IIS-toepassing. Zorg ervoor dat de geconfigureerde groep van toepassingen en de SPN zijn geconfigureerd voor het gebruik van hetzelfde account in Microsoft Entra-id. Navigeer in IIS, zoals wordt weergegeven in de volgende afbeelding.

      venster voor iis-toepassingsconfiguratie

      Nadat u de identiteit weet, controleert u of dit account is geconfigureerd met de BETREFFENDE SPN. Een voorbeeld is setspn –q http/spn.wacketywack.com. Voer de volgende tekst in een opdrachtprompt in.

      Geeft het opdrachtvenster SetSPN weer

    • Controleer de SPN die is gedefinieerd op basis van de instellingen van de toepassing in de portal. Zorg ervoor dat dezelfde SPN die is geconfigureerd voor het Microsoft Entra-doelaccount, wordt gebruikt door de app-groep van de toepassing.

    • Ga naar IIS en selecteer de Configuration Editor optie voor de toepassing. Navigeer naar system.webServer/security/authentication/windowsAuthentication. Zorg ervoor dat de waarde UseAppPoolCredentials is True.

      referentieoptie voor iis-configuratie-app-pools

      Wijzig de waarde in True. Verwijder alle Kerberos-tickets in de cache van de back-endserver door de opdracht uit te voeren.

      Get-WmiObject Win32_LogonSession | Where-Object {$_.AuthenticationPackage -ne 'NTLM'} | ForEach-Object {klist.exe purge -li ([Convert]::ToString($_.LogonId, 16))}
      

Als u de kernelmodus ingeschakeld laat, worden de prestaties van Kerberos-bewerkingen verbeterd. Maar het zorgt er ook voor dat het ticket voor de aangevraagde service wordt ontsleuteld met behulp van het computeraccount. Dit account wordt ook wel het lokale systeem genoemd. Stel deze waarde in op True om KCD te verbreken wanneer de toepassing wordt gehost op meer dan één server in een farm.

  • Als een extra controle schakelt u ook uitgebreide-beveiliging uit. In sommige scenario's is uitgebreide beveiliging de KCD verbroken toen deze was ingeschakeld in specifieke configuraties. In die gevallen is een toepassing gepubliceerd als een submap van de standaardwebsite. Deze toepassing is alleen geconfigureerd voor anonieme verificatie. Alle dialoogvensters worden grijs weergegeven, wat aangeeft dat kindobjecten geen actieve instellingen overnemen. We raden aan dat u test, maar vergeet niet deze waarde te herstellen naar een ingeschakelde , waar mogelijk.

    Met deze extra controle bent u op schema om uw gepubliceerde toepassing te gebruiken. U kunt meer connectors opstarten die ook zijn geconfigureerd om te delegeren. Lees de meer gedetailleerde technische analyse voor meer informatie over het oplossen van problemen met de Microsoft Entra-toepassingsproxy.

Als u nog steeds geen voortgang kunt boeken, kan Microsoft Ondersteuning u helpen. Maak rechtstreeks in de portal een ondersteuningsticket.

Andere scenario's

Microsoft Entra-toepassingsproxy vraagt een Kerberos-ticket aan voordat de aanvraag naar een toepassing wordt verzonden. Sommige toepassingen vinden deze verificatiemethode niet leuk. Deze toepassingen verwachten dat er meer conventionele onderhandelingen plaatsvinden. De eerste aanvraag is anoniem, waardoor de toepassing kan reageren met de verificatietypen die worden ondersteund via een 401. Dit type Kerberos-onderhandeling kan worden ingeschakeld met behulp van de stappen die in dit document worden beschreven: Beperkte Kerberos-delegering voor eenmalige aanmelding.

Multi-hop authenticatie wordt vaak gebruikt in scenario's waarin een toepassing in lagen is opgebouwd. De lagen bestaan uit een back-end en een front-end. Voor beide lagen is verificatie vereist. Bijvoorbeeld SQL Server Reporting Services. Zie Hoe u Kerberos-beperkte delegering configureert voor proxypagina's voor webinschrijvingenvoor meer informatie.

Volgende stappen

KCD configureren op een beheerd domein.