Kerberos? Kerberos! ….en CRM - Dynamics CRM on the move

Dynamics CRM on the move

Kerberos? Kerberos! ….en CRM

CRM maakt gebruik van Kerberos als authenticatie provider. Op het moment dat je CRM installeert wordt automatisch Kerberos aangezet en dit zorgt ervoor dat je kunt aanloggen en functionaliteiten gebruiken van CRM zonder dat je je keer op keer opnieuw hoeft aan te melden.

Waarom Kerberos? Kerberos is op dit moment de meest veilige standaard authenticatie provider. Ook wel de drie koppige draak genoemd omdat het authenticatie mechanisme over 3 schijven gaat. De Griekse Mythe vertelt dat de drie koppige draak Kerberos niet was te verslaan.

Is er een alternatief voor CRM authenticatie? Ja en Nee. Officieel is er geen supported alternatief, maar in de praktijk zien we door allerlei Kerberos problemen dat het fall-back scenario NTLM wordt gebruikt. Dit staat standaard ook aan op de CRM applicatie server, maar het zou kunnen zijn dat bepaalde functionaliteit van CRM niet werkt, bijvoorbeeld rapportage. Of dit zo is, hangt helemaal af van de wijze waarop CRM is geïmplementeerd.

Is NTLM niet goed genoeg? Met de tegenwoordige kennis en tooling is NTLM authenticatie eenvoudig af te luisteren met alle gevolgen van dien. Dus het antwoord in het huidige tijdperk met de roep om betere security is NEE.

Zijn er problemen met Kerberos? Nou, Kerberos werkt alleen goed als het op de juiste manier is geconfigureerd. De infrastructuur vereist dat je een aantal zaken goed moet configureren om Kerberos zijn werk te laten doen. Als je dit niet doet, of niet goed doet dan ervaar je binnen CRM problemen met authenticatie via Kerberos.

CRM werkt, hoe weet je dat je een Kerberos probleem hebt? Kerberos kun je niet half gebruiken. Het werkt of het werkt niet. Echter CRM is vaak zo geconfigureerd dat er onder water alsnog een ander type authenticatie wordt gebruikt waardoor je niet meteen merkt of je wel of geen Kerberos gebruikt. Dus waar we naar opzoek zijn is een bevestiging of Kerberos daadwerkelijk gebruikt wordt voor CRM. Kijk hiervoor in de Event Viewer op de CRM applicatie server of Kerberos wordt gebruikt door in het security log te kijken naar de regel waar je aanlogt (even zoeken op je user naam) en dan te kijken bij het veld: Authentication Package. Als hier Kerberos of Negotiate staat dan is dat de bevestiging waar we naar opzoek zijn. Staat hier NTLM dan is dat niet goed.

Hoe kan ik dieper onderzoeken of Kerberos wordt gebruikt? Gebruik hiervoor netwerk tracing tools als Netmon en Fiddler. En zoek naar de eerste communicatie tussen de client en de server. Hier wordt absoluut aangegeven welke authenticatie provider wordt gebruikt (NTLM of Kerberos).

Hier een heel goede blog over de verschillende scenario’s met configuraties die daarbij horen.

Via de volgende symptomen probeer ik inzicht te geven in het type configuratie dat gedaan moet worden om Kerberos authenticatie problemen op te lossen.

Symptoom 1.
Je verwacht dat Kerberos ervoor zorgt dat je direct kan aanloggen aan CRM, maar in plaats daarvan krijg je een inlogbox (Authenticatieprompt).

Oorzaak symptoom 1
De URL van CRM staat niet in de Local Intranet zone van Internet Explorer. Standaard zal Internet Explorer vanuit beveiligingsoogpunt uitsluitend de credentials van de gebruiker naar een CRM server sturen wanneer deze in de Local Intranet zone staat.
Het standaard gedrag van Internet Explorer is dat wanneer er één of meerdere punten in de URL staan, de URL als Internet (lees: non-trusted) wordt gezien en daardoor niet de credentials van de gebruiker ongevraagd meestuurt.

Oplossingen symptoom 1:
1. Gebruik een URL zonder punten
2. Voeg de URL toe aan de Local Intranet zone binnen Internet Explorer
Dit kan eventueel via een groepspolicy centraal geregeld worden.
Let op: standaard zullen de credentials van de aangelogde gebruiker naar de CRM server gestuurd worden wanneer deze onder de Local Intranet setting valt. Dit kan echter gewijzigd zijn en dient daarom gecontroleerd te worden.
clip_image001

Symptoom 2
Ondanks dat bovenstaande instelling correct staat, krijgt de gebruiker geen toegang tot de CRM applicatie.

