스프링 블로그

스프링 보안 커베로스 확장 프로그램의 첫 번째 이정표를 다운로드할 수 있게 되어 기쁩니다. 릴리스는http://maven.springframework.org/milestone에서 메이븐 마일스톤 저장소를 통해 사용할 수 있습니다. 웹 응용 프로그램에 대해 사용자가 인증됩니다. 사용자 이름/암호 및 추가 소프트웨어를 설치할 필요를 입력 할 필요가 없습니다.

커베로스에 더 깊이 들어가기 전에,핵심 스프링 보안 프로젝트를 위한 확장 모듈을 제공하기 위한 새로운 스프링 확장 프로젝트인 스프링 보안 확장을 소개하고자 합니다. 이 패키지에는 디버깅 심볼이 들어 있습니다. 모든 모듈에는 자체 릴리스주기가 있으므로 사람들은 준비가 되 자마자 이러한 확장 기능을 활용할 수 있으며 다음 봄 보안 릴리스를 기다릴 필요가 없습니다. 당신이 어떤 아이디어 또는 추가 확장에 대한 몇 가지 코드가있는 경우,알려주세요!

커베로스/스페 네고

이 모듈의 첫 번째 이정표에서 우리는 웹 응용 프로그램에 대한 아웃-오브-박스 커베로스/스페 네고 솔루션을 제공합니다. 이것은 수학적으로 정확한 유형 계층구조인,강력한 타입을 정의합니다. 이 도구는 감염을 교체하고 또한 컴퓨터가 더 빨리 만들 수 있습니다. 이 외에도*닉스 환경에서 널리 사용되며 모든 주요 플랫폼에 대한 구현이 있습니다. 그래서,당신은 이미 장소에 커 베로스를 가지고 지금 당신은 당신의 자신의 웹 응용 프로그램에서도 사용할 수있는 가능성이 매우 높습니다. 예를 들어,도메인 사용자 이름으로 자동으로 인증됩니다 [email protected].그런 다음 봄 보안을 통해 또는 요청으로이 이름을 찾을 수 있습니다.(). 이 작업을 수행하는 방법? 간단한 개요는 다음과 같습니다:

브라우저는 웹 응용 프로그램(1)에 가져 오기 요청을 보낸 다음”협상”인증이 필요하다는 것을 반환합니다(2). 그러면 브라우저는 케르베로스 서버에 소위 서비스 티켓(3)을 가져오도록 요청할 것입니다. 그런 다음 브라우저는이 서비스 티켓을 보내 발신자의 신원을 증명하고 몇 가지 추가 사항을 웹 응용 프로그램(5)에 보냅니다. 웹 응용 프로그램과 서버 간의 공유 암호를 기반으로 티켓의 유효성을 검사한 후 사용자 이름을 반환합니다.

이 작업을 수행하려면 모든 웹 응용 프로그램을 케르베로스 서버에 등록해야 하며 서비스 프린티얼과 공유 암호가 할당됩니다. 웹 응용 프로그램의 경우 서비스 주체는”/<정규화된 도메인 이름>@도메인”이어야 합니다. 예를 들어”HTTP/[email protected]”,앱이 실행되는 경우 web.springsource.com 그런 다음 이 보안 주체의 자격 증명을 키탭 파일(공유 암호)로 내보내고 응용 프로그램에서 사용할 수 있도록 해야 합니다. 모든 커베로스 기반 시스템은 이런 방식으로 작동하지만,이 서비스 주체와 키탭의 생성은 시스템마다 다릅니다. 하지만 다른 구현에서도 작동해야 합니다.

마이크로 소프트 윈도우 2008 서버와 서비스 주체 만들기

이 마이크로 소프트 윈도우 2008 서버를 참조하지만,그것은 2003 심지어 2000 서버에서 매우 유사해야한다. 도메인 사용자를 만들고 서비스 주체를 할당하고 명령줄 유틸리티를 사용하여 키탭을 만듭니다. 이제 단계적으로:

서비스 주체가 될 일반 사용자를 만듭니다. 사용자 이름과 암호는 케르베로스에게는 의미가 없지만,물론 다음과 같은 유용한 이름을 선택해야 합니다 http-web.springsource.com.그냥”사용자가 다음 로그온시 암호를 변경해야합니다”옵션을 비활성화하고”암호가 만료되지 않음”을 활성화해야합니다.

그 후에는 명령 줄 도구를 사용해야합니다.”엑스”. 그것은 이미 당신이 그것을 직접 설치해야 이전 버전에서,윈도우 2008 서버에 포함되어 있습니다. 서버 버전과 일치하는 버전을 사용하고 있는지 확인하고 로캘도 일치해야 합니다. 이 도구는 이전에 만든 사용자에게 서비스 사용자 이름을 할당하고 사용자 키를 키탭 파일로 내보냅니다. 귀하의 서비스 주체가”HTTP/[email protected]”그리고 당신의 사용자는 http-web.springsource.com 다음 명령을 다음과 같이 표시해야 합니다:


