2017-10-16 1 views
0

Linux 및 Windows 서버와 함께 일부 환경이 있습니다. 인증은 Kerberos에 의해 처리됩니다. 나는 프로그램을 실행하는 로그인 한 사용자에 의해 수행되는 HTTP 요청을 자동으로 인증하는 몇 가지 JAVA 코드를 만들고 싶다. 이 코드가있는 경우 예를 들어Linux에서 Java runing에서 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 티켓입니다 (아마도); 웹 서버는 또한 인증을 위해 AD를 사용합니다 (SPNego 프로토콜이 사용되는 것 같습니다). 하지만 Linux 자격 증명은 무엇입니까? Didi를 사용하여 로컬 Linux 계정 또는 Windows에서 사용하는 것과 동일한 AD 계정 (SSSD 또는 Centrify에서 바인딩을 수행하는 경우)에 로그인 할 수 있습니까? –

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 당신 말이 맞아요, 우리가 창문에 로그인 할 때, 우리는 kerberos 티켓을 얻습니다. 그렇습니다. 웹 서버는 AD 서버를 인증에 사용하고 있습니다. 인증은 SPNego 프로토콜을 사용하여 수행됩니다. 우리는 리눅스에 대해 동일한 계정을 사용합니다. 어떤 도구가 광고에 바인딩하는 데 사용되는지 모르겠습니다. 내가 확인한 후 리눅스 호스트에 로그인하면 _klist_가 나에게 티켓을 돌려 준다. –

+0

Kerberos 티켓 캐시에 유효한 TGT가있는 경우 적절한 HTTP 클라이언트 (즉 SPNego를 지원하는)가 연결할 수 있어야합니다. '--negotiate -u :'와 함께'curl' 명령 행 유틸리티 포함하기 –

답변