Harry's Blog

OAuth 2.0 본문

OAuth

OAuth 2.0

HarryJoo 2020. 4. 14. 17:34

(1) OAuth 2.0 이란?

Open Authorization, Open Authentication

웹이나 앱 서비스 사용자들이 아이디/비밀번호로 인증하는 방식이 아닌 Google, Facebook, Facebook 계정을 이용한 새로운 인증방식.

(2) OAuth에서 정의하는 Roles

- Resource Owner : 서비스를 이용하는 사용자 (웹 브라우저...)

- Client : 서비스를 제공하는 애플리케이션

- Resource Server : 보호된 자원을 호스팅 하는 서버, 토큰 정보를 저장하고 있는 리소스 서버

- Authorization Server : 인증 처리를 담당하는 서버, 인증 성공 후에는 Access Token을 Client로 발행함

(3) OAuth 2.0 인증 방식

a. Client -> Resource Owner :  A라는 서비스에서 사용자한테 인증을 요청한다. 인증요청이 사용자한테 직접 요청될 수 있다.

b. Resource Owner -> Client : 사용자는 클라이언트한테 authorization grant를 요청한다.

c. Client -> Authorization Server : 클라이언트는 인증 서버의 인증처리 및 인증 서버로 authorization grant를 요청한다.

d. Authorization Server -> Client : 인증서버는 Client를 인증 처리 하고 authorization grant를 검증한다. 유효할경우 Access Token을 발행 한다.

e. Client -> Resource Server : 클라이언트는 인증 서버에 인증 및 authorization grant를 제시해서 Access Token을 요청한다.

f. Resource Server -> Client  : 클라이언트는 Access Token을 제시하면서 인증처리 하고, 리소스서버로부터 보호된 자원을 요청한다.

g. Resource Server -> Client : 리소스서버는 유효한 Access Token인지 검증하고, 유효하면 요청을 수행한다.