2009-02-26 18 views

答えて

0

ケルベロスの設定について、私は、彼らの間にCurb:Spence Harbar、Bob Fox、Tom Wisnowskiについて知っておくべきことをすべて知っている3人を知っています。

また、Curbを設定してセットアップスクリプトをエクスポートするために、SpenceはKerberosウィザードを使用して作成しています。

ここで彼のブログをチェックアウト: http://www.harbar.net/

トムWiznowskiは、ホワイトペーパーを送ってくれています。 http://my/sites/tomwis/Shared%20Documents/Configuring%20Kerberos%20for%20SharePoint.docx

ジョエルオルソンはここで良い記事を得た: http://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=2

しかし、上記と言われたときに、SharePointのは、唯一の企業はすでにこれを使用するときのために縁石を推奨しています。 SharePointのために企業ネットワークにKerberosをインストールしないでください。 Kerberosは設定が複雑であり、一般的にNTLMよりも高速であると考えられていますが、これはサイトで同時に多人数のユーザーがいる場合にのみ当てはまります。トラフィック量の少ないサイトでは、Kerberosがネットワークを介して送信する巨大なトークンが実際にNTLMよりも遅くなります。

確かに、Kerberos(rssフィード、Excelサービスのキューブ、ダブルホップによるカスタムコードのWebサービス呼び出しの認証)で機能するいくつかの機能がありますが、NTLMが非常に優れた機能を果たすと私は信じていますあなたのMOSSを実行する仕事。

上記の場合、Javaアプリケーションからどのような統合を達成しようとしていますか教えてください。

SharePointのWebサービスレイヤを呼び出すだけですか?

HTH アンダースラスク

+1

SharePointのWebサービスを呼び出そうとしていたらどうなりますか?何が違うでしょうか? Webサービスを実行するNTLMの問題が発生し、Kerberosを使用すべきかどうかを知りたいので、私は不思議です。 – jmend

+0

NTLMを使用する場合、任意のネットワークサーバー上のリソースにアクセスすることはできません。これはしばしば「ダブルホップ」問題と呼ばれます。 Googleの詳細については。一方、Kerberosはネットワークを介して認証することができます –

+0

ありがとう、この質問を見ていただけますか? http://stackoverflow.com/questions/8884152/ntlm-fails-when-consuming-sharepoint-web-service-from-java私はそれがダブルホップの問題かもしれないのではないかとは思いますが、私は確信していません。 – jmend

7

は、だからあなたは答えビットのために検索を広げる手助けするために、ここで使用されるKerberos認証についてのSharePoint固有のものは何もありません。実際には、SharePointは実際には独自の認証メカニズムを持っていません(少なくともここではWSS 3/MOSSについて話していると仮定しています)。基本的なASP.NET/IIS認証機能のみに依存します。

Sooo、あなたがJavaを使っていれば、現代的なJDKを使っているなら、おそらく簡単な時間があるでしょう。 docs on HTTP authentication mechanismsを参照してください。いくつかの素敵なコードスニペットがあります。そのうちの1つはここで参考にして再現します。本当に、リンクを確認してください。ここで

import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.Authenticator; 
import java.net.PasswordAuthentication; 
import java.net.URL; 

public class RunHttpSpnego { 

    static final String kuser = "username"; // your account name 
    static final String kpass = "password"; // your password for the account 

    static class MyAuthenticator extends Authenticator { 
     public PasswordAuthentication getPasswordAuthentication() { 
      // I haven't checked getRequestingScheme() here, since for NTLM 
      // and Negotiate, the usrname and password are all the same. 
      System.err.println("Feeding username and password for " + getRequestingScheme()); 
      return (new PasswordAuthentication(kuser, kpass.toCharArray())); 
     } 
    } 

    public static void main(String[] args) throws Exception { 
     Authenticator.setDefault(new MyAuthenticator()); 
     URL url = new URL(args[0]); 
     InputStream ins = url.openConnection().getInputStream(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(ins)); 
     String str; 
     while((str = reader.readLine()) != null) 
      System.out.println(str); 
    } 
} 
+0

ありがとう、この答えは私には役に立ちました。 – Israelm

5

は、オープンソースSPNEGOHTTP Servlet Filter libraryexample from the Java documentationです。

ライブラリには、Windows認証がオンになっているWebサーバーに接続できるクライアントがあります。

このプロジェクトでは、Kerberos/SPNEGO認証用に環境を設定する方法の例もあります。

public static void main(final String[] args) throws Exception { 
    System.setProperty("java.security.krb5.conf", "krb5.conf"); 
    System.setProperty("sun.security.krb5.debug", "true"); 
    System.setProperty("java.security.auth.login.config", "login.conf"); 

    SpnegoHttpURLConnection spnego = null; 

    try { 
     spnego = new SpnegoHttpURLConnection("spnego-client", "dfelix", "[email protected]"); 
     spnego.connect(new URL("http://medusa:8080/index.jsp")); 

     System.out.println(spnego.getResponseCode()); 

    } finally { 
     if (null != spnego) { 
      spnego.disconnect(); 
     } 
    } 
} 
関連する問題