본문 바로가기

Javascript

[생활코딩: OAuth - 1편] OAuth가 필요한 이유

생활코딩님은 항상 무언가를 가리키기 전에, 해당 개념이 왜 필요한지, 어떤 불편한 상황이 있었는지를 먼저 소개해준다. 

 

내가 오늘 공부하게 된 oAuth도 마찬가지이다. 이것이 왜 필요하게 되었는지, 어떤 불편한 상황이 있었는지 먼저 소개해줬다. 그 내용부터 공유하면서, 시작한다. 

 

OAuth라는 기술에 대해서 알아보기 전에, 3명의 참가자가 존재한다는 가정을 해보자. 

나, 유저, 그들(구글, 페이스북,트위터) 

이들 각각의 역할은 다음과 같다. 

 

나 : 서비스를 제공하는 주체이다.

유저 : 내가 만든 서비스를 이용하는 대상이다. 

그들(구글,페이스북) : 내가 만든 서비스를 확장시켜줄 대상이다. (편의상 T라고 부르겠다.)

 

여기서 시작해보자. 유저가 우리의 서비스를 이용한다. 글을 보고, 글을 기록한다. 그런데 우리는 그런 내용들을 페이스북에도 공유하도록 해주고 싶다. 이것을 하기 위해서 필요한 일은 무엇일까? 

 

먼저 유저가 제공하는 T의 아이디와 비번을 알아야 한다. 그리고 그것을 기억하고 활용해서 T의 데이터에 접근하고 수정해야 한다. 

이것은 아주 간단하고, 그들의 서비스의 모든 기능을 다 사용할 수 있기 때문에 강력하다. 

 

하지만, 아주 쉽게 직관할 수 있듯이, 이것은 아주 위험한 방법이다. 

사용자의 아이디와 비밀번호가 안전한지도 모르는 새로운 서비스를 제공하는 '나'에게,

공개해야한다는 큰 리스크가 있기 때문이다. 

물론 '나'는 착한 사람이지만, 세상에는 어떤 나쁜 사람이 있을지도 모르고 유저들을 그들을 분별해낼 수가 없다. 아무튼 이런 상황은 아주 위험한 상황이다. 

 

바로 이런 상황에서 우리를 구원해줄 도구가 바로 OAuth이다. 

이 도구를 활용하면, 우리는 훨씬 더 안전하게 T의 서비스과 소통할 수 있다. 

 

T는 사용자의 accessToken을 발급한다. 그리고 우리는 accessToken을 통해서 그들의 서비스의 일부를 활용할 수 있다. 

이런 것들을 가능하게 해주는 기술이 oAuth이다. 

 

우리가 이것을 활용한다면, 애초에 사용자의 아이디와 비밀번호를 기억하지 않고도 서비스를 활용할 수 있다. 

 

지금부터 우리는 oAuth를 활용해서, accessToken을 얻는 방법와 활용법을 알아보게 될 것이다. 

이 수업의 목표는 oAuth의 핵심 동작원리를 파악할 수 있게 되는 것이다.