8

SharePoint Online へのリモート認証を使用して、対象の O365 共有ポイント サイトにアクセスし、FedAuth および rtFA Cookie を取得しました。これは、xxx.sharepoint.com ドメインを持つターゲット URL に対して正常に機能します。このドメインが example.com にカスタマイズされている場合、認証メカニズムは「ログイン要求で使用されるパートナー DNS が見つかりません」というエラーをスローして失敗します。ドメインが .sharepoint.com を反映しないようにカスタマイズされている sharepoint オンライン サイトに対して認証する方法はありますか。?

4

1 に答える 1

10

私が理解しているように、SharePointのカスタムドメインはもはやクレームを認識していません。したがって、本当にCookieを取得したい場合、ソリューションはあまり理想的ではありませんが、ハッキーなものがいくつかあります。Microsoftからの制限の数を考えると、この問題に対する直接的な解決策はありませんが、画面のスクレイピングです。私は成功し、画面スクレイピングを介してfedAuthcookieを取得できました。私は知っています、それは非常に簡単ではありませんが、それは非常に可能です。SharePointポータルに対して約6つのWeb要求を行う必要があります。

  • 1つ目は、カスタムドメインへのWebリクエストです。

  • 次に、応答ヘッダーから「X-Forms_Based_Auth_Required」の値を取得し、それに要求します。

  • 3番目に、応答ヘッダーからSetCookie(rpsコンテキストCookie)とLocationの値をフェッチし、Locationにリクエストを送信します。

    • 4番目に、SetCookie、 "srf_uPost"、 "PPFT"の値を取得し、応答のResponseUriに要求します。リクエストヘッダーにCookieとppftの値を設定し、「srf_uPost」の値にリクエストを送信します。また、リクエストストリームに「login = "+ username +"&passwd ="+password」を含めます。

    • 5番目に、htmlから「action」要素と「T」要素の値を取得します。そして、アクション要素の値から取得したURLをリクエストします。要素Tをpoststringとして含めます。

    • 6番目に、5番目の手順を繰り返すと、今回はそれに応じてfedAuthcookieが取得されます。

あなたは簡単に通り抜けることができるはずです、しかしあなたが望むならあなたは私のブログですべてのコードを見つけることができます

于 2013-02-06T20:53:11.187 に答える