Kerberos의 인식/실제 장점은 무엇입니까? 기술에 대한 실용적인 대안이 있습니까?

StackOverflow https://stackoverflow.com/questions/894301

문제

우리는 아키텍처에서 Kerberos를 활용할 계획입니다. 이 기술의 인식 또는 실제 장점과 대안이 있는지 알고 싶습니다.

.NET 클라이언트 측 및 Java 서버 측이 있습니다. 커뮤니케이션은 메시징 버스와 SOA를 통해 이루어집니다

올바른 솔루션이 없습니다

다른 팁

주로 Windows 환경 (즉 인격화 분할 웹 서버 및 데이터베이스 서버를 사용하여 .NET을 통해 이전 NTLM 방법을 사용하면 "더블 홉"을 수행 할 수 없습니다.


예를 살펴 보겠습니다.

  • 웹 서버가 있습니다 (Web1)
  • 별도의 시스템 (DB1)에 데이터베이스 서버가 있습니다.
  • 사용자가 웹 사이트에 액세스 할 수 있습니다 (user1)

user1은 주문 목록을 표시하는 페이지를칩니다. Web1 서버는이 정보가 페이지에 표시하려면 DB1을 쿼리해야합니다. 사용자의 자격 증명 및 액세스 권한에 따라 주문을 제한하려고합니다. 따라서 Active Directory 그룹을 설정하고 그에 따라 사용자를 할당합니다. 데이터베이스에서 다른 그룹에 다른 보안을 제공합니다 (Group1은 선택 만 할 수 있고 Group2는 선택, 삽입 및 업데이트를 얻을 수 있습니다).

NTLM은이를 수행하는 데 필요한 더블 홉을 지원하지 않습니다. Web1은 user1의 자격 증명을 DB1로 보내야합니다 (그렇지 않으면 Web1은 알려진 전용 사용자 ID와 암호를 Web.config에 하드 코딩하여 DB1에 로그인해야합니다. Web1이 손상 될 경우 보안 위험이 될 수 있으므로 그렇게 할 수 없으므로 할 수 없습니다. 그렇지 않으면 Web1 (SQL 주입을 통해)을 통제 할 수있는 사람은 전용 사용자 계정이 원하는 모든 것을 수행 할 수있는 모든 것을 수행 할 수 있습니다. Kerberos는 Windows Server의 대표단을 통해 도메인 서버에서 암호화 된 자격 증명 키를 그대로 유지하고 전달 하여이 두 번째 홉을 지원하고이를 허용하는지 확인합니다 (양쪽 끝에서는 서버에서이를 설정하려면 아래 참조하십시오. 명시 적으로 허용되어야하기 때문입니다).

데이터베이스 백엔드가있는 인트라넷 웹 앱을 개발할 때이를 수행하는 것이 매우 유용하며 (케이스의 99%입니다.) Windows 통합 보안을 통해 인증 및 인증을 제어하려고합니다. 웹 서버와 데이터베이스 서버가 동일한 컴퓨터에 있지 않는 한 Kerberos는 실제로 유일한 선택입니다. 즉, 자격 증명 전송이없고 가장 필요하지 않습니다.

또한보십시오:

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top