[TIL] OAuth 개념 정리

zzangveloper·2022년 11월 14일

TIL

목록 보기
1/2

OAuth 그거 네이버나 카카오로 로그인하는거 아녀! 정도로만 알고 있었다. 개인적으로 진행하는 MSA 프로젝트에서 한번 사용해보고자 하기 때문에 이번 기회에 한번 정리해보고 넘어가려고 한다.

OAuth가 생긴 이유

Open Authorization 을 뜻하는 OAuth의 사전적 의미는 인터넷 사용자들이 어떤 웹사이트 상의 자신의 정보들에 다른 웹사이트나 어플리케이션이 접근할 수 있도록 권한을 부여하는 공통적인 수단으로 사용되는, 접근 위임을 위한 개방형 표준을 의미한다.

쉽게 말해 네이버나 카카오에 있는 나의 정보들로 다른 서비스에 가입해 아이디와 비밀번호를 새로 생성하는 대신 사용하는 것이다. 이러한 OAuth는 기존 회워가입 방식의 보안 취약점들을 해결해준다. 개인정보의 관리를 안전한 큰 기업에게 맡기는 것이다. 운영자도 따로 개인 정보를 관리해야하는 부담이 줄고 사용자도 안전하고 편리하게 서비스를 이용할 수 있다. 이것이 OAuth가 탄생하고 지금까지 사용되는 이유이다.

OAuth Dance

OAuth 인증 과정을 OAuth Dance라고 한다고 한다. 아주 마음에 드는 명명이다. OAuth 가 춤추는 과정은 아래와 같다.

  • User(사용자): 서비스 제공자와 소비자를 사용하는 계정을 가지고 있는 개인
  • Consumer(소비자): Open API를 이용하여 개발된 OAuth를 사용하여 서비스 제공자에게 접근하는 웹사이트 또는 애플리케이션
  • Service Provider(서비스 제공자): OAuth를 통해 접근을 지원하는 웹 애플리케이션(Open API를 제공하는 서비스)
  • Consumer Secret(소비자 비밀번호) : 서비스 제공자에서 소비자가 자신임을 인증하기 위한 키
  • Request Token(요청 토큰): 소비자가 사용자에게 접근권한을 인증받기 위해 필요한 정보가 담겨있으며 후에 접근 토큰으로 변환
  • Access token(접근 토큰): 인증 후에 사용자가 서비스 제공자가 아닌 소비자를 통해서 보호된 자원에 접근하기 위한 키를 포함한 값
  1. 소비자가 서비스제공자에게 요청토큰을 요청한다.
  2. 서비스제공자가 소비자에게 요청토큰을 발급해준다.
  3. 소비자가 사용자를 서비스제공자로 이동시킨다. 여기서 사용자 인증이 수행된다.
  4. 서비스제공자가 사용자를 소비자로 이동시킨다.
  5. 소비자가 접근토큰을 요청한다.
  6. 서비스제공자가 접근토큰을 발급한다.
  7. 발급된 접근토큰을 이용하여 소비자에서 사용자 정보에 접근한다.

OAuth 예시 (PAYCO)

페이코의 OAuth 사용 예시이다. 실제 사용 사례를 통해 한번 더 이해해볼 수 있다. OAuth에 대해 더 자세한 내용은 https://d2.naver.com/helloworld/24942 를 꼼꼼히 정독하고 숙지해두자!



https://d2.naver.com/helloworld/24942
https://ko.wikipedia.org/wiki/OAuth
https://redbinalgorithm.tistory.com/443

profile
짱발자가 되기 위한 개발 일기

0개의 댓글