ktpass /out http-web.keytab /mapuser /princ HTTP/ /pass *

비밀번호를 입력하라는 메시지가 표시됩니다. 당신은 그것에 대한 몇 가지 보안 임의의 하나를 선택해야합니다. 당신은 지금 파일이있는 경우.디렉토리에 키 탭,다음 모든 것이 잘 작동. 이 파일은 서비스 티켓의 유효성을 검사하기 위한 공유 암호가 포함되어 있으므로 나중에 응용 프로그램에서 필요합니다.이 예제에서는 다음과 같은 기능을 제공합니다.*********** 그것은 또한 당신이 64 비트 응용 프로그램을 실행할 수 있도록 해줍니다 그냥 카드민 콘솔을 열고 다음 명령을 실행합니다:


kadmin: addprinc -randkey HTTP/web.springsource.comkadmin: ktadd -k /http-web.keytab HTTP/web.springsource.com

그런 다음 파일이 있어야합니다.루트 아래에 키 탭. 이 파일은 나중에 서비스 티켓의 유효성을 검사하기 위한 공유 암호가 포함되어 있으므로 응용 프로그램에서 필요합니다.

스프링 보안 구성

우선,요구 사항:

  • 1.6.1.6.1.6.1.6.1.6.1.6.1.6.1.6.1.6.1.6.1.6.1.6.1.6.이 웹 사이트는 쿠키를 사용합니다.이 사이트를 계속 사용함으로써 귀하는 쿠키 사용에 동의하게됩니다.)

스프링 보안에서 커베로스 모듈을 사용하려면 필터,인증 진입점 및 인증 공급자를 선언하면 됩니다. 우리는 당신이 시작 지점으로 사용할 수있는 샘플 웹 응용 프로그램을 포함. 당신은 당신의 서비스 주체 이름을 구성하고 거기에 키 탭 생성을 배치해야합니다. 샘플 앱은 위에서 언급 한 다운로드에 포함되어 있습니다.보안을 열면

이 패키지에는 주 프로그램 바이너리와 미리 컴파일된 대수 및 자동 로드 모듈이 전부 들어있습니다.서비스 티켓의 유효성을 검사한 다음 서비스 티켓의 유효성을 검사합니다. 이것은 수학적으로 정확한 유형 계층구조인,강력한 타입을 정의합니다. 커베로스에서 사용자 이름만 가져오면 역할 및 다른 사용자 속성을 가져오려면 사용자 세부정보 서비스도 필요합니다. 이 샘플에서는 테스트를 쉽게하기 위해 더미 구현을 사용합니다.

보시다시피,우리는 이미 서비스 프린티얼 이름과 키탭 위치를 채웠습니다. 필요에 따라 이러한 값을 변경하고 이전에 생성된 키탭을 이 위치에서 사용할 수 있는지 확인합니다.

이제 서버를 시작하고 인증을 시도하십시오. 브라우저에서 전체 도메인 사용자 이름이 표시됩니다. 코드에서 일반 스프링 보안 클래스 또는 표준 자바 서블릿 호출 요청을 사용하여 사용자 이름을 검색 할 수 있습니다.(). 작동하지 않는 경우(빈 페이지가 표시 될 수 있음)다음 사항을 확인하십시오:

  • 로그 파일
  • 를 확인하십시오.
  • 당신은 인터넷 익스플로러를 사용하는 경우:”윈도우 통합 인증”을 켜고 있는지 확인 도메인(우리의 경우 web.springsource.com)는 인터넷 익스플로러의 로컬 인트라넷 사이트 섹션에 나열되어 있습니다.
  • 파이어폭스를 사용하는 경우:여기를 보세요.
  • 윈도우 클라이언트를 사용하는 경우: 클라이언트와 서버는 다른 컴퓨터에 있어야 합니다.
  • 관련된 모든 컴퓨터에서 시간이 동기화되는지 확인합니다.
  • 당신이 마이크로소프트 광고를 사용하는 경우에,당신은 약간 더 도움을 여기에서 찾아낼 것입니다: http://msdn.microsoft.com/en-us/library/ms995329.aspx
    • 이 외에도,적절한 커베로스 환경을 설정하는 것은 복잡할 수 있으며,스프링 보안 커베로스 확장을 사용하기 전에 이 문제를 해결하는 것이 중요합니다. 컨설팅 과정에서 발생하는 대부분의 문제는 응용 프로그램 자체가 아니라 케르베로스 환경의 문제입니다.

      자체 메이븐 프로젝트에서 스프링 보안 커베로스 확장을 사용하지 않으려면 스프링 마일스톤 저장소를 폼에 추가해야 합니다.인기 있는 다음과 같이 표시됩니다:

물론 종속성:

아직 해야 할 일이 있습니다. 커뮤니티 포럼은 질문을하거나 새로운 기능에 대한 토론을 시작하는 가장 좋은 장소입니다. 당신이 나쁘게 뭔가를 찾을 경우 또는,당신은 지라 문제를 제기 할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다.