2017-02-15 3 views
2

JavaからRESTサービスにアクセスしたいです。このサービスはWindows上で実行され、おそらく「デフォルト」の認証メカニズムを使用します。私はそれがNTLMへのフォールバックでケルベロスであると言われました。私は、明示的にクレデンシャルを明示的に指定することなく(明らかに私のWindowsアカウントが使用されています)、Firefox(HttpRequesterでも動作します)を使用して、プレーンなHTTPS GETリクエストでサービスにアクセスできます。JavaからWindowsクライアント認証が必要なRESTサービスに接続する方法は?

Javaからサービスにアクセスするにはどうすればよいですか?でも、JDK(オラクルのJVM実装は)これを提供していますのjava.net.URLを使用して読み取るための素朴な試みが400

+0

org.apache.httpcomponents:HTTPClientを-WIN:4.5.3有望に見えます。 – Gustave

+0

httpclient-winは動作しますが、私はなぜ、どのようにまだ見つけられませんでした。 – Gustave

+0

こんにちは。あなたの質問に答えた場合は、それをコミュニティの他の人にも確認できるようにマークしてください。そうでない場合は、私たちに知らせてください。 –

答えて

0

を見ていることがありますが、これは高レベルを提供しますソリューションのステップ。 WindowsでKerberosを活用するには、Active Directoryが必要です。次に、JavaからRESTサービスにアクセスするためにKerberosにJava Spring Securityを使用します。以下はより具体的な手順です。

  1. Kerberosライブラリ用のJava春のセキュリティは、これはHTTPクライアントにKerberos設定を注入するクラスを提供し、あなたのための重い物を持ち上げるを行います。org.springframework.security.kerberos.client.KerberosRestTemplate

  2. あなたは、クライアントの中にいくつかのKerberosのプロパティを定義します構成.propertiesファイル。ここでのKerberosに関して、ファイルからの最も重要な抜粋です:

KERBEROS.FLAG=Y 
KERBEROS.DEBUG=true 
SERVICE_ACCOUNT_PRINCIPAL = HTTP/[email protected] 
KEYTAB_LOCATION = file:///C:/path/to/filename.keytab 
KDC = server.fqdn.name 
KDC_DOMAIN = YOUR.REALM 
KRB5 = file:///C:/path/to/krb5.conf 

EDIT:

のKerberosキータブは、Windows ADドメインに参加しているマシン上のJavaクライアントでは必要ありません。 Javaプログラムを実行しているユーザーの資格情報を使用する場合は、キータブを使用しません(キータブ自体には資格情報が1つしかないため)。

Refer to the official Spring Security Website

+0

こんにちは@Gustave;私はこの質問に重要な編集を加えました。あなたの質問に答えた場合は、それを他の人に役立つようにマークしてください。そうでなければ –

+0

こんにちはT-ヘロン、ごめんなさい、私はあなたの答えを理解していないことを知らせてください。 「レバレッジ」とはどういう意味ですか?すべての環境はすでに設定されており、私はそれにほとんど影響しません。 httpclient-winは目に見える重労働がなくても仕事をしますが、何かが動作するときはいつものように、それがなぜそうであるかを知ることは優先順位が低くなります。 – Gustave

関連する問題