Basic 토큰 인증

de_sj_awa·2022년 2월 10일
0
post-custom-banner

Basic 토큰 인증

  • 기본적으로 로그인 페이지를 사용할 수 없는 상황에서 사용한다.

    • SPA 페이지(react, angular, vue...)
    • 브라우저 기반의 모바일 앱(브라우저 기반의 앱, ex : inoic)
  • 설정 방법

public class SecurityConfig extends WebSecurityConfigurerAdapter {

  @Override
  protected void configure(HttpSecurity http) throws Exception {
      http
              .httpBasic()
              ;
  }
}
  • SecurityContext에 인증된 토큰이 없다면 아래와 같은 포맷의 토큰을 받아서 인증처리를 하고 간다.

  • http에서는 header에 username:password 값이 묻어서 가기 때문에 보안에 매우 취약하다. 그래서 반드시 https 프로토콜에서 사용할 것을 권장하고 있다.
  • 최초 로그인 시에만 인증을 처리하고, 이후에는 session에 의존하다. 또 RememberMe를 설정한 경우, remember-me 쿠키가 브라우저에 저장되기 때문에 세션이 만료된 이후라도 브라우저 기반의 앱에서는 장시간 서비스를 로그인 페이지를 거치지 않고 이용할 수 있다.
  • 에러가 나면 401(UnAuthorized) 에러를 내려 보낸다.
  • 로그인 페이지 처리는 주로 아래와 같은 방식으로 한다.

SecurityContextPersistenceFilter

  • SecurityContext를 저장하고 있는 저장소에서 만료되지 않은 인증이 있으면 SecurityContextHolder에 넣어준다. 이전에는 HttpSessionContextIntegerationFilter 이란 필터가 있었는데, 저장소가 반드시 세션일 필요는 없기 때문에 추상화된 객체로 발전된 필터라고 볼 수 있다.
  • HttpSessionSecurityContextRepository : 서버 세션에 SecurityContext를 저장하는 기본 저장소

Bearer 토큰

  • JWT 토큰
  • Opaque 토큰

참고

  • 패스트 캠퍼스 : Java/Spring 웹 개발 마스터 초격차 패키지
profile
이것저것 관심많은 개발자.
post-custom-banner

0개의 댓글