OAuth 2.0
Last updated
Was this helpful?
Last updated
Was this helpful?
OAuth 2.0은 리소스 소유자가 제3자 애플리케이션에게 자신을 가장하는 것을 허가하여,
보호되어 있는 자신의 리소스에 접근할 수 있도록 권한을 위임하는 인증 및 권한 부여 프로토콜입니다.
이러한 프로토콜을 통해 사용자의 패스워드 교환 없이도 클라이언트는 사용자 가장이 가능합니다.
사용자가 제3자 애플리케이션에게 권한을 부여하는 방식에는 4가지 방식이 있습니다.
Authorization Code Grant (인가 코드 부여)
Implicit Grant (암시적 부여)
Resource Owner Password Credentials Grant (리소스 소유자 암호 자격 증명 부여)
Client Credentials Grant (클라이언트 자격 증명 부여)
오늘날 가장 많이 사용되는 권한 부여 방식은 인가 코드 부여 방식입니다.
따라서 해당 장에서도 OAuth 2.0 흐름에 대한 설명은 인가 코드 부여 방식을 기준으로 설명합니다.
OAuth 2.0의 흐름에 대해서 다루기 이전에 해당 프로토콜에서 사용하는 용어를 알아야 합니다.
리소스 소유자
보호된 자원의 소유자(이용자)
클라이언트
리소스 소유자를 대신하여 리소스에 접근할 제3자 애플리케이션
인가 서버
실질적인 인증과 인가를 수행하며 인가 코드 및 엑세스 토큰을 발급
리소스 서버
리소스 소유자의 보호된 자원을 소유하는 서버
사용자는 클라이언트의 서비스를 이용할 때 Google 등의 소셜 로그인 요청
클라이언트는 사용자의 화면을 Google 로그인 화면으로 리다이렉션
Google 로그인 폼에서 response_type 매개변수는 code로 지정되어 전달
인가 코드 발급
발급된 인가 코드는 자동으로 리다이렉션되어 클라이언트에게 전달
클라이언트는 인가 서버에게 인가 코드를 통한 엑세스 토큰 발급 요청
엑세스 토큰 발급
엑세스 토큰을 통한 리소스 소유자의 리소스에 대해 접근