약간 복잡한 IDAM 설정이 있습니다 :
즉, 최종 사용자의 컴퓨터와 브라우저는 부모 AD와 하나의 네트워크에 있고 Jetty 기반 응용 프로그램과 대화 할 수있는 AD (로컬 AD)는 다른 네트워크에 있습니다.
두 AD간에 양방향 트러스트가 있습니다. 부모 네트워크의 브라우저에는 신뢰할 수있는 사이트에 로컬 도메인이 있습니다.
Jetty 서버의 설정은 다음과 같습니다.
- 로컬 AD의 보안 주체에 대해 생성 된 키탭 파일을 사용합니다.
- 로컬 AD에 정의 된 사용자에서 Windows 서비스로 실행 중입니다.
- 영역, 도메인 영역 매핑 및 kdc는 로컬 AD의 도메인에 대해 정의됩니다.
- spnego를 사용합니다. isInitiator가 false로 설정되어 있습니다. doNotPrompt가 true입니다. storeKey가 true
문제는:
- 테스트로, (즉, 로컬 AD에 연결) 로컬 네트워크 내부 브라우저에서 서버에 액세스하는 것은 작동 내가 HTTP 트래픽에 올바른 Kerberos를 협상을 볼 수 있습니다, Kerberos를 디버그 정보가 로그에 표시하고, 사용자는 자동으로 로그인됩니다 - . 훌륭한.
그러나 부모 네트워크 내부의 브라우저에서 사용자가 작업하는 방식으로 서버에 액세스하면 작동하지 않습니다! 브라우저는 401의 인증을 취소했지만 자격 증명을 입력하라는 메시지가 표시되면 입력하면 빈 화면이 나타납니다. 그런 다음 주소 표시 줄을 클릭하고 Enter 키를 누르면 자격 증명이 원격인지 로컬 AD인지에 따라 두 가지 중 하나가 수행됩니다.
- 로컬 AD 자격 증명은 로그에 처음부터 Kerberos를 사용하여 올바르게 로그인합니다 (GET 요청, 401 무단 응답, Kerberos 헤더 요청 등).
- 원격 AD 자격 증명에 로그인하지 않는 (GET 요청, 401 UNAUTH 응답은, 무엇은 NTLM 헤더 다음과 같습니다
Authorization: Negotiate <60 or so random chars>
)
어느 쪽이든, 그것은 프롬프트하고 있다는 사실이 잘못되었습니다!
이러한 증상에 대한 설명이 있습니까? 원하는 설정을 할 수 있습니까?
위의 설명이 잘못되었을 수 있습니다. 제티 서버와 관련하여 언급 한 구성은 정확합니다. 자세한 내용을 알려 드리겠습니다. AD 또는 상위 네트워크 브라우저와 관련된 구성은 잠재적으로 의심의 여지가 있습니다. 왜냐하면 내가 제어 할 수 없으며 구성을 직접 보지 않고 나에게보고했기 때문입니다.