OAuth 2.0 프레임워크
개요: Bearer 형태의 토큰에 대해 알아보다가 OAuth 2.0 프레임워크와 관련되어 있어서, 함께 알아봄
OAuth 프레임 워크란?
1. 새로운 웹 사이트를 사용할 때 구글, 네이버와 같은 소셜 계정으로 편리하게 로그인, 회원가입을 할 수 있는데, 이는 소셜 사이트에서 내 데이터 일부를 제 3자의 서비스와 공유해서 가능한 기능. 이런 다양한 서비스 사이에서 안전하게 고객 데이터를 주고받기 위해 OAuth 프레임워크가 탄생 (OAuth 프레임 워크 탄생목적)
2. 제 3자의 클라이언트에게 보호된 리소스를 제한적으로 접근하게 해주는 프레임워크
OAuth 1.0이 아닌 2.0인 이유?
1. 2010년 IETF에서 OAuth1.0을 발표했지만, 여러 문제로 2년안에 철회됨.
- 구현이 복잡했음.
- 모바일 애플리케이션에서 지원이 부족했음.
- 인증을 위한 Access Token이 만료되지 않아서 보안에 취약했음 (2.0과의 가장 큰 변화)
OAuth 2.0 프레임워크
OAuth 1.0 문제점을 보안하기 위해 2012년에 OAuth 2.0 이 발표됨.
OAuth 2.0 프레임워크의 리소스 공유로직
- 리소스 소유자: 사용자
- 클라이언트: 사용자의 정보를 접근하는 제3자의 서비스
- 인증 서버: 클라이언트의 접근을 관리하는 서버
- 리소스 서버: 리소스 소유자의 데이터를 관리하는 서버
1. 리소스 소유자가 클라이언트에게 인증을 하가함. (구글, 네이버등 소셜 계정에 로그인하는 과정) (이때 리소스 소유자는 클라이언트와 어떤 정보를 공유할 지 선택할 수 있음)
2. 동의가 확인되면 인증서버는 클라이언트에 Access Token과 Refresh Token을 발급함.
3. 클라이언트는 Access Token을 이용하여 리소스 서버에 보호된 데이터를 불러올 수 있음
추가적으로
보안문제로 인해 Access Token은 만료기간이 있는데, Access Token이 만료되기 전에 Refresh Token을 이용하여 Access Token을 재발급받을 수 있다. (만료기간이 끝나면 리소스 소유자는 다시 Access Token을 받기위해 소셜 로그인을 해야하는 번거로움이 있음)