none
IIS7.5 SharepointServer2010 WebサービスでWindows認証ができない RRS feed

  • 質問

  • IIS7.5上で動作しているSharepointのWebサービスを使っています。

    認証方式がWindows認証(ProviderはNTLM)のときに、Webサービスの認証に失敗してしまいます。

    具体的には401のエラーが返ってきます。

    Windows認証のAdvancedSettingsを変更しても結果はかわりませんでした。

    認証方式でWindows認証を無効にして、Basic認証を有効にすると、Webサービスの認証に成功します。

    何かよい解決策はないでしょうか?

     

    環境は下記です。

    OS:Windows Server 2008 R1 SP1

    Server:Sharepoint Server 2010 (インストール時に認証方式としてNTLMを選択しています。)

    AD: Windows Server 2008 R1 SP1 (Sharepointとは別筺体に構築しています)

    • 移動 星 睦美 2011年11月2日 9:23 SP2010 関連の質問 (移動元:Internet Information Services 7.x – 全般)
    2011年10月28日 13:36

回答

  • 解決しました。

    ADの設定とjavaクライアントの双方の問題でした。

    javaクライアントは、LM認証には対応していましたが、NTLM認証には対応していませんでした。

    一方、ADではドメインポリシーの設定で、LMハッシュを保存しない設定が有効になっていました。

    (以前環境構築したADは2003で、2003ではこの設定は無効になっているのですが、

     今回環境構築したAD2008はデフォルトでこの設定が有効になっていました。)

    AD側で設定を変更し、該当ユーザーのパスワードを再設定することで、うまく認証することができるようになりました。

    2012年2月7日 15:20

すべての返信

  • 単に開発したコードがダメなのだと思いますが。。。

    古いですが、下記の様な方法は如何ですか?
    http://www.infoq.com/jp/articles/swanson-moss-web-services

     


    Blog:http://sharepointissue.com HP:http://www.piecepoint.jp/
    2011年11月8日 13:22
  • 参考情報ありがとうございます。

    せっかくの情報なのですが、こちらではJava環境で開発を行っているためいただいた情報で試すことはできませんでした。

     

    ちなみにClientは2種類試してみました。

    1つはSOAPUIというWebサービスのテストツールです。

    もう1つは自作のJavaプログラムです。(JAX-WSベース)

    どちらもうまくいきませんでした。

     

    後者だけだと開発したコードがダメということも考えられますが、

    前者もだめだったので、Sharepoint側に何か問題があるのでは、と思っています。

    2011年11月8日 13:49
  • JavaのコードでNTLM認証の設定が出来ていないだけだと思いますよ。

    Basic認証が出来ているので、認証に関するコーディングが問題ですよね。

    また、SOAPUIがNTLMに対応した製品であるかは判らないですが、NTLM対応していると言う事なのですよね。

    http://www.java.net/external?url=http://java.sun.com/javase/6/docs/technotes/guides/net/http-auth.html

    http://daipresents.com/2008/httpclient31ntlm/

    http://social.msdn.microsoft.com/Forums/ja-JP/sharepointdevelopja/thread/c1c6e1ab-534d-42f0-98ab-4f65bbedaecb

    ココを見る限りJavaはNTLMに対応していそうなので、試行錯誤してみては如何ですか?

    判らない場合は、JavaでNTLM認証の方法をJava系のフォーラムで質問してみては如何ですか?
    多分、ここでは求める答えは無いと思います。

     


    Blog:http://sharepointissue.com HP:http://www.piecepoint.jp/
    2011年11月8日 14:19
  • 解決しました。

    ADの設定とjavaクライアントの双方の問題でした。

    javaクライアントは、LM認証には対応していましたが、NTLM認証には対応していませんでした。

    一方、ADではドメインポリシーの設定で、LMハッシュを保存しない設定が有効になっていました。

    (以前環境構築したADは2003で、2003ではこの設定は無効になっているのですが、

     今回環境構築したAD2008はデフォルトでこの設定が有効になっていました。)

    AD側で設定を変更し、該当ユーザーのパスワードを再設定することで、うまく認証することができるようになりました。

    2012年2月7日 15:20