web-dev-qa-db-ja.com

オンラインでのOffice365 / Sharepointへの承認

Azureで(PaaS)としてホストされるWCFサービスを作成しています。次に、サービスはSharepoint 2013 Online/Office365と通信する必要があります。

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

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

WCFサービスにSharePointとの通信を許可する方法について、誰かが私を正しい方向に向けることができますか。

これが間違ったフォーラムにある場合は申し訳ありません。私は両方のテクノロジにかなり慣れていないため、これがAzureの問題なのか、SharePointだけの問題なのか正確にはわかりません。

45

次のブログ記事を試してください。 Officeにアクセスする機能365 APIは先月発表されたばかりで、Webサービスからこれを呼び出す機能はかなり新しいものです。 この記事 はこのテーマに関する優れたチュートリアルです。

1
RimskyDon

Office 365 SharePointサイトのアプリを開発する場合と同じように、Office 365 SharePointサイトを使用して、ACSを使用してプロバイダーがホストするアプリとオンプレミスのSharePoint2013ファーム間の信頼を確立できる環境を作成します。詳細については、次のリンクにアクセスしてください。 http://msdn.Microsoft.com/en-us/library/office/dn155905(v = office.15).aspx

0
user3132148

こんにちは。数日前にOffice365の再販業者として登録した場合に備えて、私は1つの苦痛な教訓を学ばなければなりませんでした。それは認証です。 SharePointから取得したトークンは2時間のみ有効です!多分それは知っているSharepoint15で変わるでしょう...

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

0
Teyhouse

SharePointオブジェクトモデルで同様のことをしようとしているときに403を取得していました。それを修正するために私がしなければならなかったのは、ユーザーエージェントを含めることだけでした。

ここで回答 WebRequestを使用してCookieを取得し、Sharepoint Onlineに自動的にログインし、さまざまなエラーを取得します

それがいくつかの助けになることを願っています。

0
Dan

これは古い投稿ですが、アプリプリンシパルを使用せずにアプリからSharePoint Onlineを使用すると、使用許諾契約に違反する可能性があります。アプリモデルを適切に使用するには、true OAuthおよびSDKの一部であるTokenHelperクラスを使用する必要があります。

0
Brian P

Wictorのサンプルコードを取得して、login.srf URLをADFSログインエンドポイントに置き換えてみましたか?

これを試すときはフィドラーを開いたままにして、毎回リクエスト/レスポンスを調べてください。C#がオブジェクトモデルに隠しているレスポンスボディ内で物事が機能していない理由について、より詳細にわかるでしょう。

SOAPエンベロープ:

http://leandrob.com/2012/02/request-a-token-from-adfs-using-ws-trust-from-ios-objective-c-iphone-ipad-Android-Java-node- js-or-any-platform-or-language /

0
James Love