Backend Development (40) 썸네일형 리스트형 [Spring boot] Spring Security saml2.0 예제 분석 (spring-security-saml2-core) 필터 등록 /saml/config/WebSecurityConfig.java:87 @Bean public FilterChainProxy samlFilter() throws Exception { List chains = new ArrayList(); // IDP에 등록한 Recipient URL and Destination URL로 인증 프로세스를 위한 필터 chains.add(new DefaultSecurityFilterChain(new AntPathRequestMatcher("/saml/SSO/**"), samlWebSSOProcessingFilter())); // 등록한 IDP discovery를 위한 url chains.add(new DefaultSecurityFilterChain(new AntPat.. [Spring boot] authenticationEntryPoint /auth 인증을 위한 Entry point는 보통 아래와 같이 security config이 configure 메소드에서 설정을 한다. @Override protected void configure(HttpSecurity http) throws Exception { http .csrf() .disable(); http .httpBasic() .authenticationEntryPoint(samlEntryPoint); .httpBasic() 은 아래와 같이 미리정의된 HttpBasicConfigurer 을 실행해준다. /** * Creates a new instance * @see HttpSecurity#httpBasic() */ public HttpBasicConfigurer() { realmName(DEFAUL.. [Spring boot] SAML2.0 SSO 간단 정리 SSO는 Single Sign-On의 약자로 한번의 로그인으로 여러개의 다른 도메인을 이용한다는 의미를 담고 있다. 예를들어, 로그인 검증은 A라는 곳에서 하고, B라는 곳에서는 A에서 검증된 로그인 정보라면 검증을 따로 하지 않게끔 하는 것이 SSO에 해당한다. 이런 SSO를 구현하기 위한 대표적인 방법으로 SAML, OAuth가 많이 사용된다. SAML (Security Asserting Markup Language) - (로그인) 인증/인가 정보를 담은 XML - cross domain 상황, 다양한 플랫폼에 관계없이 표준적인 방법으로 SSO 구현이 가능하게 함 - 아래와 같이 3가지의 구성원이 존재 1) Service Provideer (SP) : 서비스 제공 주체 2) User 3) Identi.. [Spring boot] OAuth2 login(Google, Facebook, Naver, Kakao) 소셜 OAuth2 서비스 등록 구글(Google) 구글 OAuth2 서비스를 등록하기위해서는 아래 Google console로 가서 프로젝트 및 클라이언트 ID를 등록해야 한다. 아래 사이트로 가서 본인의 Google 계정으로 로그인을 한다. https://console.cloud.google.com/apis 로그인을 하면 아래 대시보드 메뉴로 가서 우측 프로젝트 만들기를 클릭한다. 프로젝트 이름을 입력하고 만들기를 누른다. 상단 "API 및 서비스 사용 설정" 을 클릭한다. OAuth 동의 화면 -> 외부 선택 후 만들기 클릭 앱이름을 입력한다. 나머지는 부가 정보이고 현재 테스트 서버에서 작업중이므로 승인된 도메인은 입력하지 않고 Pass. 개발자 이메일 정보 정도 입력하고 "저장 후 계속" 을 클릭.. [Spring boot] Spring Security 분석 - Session timeout 설정하기 application.properties에서 타임아웃 설정 embedded tomcat을 사용한다면 기본적으로 application.properties에 다음 property로 세션 타임아웃 설정이 가능하다. application.properties:109 # session timeout: unit default SECOND - default 120 minutes server.servlet.session.timeout=10 위에서 설정된 Property값은 부팅시 아래 configuration에 의해 시스템에 로딩된다. org/springframework/boot/spring-boot-autoconfigure/2.5.6/spring-boot-autoconfigure-2.5.6-sources.jar!/or.. [Spring boot] Spring Security 분석 - FilterSecurityInterceptor (Session 인증 기반) 서버 기동 시 embedded tomcat container 기본 설정 org/apache/tomcat/embed/tomcat-embed-core/9.0.54/tomcat-embed-core-9.0.54-sources.jar!/org/apache/catalina/session/ManagerBase.java:388 @Override public void setContext(Context context) { if (this.context == context) { // NO-OP return; } if (!getState().equals(LifecycleState.NEW)) { throw new IllegalStateException(sm.getString("managerBase.setContextNotNew.. [Spring boot] Spring Security 분석 - WebSecurityConfigurerAdapter [Spring boot] Spring Security 분석 - FilterSecurityInterceptor (Token 인증 기반) 특정 페이지에 권한없는 계정으로 접근 시 아래와 같이 Exception 처리가 된다. handleAccessDeniedException:185, ExceptionTranslationFilter (org.springframework.security.web.access) handleSpringSecurityException:173, ExceptionTranslationFilter (org.springframework.security.web.access) doFilter:142, ExceptionTranslationFilter (org.springframework.security.web.access) doFilter:115, ExceptionTranslationFilter (org.springframework.. 이전 1 2 3 4 5 다음