Remote-Authentifizierung für SharePoint Online mit benutzerdefinierter Domäne

8

Wir haben Remote-Authentifizierung für SharePoint Online verwendet, um auf eine Ziel-O365-Sharepoint-Site zuzugreifen und die FedAuth- und rtFA-Cookies abzurufen. Dies funktioniert gut für eine Ziel-URL mit einer xxx.sharepoint.com-Domain. Wenn diese Domäne nun an example.com angepasst wurde, schlägt der Authentifizierungsmechanismus fehl, indem der Fehler "Der in der Anmeldeanforderung verwendete Partner-DNS wird nicht gefunden werden" ausgegeben wird. Gibt es eine Möglichkeit, sich gegen eine Sharepoint-Online-Site zu authentifizieren, deren Domain so angepasst wurde, dass sie .sharepoint.com nicht widerspiegelt. ?

    
Tinu 19.11.2012, 10:41
quelle

1 Antwort

10

Wie ich verstehe, bleibt die benutzerdefinierte Domäne für SharePoint nicht länger claims aware. Also, wenn Sie wirklich den Keks bekommen wollen, wird die Lösung nicht sehr ideal sein, aber ein paar hacky Sachen. Angesichts der Anzahl der Einschränkungen von Microsoft gibt es keine direkte Lösung für dieses Problem, aber Screen Scrapping. Es ist mir gelungen und konnte den fedAuth-Cookie per Screen Scrapping bekommen. Ich weiß, es ist nicht sehr einfach, aber es ist sehr viel möglich. Dazu müssen Sie etwa 6 Web-Anfragen an das SharePoint-Portal stellen.

  • Das erste ist eine Webanforderung an die benutzerdefinierte Domäne.

  • Zweitens, holen Sie den Wert von "X-Forms_Based_Auth_Required" aus Antwortheadern und stellen Sie eine Anfrage an ihn.

  • Drittens, hole den Wert von SetCookie (rps-Kontext-Cookie) und Location aus dem Response-Header und stelle eine Anfrage an Location.

    • Viertens, hole den Wert von SetCookie, "srf_uPost", "PPFT" und stelle eine Anfrage an ResponseUri der Antwort. Setzen Sie den Wert von Cookie und ppft im Anfrage-Header und fordern Sie den Wert von "srf_uPost" an. Geben Sie auch "login=" + username + "& amp; passwd=" + password im Anfrage-Stream ein.

    • Fünftens, erhalte den Wert des "action" -Elements und des "T" -Elements aus html. Und machen Sie die Bitte an die URL, die Sie vom Wert des Elements der Aktion bekommen haben. Fügen Sie das Element T als Poststring ein.

    • Sechstens, wiederholen Sie den fünften Schritt, und Sie erhalten als Reaktion diesmal ein Futh-Cookie.

Sie sollten leicht in der Lage sein, durchzukommen, aber wenn Sie wollen, können Sie den ganzen Code in meinem Blog

    
Kunal Kapoor 06.02.2013, 20:53
quelle