티스토리 뷰

728x90

Authorization - 인가 처리

  • 당신에게 무엇이 허가 되었는지 증명하는 것!
  •  Spring Security는 Authentication, Authorization 두 개의 영역으로 나눔
  • 사용자가 자원에 접근하려고 할때 인증을 받았는지 안받았는지 여부를 먼저 확인
  • 인증을 받았다면 사용자가 받은 권한이 해당 자원에 접근하기 위한 권한이 맞는지 확인한다!
  • 인증을 먼저 확인하고 인가까지 확인한다!

스프링 시큐리티가 지원하는 권한 계층

웹 계층

  • URL 요청에 따른 메뉴 혹은 화면단위의 레벨 보안

서비스 계층

  • 화면 단위가 아닌 메소드 같은 기능 단위의 레벨 보안

도메인 계층(Access Control List, 접근제어목록)

  • 객체 단위의 레벨 보안

FilterSecurityInterceptor

  • 마지막에 위치한 필터로써 인증된 사용자에 대해 특정 요청의 승인및 거부 를 최종적으로 결정
  • 인증객체 없이 보호자원에 접근을 시도하면 AuthenticationException 발생
  • 인증 후 자원에 접근 가능한 권한이 존재하지 않을 경우 AccessDeniedException 을 발생
  • 권한 제어 방식 중 HTTP 자원의 보안을 처리하는 필터
    • URL방식으로 접근할 경우 동작한다.
  • 권한 처리를 AccessDecisionManager에게 맡긴다.

  • 사용자의 요청이 오면 인증객체가 있는지 확인한다.
  • 인증 객체가 없으면 (null일경우) AuthenticationException을 발생
  • SecurityMetadataSource 는 사용자가 요청한 자원에 필요한 권한을 조회해서 전달한다.
  • 권한정보가 null일 경우에는 권한 심사를 하지 않고 자원 접근을 허용한다.
  • 권한정보가 있으면 AccessDecisionManager라는 최종 심의 결정자가 있는데 AccessDecisionVoter 심의자에게 심의를 요청한다.
  • 최종적으로 AccessDecisionVoter가 승인 또는 거부를 반환한다.
  • 접근이 승인되면 자원에 대한 접근을 허용한다.
  • 접근이 거부되면 AccessDeniedException을 발생

참고

https://www.inflearn.com/course/%EC%BD%94%EC%96%B4-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%8B%9C%ED%81%90%EB%A6%AC%ED%8B%B0

 

스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의

초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과

www.inflearn.com

 

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함