2017-10-16 13 views
0

私はLinuxとWindowsの両方のサーバーでいくつかの環境を持っています。認証はKerberosによって処理されます。私は、プログラムを実行しているログインユーザが行ったHTTPリクエストを自動的に認証するいくつかのJAVAコードを作りたいと思っています。私はこのコードを持っている場合たとえばLinuxでJavaランニングのJavaからKERBEROSでhttp要求を確認する

は、:

CloseableHttpClient winHttpclient = WinHttpClients.createDefault(); 

HttpGet httpget = new HttpGet("http://mykerberos/endpoint"); 

winHttpclient.execute(httpget).getEntity(); 

私は窓からそれを実行すると、それは箱から出して動作します。私はhttp://mykerberos/endpointと同定され、応答を得る。

今、私はLinuxサーバーから同じことをしたいと思います。 https://docs.oracle.com/javase/8/docs/technotes/guides/security/jgss/lab/part6.html#Proxy_Authenticationのような提案をいくつか見つけましたが、それは自分の資格情報が必要なため、私が探しているものではありません.Windowsから渡す必要はありません。

誰かがこれをどのように達成できるか知っていますか?

ご協力いただきありがとうございます。

+0

あなたのWindows資格情報は、Active Directoryサーバーによって許可されたKerberosチケットです(おそらく)。 Webサーバーも認証用にADを使用しています(それはSPNegoプロトコルが使用されていることです)。しかし、Linuxの資格情報は何ですか?ローカルLinuxアカウント、またはWindowsで使用しているのと同じADアカウント(SSSDやCentrifyなどのバインドを使用)に対してログインしているDidi? –

+0

こんにちは、お返事ありがとうございます。あなたが正しいです、私たちがウィンドウにログインすると、ケルベロスチケットを取得します。そして、Webサーバーは認証のために私たちのADサーバーを使用しています。認証はSPNegoプロトコルを使用して行われます。 Linuxでは同じアカウントを使用します。私はどのツールがADにバインドするために使用されているのかわかりません。私はチェックし、Linuxホストにログインすると、_klist_は私にチケットを返します。 –

+0

Kerberosチケットキャッシュに有効なTGTがある場合、適切なHTTPクライアント(つまりSPNegoをサポートする)が接続できる必要があります。 '--negotiate -u:'で 'curl'コマンドラインユーティリティを含める –

答えて

関連する問題