0

저는 스프링 보안을 사용하는 웹 응용 프로그램 용 보안 모듈을 설계하고 있습니다. 별도의 로그인을 사용하여 JBOSS 서버에 배포 된 3 가지 별도의 전쟁 (3 가지 응용 프로그램)이 있습니다. 요구 사항은 사용자가 한 응용 프로그램에서 인증 된 경우 로그인하지 않고 다른 응용 프로그램에 액세스 할 수 있어야한다는 것입니다. 웹 응용 프로그램 (단일 EAR에없는 다른 전쟁)간에 보안 컨텍스트를 공유 할 수 있습니까? 우리는 SSO에 대해 논의했지만, 우리는 봄 보안과 App 서버의 지원으로이를 달성하려고 노력하고 있습니다. 어떤 방법이 있습니까? 귀중한 제안과 의견을 제공해주십시오. 자세한 정보가 필요하면 알려주십시오.웹 응용 프로그램의 보안 설계에 대한 제안이 필요합니다.

답변

0

가장 쉬운 방법은 일반적인 스프링 보안 인증 (예 : 사용자 이름/비밀번호로 폼 기반)을 사용하고 을 사용하여 remember-me feature을 사용하는 것입니다.

세 가지 응용 프로그램이 모두 같은 도메인에 배포되고 쿠키를 공유 할 수있는 한 remember-me 기능은 모든 응용 프로그램에서 원활하게 작동합니다. 재 인증을받지 않아도 다른 사람들에게 액세스 할 수 있습니다.

물론 이것은 단일 로그 아웃과 같은 문제는 다루지 않지만 어쨌든 당신의 목표는 아닌 것 같습니다.

짧은 시간 내에 설정할 수 있으며 타사 SSO 구성 요소는 필요하지 않습니다. 표준 SSO 프로토콜 및 전용 기술을 통한 릴레이는보다 안전한 옵션 인 경향이 있습니다.

+0

감사합니다. VSChafer. remember-me 옵션을 구현하려고 시도합니다. 이것은 POC를위한 것입니다. 표준 SSO 프로토콜에 대한 귀하의 요점을 찾았습니다. 프로덕션에서는 SSO를 사용할 것입니다. – Sampathkumar

0

최근에 SSO 및 스프링 시큐리티를 사용해 보았지만 SPNEGO 필터가 제공 한 HttpServletRequest.getRemoteUser() 값을 얻는 데 사용할 자체 보안 필터를 작성했습니다. SSO의 한 가지는 : 대부분의 메커니즘은 로컬 데스크톱 환경에서만 실제로 작동하는 Kerberos를 사용합니다. 사용자를 로그인 페이지로 리디렉션하는 대체 메커니즘을 작성할 수는 있지만 여전히 문제가 있습니다.

또 다른 옵션은 EAR (here 참조)로 응용 프로그램을 다시 패키지하는 것입니다.

+0

일요일, 정보 주셔서 감사합니다. 특정 SSO (siteminder 또는 CAS)를 설치하고 싶지 않으며 Apache Tomcat SSO Valve 또는 JBOSS SSO와 함께 Spring Security와 같은 다른 옵션 (컨테이너 수준 보안)을 시도하고 있습니다. 요구 사항에 따라 웹 응용 프로그램은 동일한 서버에 별도의 war 파일로 배포해야합니다. 유스 케이스 2 및 3을 사용할 계획입니다. http://java.dzone.com/articles/choosing-sso-your-jboss. 우리의 목표는 동일한 서버의 응용 프로그램간에 스프링 보안 컨텍스트를 공유하는 것입니다. – Sampathkumar