본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
안녕하세요 :)
오늘은 챌린지 47일차로, 어제에 이어서 또다시 새벽 공부하러 왔네요.
오늘 배울 내용은,
Part C. OAuth2.0 과 JWT
Ch 1. OAuth 2.0 이 동작하는 방법
"01. OAuth 2.0 프레임워크" 입니다.
참고로 지난 시간까지 공부했었던,
Ch 6. 실전: 인증 서버와 애플리케이션 서버 분리
의 인증서버 구현과 애플리케이션 서버 구현, 연동 테스트는
문자 그대로 테스트였기 때문에 따로 포스팅하지는 않고 넘어가기로 했습니다.

오늘은 OAuth 2.0 과 스프링 시큐리티에 대해 배워보는 시간을 가졌다. 평소에 매우 궁금했던 파트인데 기대가 되었다.
먼저, OAuth 2.0 에 대한 내용은 워낙 방대하기 때문에 모든 내용을 이번 시간에 다 포함할 수 없기에, 스프링 시큐리티에서 OAuth 2.0을 어떻게 적용하고 활용할 수 있는지에 대해 집중해서 파악해보았다.
이번 시간에는 OAuth 2.0에 대한 개요에 대해 알아보고, 앞으로의 시간에서는 OAuth 2.0 의 주요 구성 요소인 사용자, 클라이언트, 리소스 서버, 권한 부여 서버 등에 대해서도 알아볼 예정이다. OAuth 2.0 에 대해 자세히 알고 싶다면 <0Auth 2.0 in Action> 책을 읽어보도록 추천해주셨다.
OAuth 2.0 프레임워크는 아마 한 번씩은 들어보았을 가능성이 높은데 이는 웹 애플리케이션 보안에 일반적으로 이용되기 때문이다. 앞에서 배웠던 스프링 시큐리티 관련 개념들은 어떻게 보면 OAuth 2.0 프레임워크를 웹 애플리케이션에 적용하기 위해 배웠다고 할 수도 있다.
OAuth 2.0 프레임워크는 OAuth 2.0 = 권한 부여 프레임워크 = Open Authorization 라고 볼 수 있다. 이를 사용하는 목적은 타사 웹사이트나 웹이 리소스에 접근할 수 있게 허용하는 것이고, 이러한 목적 때문에 종종 "위임 프로토콜" 이라고 불리기도 한다.
OAuth 2.0은 특정 구현 또는 라이브러리가 아니라 프레임워크이다! 따라서 OAuth 2.0 의 개념을 기반으로 다양한 플랫폼, 언어를 활용하여 적용할 수 있고, 하나의 예시로 스프링 프레임워크 + 스프링 시큐리티 + Auth 2.0 라고 할 수 있다.
스프링 시큐리티 관련 개념을 공부할 때 예시로 HTTP Basic 인증 방식을 많이 활용한다. 하지만 HTTP Basic 인증 방식에는 두 가지 고려해야 문제가 있다. 바로 모든 요청에 자격 증명을 보내야 한다는 것과 사용자의 자격 증명을 별도의 시스템이 관리한다는 것이다. 이는 이번 강의를 통해 상세히 배울 수 있었다.
또, OAuth 2.0 인증 아키텍쳐의 구성 요소에는 사용자, 권한 부여 서버, 리소스 서버가 있다는 것을 배웠고 각각의 역할과 기능에 대해서도 알아볼 수 있는 시간이였다.