none
Set SPN CRM Dynamics

    Frage

  • Hallo,

    es herscht folgendes Szenario:

    Auf dem "Server1" läuft CRM-Dynamics. Dabei läuft Dynamics unter einem AppPool der unter einem Account läuft (Acc1) außerdem sind folgende Einstellungen für die Webseite eingestellt: WindowsAuthentication=true Impersionating=true; (Kerboros=true:'Negotiate,NTLM')

    Auf dem "Server2" läuft eine Webseit (CustomerPages) die auf CRM Dynamics auf "Server1" zugreift. Der AppPool der Webseite läuft unter einem Account (Acc2). Die Einstellungen sind wie bei  "CRM Dynamics" vom "Server1".

    Außerdem haben ich eine SPN für "Server2" und "Acc2" angelegt.

    Leider kommt beim Aufruf der "CustomerPages"  folgender Fehler:

    "The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Negotiate,NTLM'.]"

    Ich vermute es liegt am SPN aber genau weiss ich es nicht.

    Ich hoffe ihr könnt mir helfen. Danke.




    • Bearbeitet Cypr3sX Donnerstag, 22. August 2013 02:09
    Donnerstag, 22. August 2013 01:11

Alle Antworten

  • Hallo,

    schau dir mal folgende Informationen an:

    http://msdn.microsoft.com/en-us/library/gg328497.aspx

    Schöne Grüße,

    Nils Frohloff

    http://www.strategic-it.de

    Donnerstag, 22. August 2013 05:47
  • Hallo Cypr3sX,

    geht es hier um eine onpremise Installation? Wie sehen denn die SPN aus die du gesetzt hast. Sind die SPN eventuell doppelt vergeben (setspn -X).

    hast Du mal mit klist geprüft welche Tickets ausgestellt wurden?

    Grüße

    Thomas

    Donnerstag, 22. August 2013 11:21
  • Hallo Thomas,

    ja es handelt sich um eine onpremise Installation.

    Die SPNs für den Acc2 sehen wie folgt aus:

    HTTP\FullQualifiedName-Server2

    HTTP\NetBiosName-Server2

    Die SPNs sind nicht doppelt vergeben.

    KList kenn ich garnicht wie kann ich es nutzen?

    Muss ich eventuell noch SPNs für den Acc1 und Server1 anlegen, da die Webseite vom CRM im AppPool des Acc1-Users läuft?

    Grüße

    Viktor


    • Bearbeitet Cypr3sX Freitag, 23. August 2013 07:45
    Freitag, 23. August 2013 07:44
  • Hallo Victor,

    wir haben es hier also klassisch mit der Kerberos Doppelhop Authentifizierung zu tun.

    Hier ein Artikel dazu. Im Schaubild ist Web1 dein Server2 und SQL1 dein Server1

    http://blogs.technet.com/b/askds/archive/2008/06/13/understanding-kerberos-double-hop.aspx

    die meisten Artikel zeigen immer das Computerkonto weil die meisten dienste als Netzwerkdienst oder Localsystem laufen. wer Dienstkonten verwendet muss also auf das jeweilige Dienstkonto schauen. Hast du Trust for Delegation am Konto Acc2 aktiviert?

    Also das Konto Acc2 muss die Erlaubnis haben mit dem Ticket des Users eine Anmeldung am Server1 zu machen.

    Grüße

    Thomas

    Freitag, 23. August 2013 07:57
  • Hallo Thomas,

    ich glaube schon das Trust for Delegation an ist. Wenn ich den User im AD öffne und auf den Reiter Delegation gehe sehe ich ein Häckchen bei: Trust this user for delegation to any service(Kerberos only).

    Aber es ist alles ausgegraut.

    Danke schonmal für deine Hilfe.

    Grüß

    Viktor


    • Bearbeitet Cypr3sX Freitag, 23. August 2013 12:44
    Freitag, 23. August 2013 09:44
  • Hallo Victor,

    OK trust for Delegation steht auf Kerberos only. Das ist OK. Nun kann es also nur noch so sein, das Kerberos nicht verwendet wird. Z.B weil die SPN nicht passen oder etwas anderes die Verwendung von Kerberos verhindert.

    Zuerst solltest Du prüfen ob Kerberos verwendet. Event Log Sicherheit EventID 4624 da sollte

    Authentifizierungspaket: Kerberos


    drin stehen. Ist das so?

    Grüße Thomas

    Sonntag, 25. August 2013 17:51
  • Hallo Thomas,

    sorry das ich lange nicht mehr geantwortet habe.

    Also was mir aufgefallen ist wenn ich auf dem Server 2 bin bei dem die externen ASPX-Seiten installiert habe die auf das CRM auf dem Server1 zugreifen da funktioniert der Aufruf und es werden die richtigen Credentials übergeben.

    Versuche ich die externen Webseiten von einem andren System anzusprechen versucht er sich mit dem Application User unter dem die externen ASPX-Seiten laufen bei dem CRM anzumelden und nicht mit den Credentials die ich übergebe. Deswegen kommt es dann zu einem Fehler. Hättest du eine Idee woran das liegen kann?

    Achja das Authentifizierungspaket ist Kerberos so wie es seien sollte aber halt einmal für den user mit dem ich mich angemeldet habe und für den apppool-User unter dem die externen ASPX-Seiten laufen.

    Also für mich scheint es das er die Falschen Credentials nimmt.

    hier der Code den ich für die Authentifiziefung verwende. Vieleicht ist ja hier der Fehler.

                ClientCredentials Credentials = new ClientCredentials();
                Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;

                Uri OrganizationUri = new Uri(serviceuri);
                Uri HomeRealmUri = null;

                OrganizationServiceProxy proxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null);
                proxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
                return proxy;

    Beste Grüße

    Viktor


    • Bearbeitet Cypr3sX Montag, 7. Oktober 2013 11:20
    Montag, 7. Oktober 2013 10:40
  • Hallo Viktor,

    dein Code sieht vollkommen in Ordnung aus.

    Die Fehlermeldung:

    "The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Negotiate,NTLM'.]"

    ist auch eindeutig. Du kommst mit NTLM Authentifiyierung am CRM Server an, nicht mit Kerberos.

    Das liegt in 99,99% der Fälle an fehlenden und/oder falschen SPNs, ich würde in diesem Bereich suchen.


    Viele Grüße

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


    Montag, 7. Oktober 2013 12:12
    Moderator
  • Hallo Thomas,

    ich komm irgedwie nicht weiter. Eigentlich sind doch die SPNs richtig gesetzt aber trozdem klappt es nicht.

    Wenn ich bei den externen Webseiten(Server2) anonyme Authentifizierung aus mache. Klappt er der Login überhaupt nicht. Nach dreimaligen eingebend er Credentials kommt der Fehler You are not autorised.

    Gruß

    Viktor

    Montag, 7. Oktober 2013 14:18
  • Hallo Viktor,

    dann überprüfe doch einmal mit einem Web-Debugger, wie z.B. Fiddler, welche Daten zwischen deiner Website und dem CRM ausgetauscht werden und vor allem, welche Authentifizierung verwendet wird.

    Ich vermute auch, das im Event Log des CRM Servers Fehlermeldungen mit der Anmeldung stehen werden.

    Du schreibst, du hast eine SPN beim Server und beim Domänenbenutzer gesetzt, der den CRMAppPool ausführt. Bei wem sind welche SPNs gesetzt?


    Viele Grüße

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

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

    könnten wir hierzu vieleicht Telefonieren?

    Es ist schwer alles per schreiben zu erklären.


    • Bearbeitet Cypr3sX Mittwoch, 9. Oktober 2013 12:02
    Mittwoch, 9. Oktober 2013 11:23
  • Hallo Michael,

    die SPNs wurden für den AppPoolUser vom Server 2 angelegt. Unter diesem AppPool laufen die Exterenen ASPX-Seiten. Es wurden zwei SPNs angelegt einmal für den FullQualifiedName und einmal für den Computername des Servers2.

    Beim Server2 ist Anonymous Authentication aus und Impersination an.



    • Bearbeitet Cypr3sX Mittwoch, 9. Oktober 2013 12:02
    Mittwoch, 9. Oktober 2013 11:55
  • Hallo Michael,

    es wurde noch eine dritte SPN angelegt unter der der Server2 erreichbar ist. Auch hier wieder zu den AppPool User unter dem die externen Webseiten laufen.

    Beste Grüße

    Viktor

    Mittwoch, 9. Oktober 2013 12:26
  • Hallo Viktor,

    also wenn du meine Fragen nicht beantwortest, kann ich dir auch nicht helfen. Ich muss schon im Detail wissen, wie das CRM aufgerufen und welche SPN genau wo wie gesetzt sind. Ohne diese Aufstellung können wir das hier auch beenden.


    Viele Grüße

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

    Mittwoch, 9. Oktober 2013 12:31
    Moderator