[OAuth2] 1. 개요

popolarburr·2023년 8월 3일
0

OAuth 개요

  1. 내가 운영중인 서비스가 있다. ex) opentutorials.org
  2. 또한 나의 서비스를 사용하는 사용자가 있을 것이다.
  3. 또 하나는 나의 서비스가 연동하려고하는 그들의 서비스가 있다( 구글 페이스북 트위터 등)

사용자가 우리 서비스에 접속해서 글을 쓰거나 봤을 땐, 나의 서비스가 사용자를 대신해서
구글과 같은 서비스에다가 구글 캘린더에다가 날짜를 기록한다는지, 페이스북에 글을 우리 서비스에 글을 작성했다고 포스팅하는등 이러한 행동을 하고 싶어하자.

이러한 행동을 하기 위해서는 우리의 서비스가 그들의 서비스에 접근할 수 있도록 허가를 받아야한다. 가장 쉬운 방법은 사용자의 아이디와 비밀번호를 우리의 서비스에서 갖고있고, 그들의 서비스에 접근할 때 해당 아이디와 비밀번호를 사용하는 것이다.

하지만 이러한 방식은 위험한 방식이다.

  1. <<사용자 관점>>
    사용자는 구글,페이스북같은 아이디와 비밀번호를 처음보는 서비스(나의 서비스)에 맡겨야 되는건 불안하고 위험한 일이다.
    또한 아이디와 비밀번호는 대게 다른 사이트나 서비스에서 비슷하게 사용되기 때문에 더욱 위험하다.

  2. <<나의 서비스 관점>>
    나의 서비스는 해당 사용자의 아이디와 비밀번호를 저장하고 있기 때문에, 해당 정보를 유실될 경우가 있다.

  3. <<그들의 서비스 관점>>
    그들의 서비스의 아이디와 비밀번호같은 정보를 그들의 서비스가 아닌 제3서비스가 갖고 있다는 것이 불만일 수 있다.

등장배경

이러한 각각의 관점들을 이해하고 문제점들을 해결할 수 있는 것이 OAuth이다.
OAuth를 사용하면 훨씬 더 안전하게 그들의 서비스와 우리 서비스가 상호작용 할 수 있게 된다.

OAuth를 이용하면 어떠한 변화가 생기는지 확인해보자

우선 기존에 사용자가 그들의 서비스를 사용하기 위해서는 회원정보(아이디/비밀번호)를 나의 서비스에 제공하고, 나의 서비스가 그들의 서비스와 상호작용할 때 앞서 제공받은 회원정보를 사용하는 방식이였다.

OAuth를 사용하게되면, 그들의 서비스에서는 사용자의 회원정보대신 accessToken을 발급하여 나의 서비스에 제공하게된다. accessToken은 실질적인 회원정보가 담겨있는 토큰이 아니라 안전하며, 모든 서비스를 이용하는 것이 아닌 나의 서비스의 상황에 맞게 필요한 서비스만을 사용할 수 있게끔 한다는 장점이 있다.

즉, Oauth를 통해 발급받은 accessToken을 이용해서 그들의 서비스와 상호작용하는 것이다.

Oauth를 이러한 특징을 이용하면 회원의 회원정보를 이용하지않고, 회원을 식별할 수 있는 기능을 구현할 수 있다.

[출처] : https://www.inflearn.com/course/lecture?courseSlug=web2-oauth2&unitId=36276

profile
차곡차곡

0개의 댓글

관련 채용 정보