[C#] Office 365 / Sharepointオンラインへの認証


Answers

こんにちはちょうど私たちが数日前にOffice365再販業者として登録した場合、私は1つの痛みの程度を学ばなければなりませんでした。 あなたがsharepointから得たトークンは2時間有効です! 多分それは知っているSharepoint 15で変わるでしょう...

既知の回避策がないので、これは貴重なヒントになると思いました...

Question

私はAzureで(PaaS)としてホストされているWCFサービスを書いています。 サービスは、次にSharepoint 2013 Online / Office 365と話す必要があります。

Sharepoint Clientオブジェクトモデルを使用して話をしていましたが、次のエラーが発生します。「リモートサーバーからエラーが返されました:(403)Forbidden」ブラウザからSharePointインスタンスにアクセスするためにログインすると、 https://login.microsoftonline.com/login.srfログインすると、ライブIDを使用してログインできます。 問題は、連合アカウントを使用していてLive IDではないため、ログインするためにadfsサイトにリダイレクトすることです。 私は、クレームベースの認証を使用しているhttp://www.wictorwilen.se/Post/How-to-do-active-authentication-to-Office-365-and-SharePoint-Online.aspxでコードサンプルを見てきましたこれはSamlトークンを取得しようとすると、常に「認証に失敗しました」というメッセージで失敗します。

私がこれを正しく理解すれば。 これを行う1つの方法は、Samlトークンを取得し、これをSPOに渡します。これは、クライアントオブジェクトモデルで行われた要求に含める必要がある2つのCookieを返します。 問題は、C#でFederatedアカウントを使用して認証する方法について適切な例が見つからないことです。

私のWCFサービスのSharePointへの認証をどのように進めるかについて、誰かが正しい方向で私を指揮することができます。

申し訳ありませんが、これが間違ったフォーラムにある場合。 私はこれがAzureの問題かSharePointのどちらかであるかどうかは分かりません。







私はこれが古い投稿だと知っていますが、App Principalを使用せずにAppを通じてSharePoint Onlineを使用すると、ライセンス契約に違反する可能性があります。 アプリケーションモデルを適切に使用するには、真のOAuthとSDKの一部であるTokenHelperクラスを使用する必要があります。