none
Weiterleitung der Authentifizierungsdaten schlägt fehl

    Frage

  • Hallo,

    wir haben ein MS CRM 2011 System mit einem eigenen Server der eine Webseite namens MyApp zur Verfügung stellt über IIS 7.5. Diese Seite hat auch einen eigenen Application Pool namens MyAppPool, dessen "Managed Pipeline Mode" auf classic steht und der mit der Identity eines Domänenkontos läuft. Die .NET Framework Version ist 4.0.

    Wenn nun ein Benutzer über den IE eine bestimmte Seite auf dem Webserver aufruft, leitet diese Seite auf den CRM-Server weiter. Aber statt dass die Kennung des Benutzers mit der sich dieser auf seinem Clientrechner eingeloggt hat an den CRM-Server weitergegeben wird, wird die Kennung der Identity vom Application Pool "MyAppPool" an den CRM-Server weitergegeben. Dieser ist dort nicht freigeschaltet und dann kommt stets die Meldung

    Server Error in '/' Application.
    The request for security token could not be satisfied because authentication failed.

    Wie erreiche ich, dass die Authentifizierungsdaten des auf seinem Clientrechners angemeldeten Benutzers vom Webserver erkannt und weitergegeben werden?

    Die Einstellungen dieser Webseite namens MyAppWeb in Authentication ist folgendermaßen:

    Windows Authentication:

    Status = enabled.
    Providers = Negotiatek, NTLM
    Advanced Settings = Häkchen für Enable Kernel-mode authentication ist leer.

    ASP.NET Impersonation
    Status = Enabled
    Identity to impersonate = Authenticated User

    Anonymous Authentication = Disabled

    Forms Authentication = Disabled

    Warum funktioniert die Authentifizierung am CRM-Server nicht?

    Ich habe mal was von einem Double hop-Problem gehört, weiß aber nicht, ob das hier zuschlägt.

    Weiß jemand Rat?

    Danke im Voraus


    Andreas

    Dienstag, 15. Oktober 2013 15:56

Alle Antworten

  • Hallo Andreas,

    du musst dafür sorgen, das die erste Webseite das erstellte Kerberos-Ticket an den CRM Server weiterleitet. Dazu benötigst du eine entsprechende SPN vom Webserver zum CRM Server, siehe dazu auch:

    http://blogs.msdn.com/b/crm/archive/2009/08/06/configuring-service-principal-names.aspx

    http://crmbusiness.wordpress.com/2012/10/24/crm-2011-spns-can-be-hell/

    http://dynamics-crm2011.blogspot.de/2011/10/kerberos-and-delegation-tips.html


    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM
    Blog
    Website XING LinkedIn Facebook Twitter

    Mittwoch, 16. Oktober 2013 06:19
    Moderator
  • Hallo Michael,

    danke für den Tip, war ein entscheidender Anstoss in die richtige Richtung (und es ging schon um das double-hop-Problem, wie ich geahnt hatte, nur das mir das bisher nicht untergekommen ist).

    Was ist denn jetzt, wenn mehrere Webseiten auf dem Webserver existierten, was durchaus nichts ungewöhnliches wäre und es verschiedene ApplicationPools für einige der Webseiten gäbe, die mit unterschiedlichen Domänenkonten laufen sollten?

    Z.b. MyApp1 hat MyApp1Pool und soll mit dem Benutzer domain\userx1 betrieben werden und

    YourApp2 hat den Application Pool YourApp2Pool und soll mit dem Benutzer domain\userx2 betrieben werden.

    Dann müsste http/Servername mit setspn gleichzeitig für domain/userx1 und domain/userx2 registriert werden, was ja nicht geht:

    setspn -s http/servername domain\userx1
    setspn -s http/servername domain\userx2

    Das hieße man muss für jeden AppPool, der unter der Kennung eines eigenen Benutzers laufen soll, einen eigenen IIS-Server hinstellen?
    Was aufwendig und irgendwie undurchdacht – oder übersehe ich hier etwas?

    Ich weiß, dass ich einzelne Dienste auf dem Server für SPNs spezifizieren kann, aber eben keine ApplicationPool-Namen, da hier der SPN standardmäßig auf das Protokoll http/servername gesetzt werden muss.

    Danke für einen Kommentar oder Hinweis.

    Schöne Grüße 


    Andreas



    • Bearbeitet AndiMzD Mittwoch, 16. Oktober 2013 09:47
    Mittwoch, 16. Oktober 2013 09:02
  • Hallo Andreas,

    nein, doppelte SPN sind nicht möglich.

    Es gibt aber eine Lösung ohne für jede Anwendung einen eigenen IIS einzusetzen, siehe

    http://blogs.msdn.com/b/crm/archive/2009/08/06/configuring-service-principal-names.aspx

    Für euch dürfte das Scenario 3 genau richtig sein.


    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM
    Blog
    Website XING LinkedIn Facebook Twitter

    Mittwoch, 16. Oktober 2013 09:11
    Moderator
  • Hi,

    noch mal: herzlichen Dank, you did it again.

    Sehe gerade, dass du der Moderator bist, macht Sinn.

    So langsam kann ich mich aufschlauen.

    Schöne Grüße

    Andreas


    Andreas

    Mittwoch, 16. Oktober 2013 09:54
  • Hallo Andreas,

    wenn deine Frage zufriedenstellend beantwortet wurde, wäre es sehr nett von dir, wenn du den oder die Beiträge mit der richtigen Lösung als Antwort markieren würdest.

    So sehen andere Besucher dieser Community schon in der Themenübersicht und/oder den Suchergebnissen, ob es für dieses Thema eine Lösung gibt.



    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM
    Blog
    Website XING LinkedIn Facebook Twitter

    Mittwoch, 16. Oktober 2013 11:10
    Moderator