티스토리 뷰
728x90
반응형
Authorization - 인가 처리

- 당신에게 무엇이 허가 되었는지 증명하는 것!
- Spring Security는 Authentication, Authorization 두 개의 영역으로 나눔
- 사용자가 자원에 접근하려고 할때 인증을 받았는지 안받았는지 여부를 먼저 확인
- 인증을 받았다면 사용자가 받은 권한이 해당 자원에 접근하기 위한 권한이 맞는지 확인한다!
- 인증을 먼저 확인하고 인가까지 확인한다!
스프링 시큐리티가 지원하는 권한 계층
웹 계층
- URL 요청에 따른 메뉴 혹은 화면단위의 레벨 보안
서비스 계층
- 화면 단위가 아닌 메소드 같은 기능 단위의 레벨 보안
도메인 계층(Access Control List, 접근제어목록)
- 객체 단위의 레벨 보안
FilterSecurityInterceptor
- 마지막에 위치한 필터로써 인증된 사용자에 대해 특정 요청의 승인및 거부 를 최종적으로 결정
- 인증객체 없이 보호자원에 접근을 시도하면 AuthenticationException 발생
- 인증 후 자원에 접근 가능한 권한이 존재하지 않을 경우 AccessDeniedException 을 발생
- 권한 제어 방식 중 HTTP 자원의 보안을 처리하는 필터
- URL방식으로 접근할 경우 동작한다.
- 권한 처리를 AccessDecisionManager에게 맡긴다.
- 사용자의 요청이 오면 인증객체가 있는지 확인한다.
- 인증 객체가 없으면 (null일경우) AuthenticationException을 발생
- SecurityMetadataSource 는 사용자가 요청한 자원에 필요한 권한을 조회해서 전달한다.
- 권한정보가 null일 경우에는 권한 심사를 하지 않고 자원 접근을 허용한다.
- 권한정보가 있으면 AccessDecisionManager라는 최종 심의 결정자가 있는데 AccessDecisionVoter 심의자에게 심의를 요청한다.
- 최종적으로 AccessDecisionVoter가 승인 또는 거부를 반환한다.
- 접근이 승인되면 자원에 대한 접근을 허용한다.
- 접근이 거부되면 AccessDeniedException을 발생
참고
스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의
초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과
www.inflearn.com
728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- LocalDate
- mybatis config
- Spring
- input
- mybatis
- claude
- Mac
- k8s
- maven
- oracle
- 북리뷰
- window
- Java
- Spring Security
- Bash tab
- svn
- Linux
- docker
- springboot
- rocky
- localtime
- 베리 심플
- jQuery
- 오라클
- JavaScript
- config-location
- elasticsearch
- intellij
- LocalDateTime
- Kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
반응형
250x250