Oorzaak symptoom 2
In veel gevallen wil Kerberos niet werken omdat één of meerdere benodigde Service Principal Names (SPNs) ontbreken. Kerberos authenticatie is afhankelijk van SPNs. Wanneer een gebruiker naar CRM connecteert, zal Kerberos zoeken naar de SPN van de betreffende service; de CRM applicatie URL in ons geval. Kan deze SPN niet gevonden worden, dan zal Kerberos falen en er eventueel terug gevallen worden op het zwakkere NTLM authenticatie protocol.
Maar een verlopen wachtwoord van het CRMApppool useraccount of een gedisabled CRMApppool useraccount is ook een mogelijke oorzaak.

Oplossing symptoom 2
Verifieer dat de benodigde SPNs aanwezig zijn en creëer de ontbrekende SPNs. Via het commando SetSPN –L kan je een SPN opvragen en middels SetSPN –A kan je een SPN creëren.
Let op 1: je dient domein beheerder rechten te hebben om een SPN te mogen/kunnen maken.
Let op 2: SPNs moeten uniek zijn. Er mogen dus geen dubbele SPNs aanwezig zijn.

Symptoom 3.
Je kan zonder hiervoor geprompt te worden succesvol connecteren naar de CRM applicatie, maar de applicatie werkt niet volledig; e.g. je kan geen rapport draaien.

Oorzaak symptoom 3
Dit symptoom kan meerdere oorzaken hebben:
1. De CRM applicatie wil jouw credentials gebruiken om naar de backend server te connecteren (e.g. de report server). Hiervoor dient het account waar de ApplicatiePool onder draait vertrouwd te zijn om jouw credentials te delegeren. Wanneer dit account hier niet toe vertrouwd is, zal de connectie falen.
2. Kernel Mode Authenticatie wordt gebruikt, maar de useAppPoolCredentials staat op False.

Oplossingen symptoom 3
1. Vertrouw het account waar de applicatiepool onder draait om credentials te delegeren door het ‘Trusted for delegation’ te configureren.
Dit kan middels ADSIEdit.msc maar ook via de AD Users and Computers interface
2. Zet de useAppPoolCredentials instelling op True

Symptoom 4.
Er wordt gebruik gemaakt van meerdere applicatie servers met meerdere CRM Apppool useraccounts via een loadbalancer

Oorzaak symptoom 4
De CRM applicatie wordt gehost vanuit meerdere applicatiepools. Deze dienen onder één en hetzelfde account te draaien, aangezien SPNs uniek dienen te zijn en daarmee aan slecht één enkel account gekoppeld kunnen worden.

Oplossingen symptoom 4
Configureer elke applicatiepool die via dezelfde URL opgevraagd wordt, met hetzelfde service account.

Symptoom 5
Voor de CRM omgeving wordt 1 URL gebruikt die naar de CRM server (of loadbalancer) wijst. Echter deze is geconfigureerd met een alias.

Oorzaak symptoom 5
Omdat er gebruik gemaakt wordt van meerdere frontend CRM webservers, wordt er een load balancer gebruikt. De URL van de CRM webapplicatie dient hierdoor naar de load balancer te resolven. Wanneer dit middels een alias (CNAME) record gebeurt, kan dit afhankelijk van de browser versie de Kerberos authenticatie doen falen. Sommige browser versies zullen namelijk een SPN gaan zoeken voor het host (A) record van de load balancer, en deze zal waarschijnlijk niet aanwezig zijn.

Oplossingen symptoom 5
GA naar de DNS server en verwijder de CNAME. Gebruik altijd een host (A) record in DNS om de URL van de CRM webapplicatie te resolven. Wanneer er vervolgens (zoals hierboven beschreven) een SPN voor deze URL is, zal Kerberos authenticatie werken.

Hierbij wil ik mijn collega Dirk-Jan van der Vecht bedanken voor het mede opstellen van deze post.

Succes!

Commentaar:

Microsoft Dynamics CRM Team Blog zei:

Evolution of Authentication Protocols The Windows Challenge/Response (NTLM) authentication protocol

# September 19, 2012 6:31 PM

China Dynamics CRM Team Blog zei:

授权协议的演进 Windows 提供的 Challenge/Response(NTLM) 授权协议 ( 更多 ) 提供了向后兼容。正如早期最初实施时,验证通过 Challenge/Response

# September 20, 2012 11:39 AM

Enabling Kerberos for Microsoft Dynamics CRM 2011 « OMG-Gurubootcamp!! Microsoft zei:

PingBack vanaf  Enabling Kerberos for Microsoft Dynamics CRM 2011 « OMG-Gurubootcamp!! Microsoft

# November 8, 2012 3:47 PM

Enabling Kerberos for Microsoft Dynamics CRM 2011 | OMG-Gurubootcamp!! Microsoft zei:

PingBack vanaf  Enabling Kerberos for Microsoft Dynamics CRM 2011 | OMG-Gurubootcamp!! Microsoft

# November 8, 2012 5:35 PM
Wat denkt u?

(Verplicht) 

(Verplicht) 

(Optioneel)

(Verplicht) 
CaptchaCube Vraag:


Antwoord: