0

단일 페이지 멀티 테넌트 SAAS 애플리케이션의 보안을 유지하는 데 도움이 필요합니다.SPA 멀티 테넌트 SaaS 애플리케이션의 보안 설정

질문 : 1) 구현하는 가장 좋은 방법은 무엇입니까? 나는 angularjs, spring mvc 및 REST를 사용하여 응용 프로그램을 빌드하려고합니다. 2) Spring Security를 ​​사용하여이 작업을 수행 할 수 있습니까? 로그인 페이지를 만들고 REST를 보호하는 모든 예가 도움이 될 것입니다.

스프링 JPA (http://krams915.blogspot.com/2012/01/spring-security-31-implement_3065.html)로 스프링 보안을 구현하기위한 샘플을 찾았지만 SPA 및 SaaS는 아닙니다.

나는 매우 광범위한 질문을 이해하지만 SPA, REST 및 SaaS에 익숙하지 않으므로 모든 포인터가 도움이 될 것입니다.

감사합니다 ...

답변

0

저는 이미 SPA 및 보안 측면의 두 가지 프로젝트에 참여했습니다. 마지막으로 GWT + Spring Security가있었습니다. Angular과 Spring Security를 ​​함께 성공적으로 사용할 수 있다고 확신합니다.

Spring Security AFAIK에는 '우리는 SPA 모드입니다'라는 기본 제공 구성 매개 변수가 없습니다. 따라서 Spring Security 측의 일부 조정/conf가 필요합니다. 예 : 로그인하는 동안 스프링 보안 로그인 컨트롤러가 내장되어 있다고 상상해보십시오. 성공적인 인증의 경우 기본적으로 사용자는 실패한 경우 해당 오류 페이지로 리디렉션되는 색인 페이지로 리디렉션됩니다. SPA 웹 응용 프로그램에별로 도움이되지 않는 표준 웹 응용 프로그램의 정상적인 동작입니다. SPA의 경우 AJAX 호출을 감지하고 성공적인 사례의 경우 사용자 이름/역할로 JSON을 인쇄하거나 실패에 대한 401 코드를 전송해야합니다 (JS에서 401을 감지하고 해당 오류를 표시). Spring Security의 해당 확장 포인트 (AuthenticationSuccessHandlerAuthenticationFailureHandler)를 사용할 수 있습니다.

다른 조정할 점 : 세션 만료 후 기본적으로 사용자는 로그인 페이지로 리디렉션되고 SPA 앱은 다음 AJAX 호출에 대한 응답으로 로그인 페이지를 수신합니다.

내 개인적인 exprience 일반 가이드로 보는 것은 그렇게 될 것입니다 : JS 로의 역할로드 목록로드 후. UI 측에서 해당 구성 요소를 표시/숨기기 위해 사용하십시오. 서버 쪽에서 같은 제한 목록을 적용하십시오 (). 사용자가 브라우저에서 JS를 편집하지 않도록하려면 (중간 크기의 일부 JS 응용 프로그램은 매우 복잡한 작업 임) AJAX는

  • 일부 Java 메소드를 고정 전화의

    1. 보안 URL : 서버에 당신 사이를 선택해야합니다.

    나는 둘째를 선호합니다 (서비스의 보안 비즈니스 방법). 정상적으로 우리는 안전한 비즈니스 운영을 원하기 때문에 좀 더 편리하다고 생각합니다. adwantage로서 당신은 다른 프로토콜을 통해 당신의 비즈니스 로직을 노출시킬 수있을 것이고, 보안은 이미있을 것입니다. 다른 쪽에서는 여러 비즈니스 요구 사항이 다른 엔드 포인트/프로토콜에 대해 다른 권한을 가지고 있다고 생각할 수 있습니다. 그래서 그것은 당신의 실제 상황에 더 의존합니다.

    레이지 크기 JS 애플리케이션은 모듈로 분할되어야합니다. 직접적인 의존성을 줄이려면 모듈간에 cummunicate하기 위해 직접 호출 된 이벤트를 사용하는 것이 좋습니다. 이 코드에서 보안을 수행하는 방법에 대한 Addy Osmany의 흥미로운 생각이 있습니다. 좋은 링크를 찾지 못했습니다. this 또는 this이 도움이 될 것입니다 ("허가"검색).

    언제든지 질문을 올리십시오. 행운을 빕니다.

  • 관련 문제