Authentication - OAuth 2.0

Verba volant, scripta manent·2021년 4월 16일
0

OAuth 2.0 이란?

인증을 위한 표준 프로토콜의 한 종류로 보안된 리소스에 액세스하기 위해 클라이언트에게 권한을 제공(Authorization)하는 프로세스를 단순화하는 프로토콜 중 한 방법.

OAuth 용어

Resource Owner

액세스 중인 리소스의 유저

Client

Resource owner를 대신하여 보호된 리소스에 액세스하는 응용프로그램

Resource server

client의 요청을 수락하고 응답할 수 있는 서버

Authorization server

Resource server가 액세스 토큰을 발급받는 서버

Authorization grant

클라이언트가 액세스 토큰을 얻을 때 사용하는 자격 증명

Authorization code

access token을 발급받기 전에 필요한 code

Access token

보호된 리소스에 액세스하는 데 사용되는 credentials

Scope

주어진 액세스 토큰을 사용하여 액세스할 수 있는 리소스의 범위

Grant type 종류

Grant type이란 Client가 액세스 토큰을 얻는 방법을 뜻한다.

Authorization Code Grant Type

정의 : 액세스 토큰을 받아오기 위해 먼저 Authorization code를 받아 액세스 토큰과 교환하는 방법
특징:

  • Authorization code 절차를 거치는 이유는 보안성 강화에 목적이 있다.
  • Client에서 client-secret을 공유하고 액세스 토큰을 가지고 오는 것은 탈취될 위험이 있다.
    그래서 Client에서는 authorization code만 받아 오고 Server에서 Access token 요청을 진행한다.

Refresh Token Grant Type

정의 : 일정 기간 유효 시간이 지나서 만료된 액세스 토큰을 편리하게 다시 받아오기 위해 사용하는 방법.
특징 :

  • Access token보다 Refresh token의 유효 시간이 대체로 조금 더 길게 설정하기 때문에 가능하다.
  • server마다 Refresh token에 대한 정책이 다 다르기 때문에 Refresh token을 사용하기 위해선 사용하고자 하는 server의 정책을 살펴볼 필요가 있다.

OAuth 공식문서

https://www.oauth.com/oauth2-servers/getting-ready/

profile
말은 사라지지만 기록은 남는다

0개의 댓글