ruby で SharePoint Web サービスを利用しようとしています。基本的に NTLM での認証をあきらめ、Sharepoint サーバーを一時的に基本認証を使用するように変更しました。soap4r を使用して WSDL を取得することに成功しましたが、実際の Web サービス呼び出しを使用しようとすると認証できません。
ruby と Sharepoint をやり取りさせた経験のある人はいますか?
ruby で SharePoint Web サービスを利用しようとしています。基本的に NTLM での認証をあきらめ、Sharepoint サーバーを一時的に基本認証を使用するように変更しました。soap4r を使用して WSDL を取得することに成功しましたが、実際の Web サービス呼び出しを使用しようとすると認証できません。
ruby と Sharepoint をやり取りさせた経験のある人はいますか?
私はまったくの初心者です。しかし、多くの経験を積み、経験豊富なコーダーの助けを借りて、Sharepoint 2010 で ruby を動作させることができました。以下のコードには、「ntlm/mechanize」gem が必要です。
リスト GUID とリスト ビュー GUID を使用して、指定されたリスト (以下) から sharepoint xml をダウンロードできました。
編集 (2011 年 5 月 23 日)。このコードには ruby-ntlm gem が必要であることを指摘しておくべきでした。ここに役立つ適切なリンクがあります。これは間違いなく機能します。
http://rubydoc.info/gems/ruby-ntlm/0.0.1/file/README.markdown
agent = Mechanize.new
agent.auth('domain\\USERNAME', 'PASSWORD')
page = agent.get('http://URL/DIRECTORY/SITE/LIST/_vti_bin/owssvr.dll?Cmd=Display&List={LIST_GUID}&View={VIEW_GUID}&XMLDATA=TRUE')
httpclient は NTLM をサポートしていますが、soap4r はどういうわけか NTLM をサポートしていません。
基本認証を有効にするオプションがない場合は、kerberos、つまりネゴシエート認証方法の使用を検討できます。sharepoint でこれを有効にするのは少しトリッキーですが、基本的にはサーバーのコマンドラインで次のことを行うことになります。
cscript adsutil.vbs set w3svc/1/NTAuthenticationProviders "Negotiate,NTLM"
詳細については、このフォーラムの投稿を確認してください。最後に、basic_auth= の代わりに auth= を使用して、soap4r で認証を設定する必要があります。
Basic 認証を使用するように SP サーバーをどのように変更しましたか? IIS 経由でサイトを構成しただけですか、それとも SP Central Admin 経由で構成しましたか?
SP 2007/MOSS を使用している場合は、Central Admin で変更する必要があります。2003 の場合は、IIS 経由で行う必要があります。
リクエストが失敗すると、どのようなエラーが発生しますか?
これは役に立たないかもしれませんが、micorosoft は Sharepoint と WSRP 用のツールキットをリリースするだけです。 RoR はその標準をサポートしており、データを取得するためのより簡単な方法を提供できます。