210630_OAuth 2.0

Bitnara Lee·2021년 6월 30일
0

OAuth2.0

" 인증을 중개해주는 메커니즘 "

  • 인증을 위한 표준 프로토콜의 한 종류

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

    • 이미 사용자 정보를 가지고 있는 웹 서비스(GitHub, google, facebook 등)에서 사용자의 인증을 대신해주고, 접근 권한에 대한 토큰을 발급한 후, 이를 이용해 내 서버에서 인증이 가능

자주 사용하고 중요한 서비스들(예를 들어 google, github, facebook) 의 ID와 Password만 기억해 놓고 해당 서비스들을 통해서 소셜 로그인 할수 있다.

OAuth는 보안상의 이점이 있다.

Resource Owner : 액세스 중인 리소스의 유저. 유저의 구글 계정을 이용하여 App에 로그인을 할 경우, 이 때 Resource owner은 유저(유저이름)가 된다.

Client : Resource owner를 대신하여 보호된 리소스에 액세스하는 응용프로그램. 클라이언트는 서버, 데스크탑, 모바일 또는 기타 장치에서 호스팅할 수 있다.

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

Authorization server : Resource server가 액세스 토큰을 발급받는 서버. 즉 클라이언트 및 리소스 소유자를 성공적으로 인증한 후 액세스 토큰을 발급하는 서버.

Authorization grant : 클라이언트가 액세스 토큰을 얻을 때 사용하는 자격 증명의 유형.

Authorization code : access token을 발급받기 전에 필요한 code. client ID로 이 code를 받아온 후, client secret과 code를 이용해 Access token 을 받아온다.

Access token : 보호된 리소스에 액세스하는 데 사용되는 credentials. Authorization code와 client secret을 이용해 받아온 이 Access token으로 이제 resource server에 접근을 할 수 있다.

Scope : scope는 토큰의 권한을 정의. 주어진 액세스 토큰을 사용하여 액세스할 수 있는 리소스의 범위.

Authorization Code grant type: 엑세스 토큰을 받아오기 위해서 먼저 Authorization code를 받아 액세스 토큰과 교환하는 방법

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

profile
Creative Developer

0개의 댓글