본문 바로가기
Backend

[Security] Oauth2 개요

by wahu 2021. 11. 28.

Oauth2란?

Oauth2는 비밀번호를 사용하는 사이트에 직접 제공하지 않고 인가를 할 수 있는 industry-standard 프로토콜이다.

 

Oauth2가 생기게 된 이유

기존에 Oauth2 방식의 표준이 생기기 전에는 Google 기능을 사용하기 위해 App에 id/password를 직접 제공하거나 각 사이트 별 인가 방식을 사용했다. 하지만 이런 방식은 보안에 취약하고 같은 문제를 여러 방식으로 풀게 되어 개발자들에게 혼란을 가져왔다.

 

도메인에 상관 없이 Auth에 대한 문제를 풀기위해 OAuth1 표준 스펙이 2007년에 나왔고 현재 OAuth2 표준으로 발전했다.

 

Oauth2 기본 원리

Oauth2는 third-party app에 Google, Dropbox의 id/pwassword를 제공할 필요가 없게 만들어 준다. id/password를 제공하게 된다면 third-party app은 Google, Dropbox의 모든 기능에 접근할 수 있게 될 것이다. Oauth2는 redirect_uri 기능을 통해 인증은 Google, Dropbox에게 맡기고 인증 후 redirect_uri를 통해 본래 app으로 다시 돌아오게 만들어준다.

 

Oauth2 비유

Oauth2 방식의 인증은 호텔 프론트에 비교할 수 있다. 호텔 프론트(Authorization Server)에서 ID card나 개인정보로 인증을 하게 되면 카드키를 발급해 준다. 이 카드키는 access token으로 볼 수 있는데 카드키를 통해 호텔 방(Resource)에 출입할 수 있다. 이 카드키에는 사용자에 대한 정보는 전혀 없으며, 출입 시 해당 카드키가 해당 룸에 접근 권한이 있는지만 검사한다.

 

OAuth2 vs OpenID

OAuth2: Accessing APIs

OpenID: Identifying Users

 

댓글