게시:

웹, 모바일 서비스를 이용하면서 별도의 회원가입 절차없이 이미 가입된 지메일, 카카오톡 또는 페이스북 등으로 로그인 해본 경험이 있을 것이다. OAuth는 이와 같이 웹사이트나 애플리케이션의 개인정보에 대해서 다른 외부 서비스의 접근 권한을 부여(접근 위임)할 수 있는 수단이다.

2007년에 탄생하였고, 2010년 IETF에서 OAuth 1.0 공식 표준안이 RFC 5849로 발표되었다. 그리고 이 포스팅을 작성하는 2021년에는 인증 절차가 간략한 OAuth 2.0 (RFC6749)이 많이 사용되고 있다.

테마파크에 입장할 때 우리는 입장권을 검표원(외부 서비스)에게 제시한다. 검표원은 이용자의 카드정보나 결제정보(ID and Password)를 알지 못하지만 테마파크에서 발권한 티켓(Access token)을 믿고 입장 시켜준다. 이용자 또한 의심스러운 검표원에게 다시 카드정보를 제공(로그인)할 필요가 없어서 편리하다. OAuth는 이 과정과 같다.

Disney land tickets
OAuth 인증 과정은 테마파크의 발권, 입장, 이용과정과 같다. (사진출처: unsplash.com)

OAuth 탄생 배경(필요성)

모든 외부 서비스(3rd party client)를 신뢰할 수 없기 때문이다.

3rd Party client가 고객정보에 접근하기 위하여 인증(Authentication)할 때 ID와 Password로 직접 인증(Open ID)하도록 하는 것을 허용하면 해당 3rd party client가 신뢰할 수 없는 서비스일 경우 인증정보의 유출로 이어질 수 있다.

OAuth는 인증정보를 그대로 노출하지 않고 인가(Authorization) 가능한 수단(Access oken)만을 발행・제공하는 방식으로 3rd party client로부터 사용자 정보 접근 방법과 범위를 제어한다.

Access token을 사용하는 것은 테마파크에서 놀이기구를 이용할 때 검표원이 티켓을 확인하는 절차와 같다. 이용자가 특정 놀이기구에 입장(Access)할 때 검표원은 티켓(Access token)을 보고 이 이용자가 특정 놀이기구 티켓 구매자인지 빅3 구매자인지 자유이용권 구매자인지 확인하고 해당 놀이기구를 이용할 권한(scope)이 없으면 이용을 제한한다.

댓글남기기