SpringSecurity 학습(16) -- Authentication(인증, 인증주체)

carlkim·2023년 10월 25일

스프링시큐리티학습

목록 보기
16/24

  1. Authentication(인터페이스)

네가 누구인지 증명하라
--- 사용자의 인증 정보를 저장하는 토큰 개념.
--- 인증 시 id와 password 를 담고 인증 검증을 위해 전달되어 사용된다
--- 인증 후 최종 인증 결과 (user 객체, 권한정보)를 저장후 SecurityContext에 저장되어 전역적으로 참조 가능.

Authentication authentication = SecurityContextHolder.getContext().getAuthenticaiton()

---------- 구조 ----------
1) principal(object) : 사용자 아이디 혹은 User 객체를 저장.
2) credentials : 사용자 비밀번호를 저장 (자격증명)
3) authorities : 인증된 사용자의 권한 목록 저장
4) details : 인증 정보 외에 부가 정보 저장
5) Authenticated : 인증 여부 저장.

---------- 인증 흐름 -----------

  1. 사용자가 username과 password로 로그인(인증) 요청을 입력한다.
  2. UsernamePasswordAuthenticationFilter가 요청 정보를 받아
    username, Password를 추출한 뒤
  3. Authentication 객체를 생성
    3-1 Principal 속성에 사용자 아이디를 저장
    3-2 credential 속성에 password를 전달.
  4. AuthenticationManager에게 인증 객체 전달
    4-1 인증 실패시 정해진 후속처리를 한다
  5. 인증 성공시 AuthenticationManager가 Authentication 객체를 만든다.
    5-1 권한 정보와 인증 결과를 담은 객체를 만든다
  6. 인증 결과가 저장된 Authentication 객체를 SecurityContextHolder 객체에 저장된다
  7. 이제 이 인증객체를 전역적으로 사용할 수 있다.
profile
기본부터 가면 됩니다.

0개의 댓글