인증인가는 다양한 웹서비스에서 사용되는 기능이다. 두 가지의 차이를 명확히 알 필요가 있기 때문에, 살짝 정리를 해보자면,

 인증(Authentication)은 사용자의 신원을 검증하는 행위로써, 모든 보안 프로세스의 첫 번째 단계가 된다. 인증 프로세서는, 비밀번호, 일회용 PIN(OTP), 인증 앱, 지문 및 홍채 등을 활용한 생체 인식등 다양한 형태로 사용자의 신원을 검증하는 수단이 있다. 즉, 개개인의 정보를 취득하기 위해, 해당 사용자가 누구인지를 확인하는 과정을 인증이라고 이해하면 될 것 같다.

 인가(Authorization)는 사용자에게 특정 리스소느나 기능을 사용할 수 있는 권한을 부여하는 프로세서를 말한다. 대표적으로, 스프링 과제 또는 강의에서 사용된 UserRoleEnum 등의 사용자의 역할 -여기서는, USER(일반유저)와 ADMIN(관리자)로 구분하였다- 같은 것들이 인가의 역할을 한다고 보면 될 것 같다.

 

 이번에는 이 것들에 대해서 Spring Security에서는 어떤식으로 사용되는지 알게 되었다. 처음 강의를 들을 때는 토막상식 처럼 살짝 알고 갔지만, 지금에 이르러서는 조금 더 확실한 개념 확립이 필요하다고 생각 되었고, 그것에 대한 생각을 정리 하는 계기가 되었던 것 같다. Spring Security는 보안 및 엑세스에 관한 권한을 기본적으로 다양한 Filter를 통해서 개발자가 직접 관리를 할 수 있도록 되어있다. 이러한 과정은 크게 두가지로 부분으로 분리되어 Filter를 조작할 수 있다고 볼수 있는데,  UsernamePasswordAuthenticationFilter, DigestAuthenticationFilter, BasicAuthenticationFilter 인증에 관한 필터들과 해당 인증 정보를 관리하는 SecurityContextHolder를 통해, 사용자의 정보를 UserDetails를 통해 토큰을 제작하고, 그 토큰을 SecurityContext로 가공해 인가를 하는 과정을 거치게 된다.

 즉 Spring Security에서는 @AuthenticationPrincipal를 통해 인증을 관리하고, @Secured를 통해서 사용자의 접근을 제어한다고 볼 수 있다.

 

 12월의 마지막 주간의 시작이 되었다. 생각보다 빠르게 시간이 흘러가는 느낌이다. 아직도 알아야 할 것들이 많은데 이 과정도 벌써 반이나 지났다는게 실감이 나지않는다. 남은 기간동안 열심히 할 수 있도록 잘 해야할 것 같다.

'TIL&WIL' 카테고리의 다른 글

TIL&TMI - 12/29  (0) 2022.12.30
TIL&TMI - 12/27  (0) 2022.12.28
WIL&TMI - 내일배움캠프 8주차  (0) 2022.12.26
TIL&TMI - 12/23  (1) 2022.12.26
TIL&TMI - 12/22  (0) 2022.12.23

+ Recent posts