본문 바로가기
공부/네트워크

OAuth란 무엇인가?

by 라이티아 2026. 5. 25.

최근 네트워크를 다루어야 하는 일을 하게 되었다. 다만, 현재 내 기술 스택으로는 야매 네트워크를 만드는 정도이기에 짜잘하게 기술을 파먹어 보려 한다.

 

그중 게임 로그인에서 자주 사용하고 구현할일이 있었던 OAuth = Open Authorization를 잠시 정리해보려 한다

 

https://ksh-coding.tistory.com/62

 

Spring Security + JWT를 이용한 자체 Login & OAuth2 Login(구글, 네이버, 카카오) API 구현 (5) - OAuth란? / OAuth

본격적으로, OAuth2 로그인을 구현하기 전에, OAuth가 무엇인지 알아보고자 합니다. 1. OAuth(Open Authorization)란? OAuth의 사전적 정의는 다음과 같습니다. OAuth는 인터넷 사용자들이 비밀번호를 제공하지

ksh-coding.tistory.com

(해당 글을 읽으면서 작성이 많이 되었다.)

Open Authorization

사용자들이 다른 서버에 자신의 정보를 ID, Password없이 다른 서버에 접근할 수 있는 권한을 부여하는 공통 수단, 개방형 표준

 

요즈음 여러 웹 사이트들에서 로그인이 타 유명 도메인의 계정으로 로그인을 할 수 있도록 많이 하는데, 이것이 OAuth를 사용하는 대표적인 예시라고 할 수 있겠다

 

당장 넥슨의 로그인을 봐도 네이버를 통한 로그인을 지원하는 것을 확인할 수 있다

 

간단히 보자면

 

  • 사용자가 “Google로 로그인” 클릭
  • Google 로그인 페이지로 이동
  • 사용자가 Google에 인증
  • Google이 토큰 발급
  • 서비스가 토큰으로 사용자 정보 확인
  • 로그인 완료

이러한 흐름을 따른다고 할 수 있다

 

 

만약 OAuth가 없다면 무슨 문제가 있을까?

만약 특정 서버에서 구글의 정보를 가져오기 위해서는 ID, Password를 모두 입력 받아서 이를 활용해야 하는데, 이럴경우 사용자는 자신의 ID, Password가 해당 특정 서버에 노출되고, 해당 특정 서버는 자신이 보안의 책임을 많이 져야 하는 부작용이 생기게 되고, 구글은 자신들의 정보가 특정 서버에 노출되는 것을 무조건 신뢰하기 어려울 수 있다.

 

이를 해결하기 위해서 OAuth라는 인증이 생겼다고 설명한다

 

Auth 2.0 구성요소들

  • Resource Server
    OAuto 2.0 서비스를 제공하고 관리하는 서버
    보통 유명한 도메인들이 이에 포함된다

    클라이언트들은 Authorization Server에서 인증 과정을 거쳐서 토큰을 받고, 이를 Resource Server에 보내는 것으로 정보를 받을 수 있다
  • Resource Owner
    Resource Server의 계정을 소유하고 있는 사용자
  • Client
    Resource Server의 API를 사용하여 정보를 가져오려는 애플리케이션 서버
  • Authorization Server
    Client가 Resource Server의 서비스를 사용할 수 있게 인증하고 토큰을 발행해주는 서버
    사용자들은 이서버에 ID, PW를 보내서 Authorization Code를 받는다
    Client는 사용자가 발급받은 Authorization Code를 이 서버로 넘겨서 Token을 받는다
  • AccessToken
    json wep token으로 Resource Server에 요청을 보내 개인 정보를 받을 수 있다
  • RefreshToken
    AccessToken을 재발급 받을 수 있다

OAuth 2.0 인증 과정

https://developers.payco.com/guide

 

PAYCO 로그인 및 PAYCO 바로가입 개발 가이드

PAYCO 로그인 및 PAYCO 바로가입 개발 가이드, 간편로그인 SDK, 이미지 리소스를 제공합니다.

developers.payco.com

 

 

PAYCO 공식 가이드에서 나오는 이미지이다

 

  1. 사용자가 서비스를 제공하는 서버 이하 A에게 요청을 보낸다
  2. A가 Authorization Server 이하 AS에 사용자 대신 로그인을 요청한다
  3. AS가 사용자에게 로그인 페이지를 제공한다
  4. 사용자는 자신의 ID, PW를 입력해 AW가 이를 확인한다
  5. AW는 사용자에게 Authorization Code를 받는다
  6. 사용자는 Redirect Callback URL을 통해 Authorization Code를 담아서 A에게 보낸다
  7. A는 Authorization Server에 Authorization Code를 사용해 검증 후 인증하여 AccessToken을 받아 저장한다
  8. A는 사용자에게 인증이 완료되었음을 확인힌다
  9. 이후 Access Token을 이용하여 사용자의 Resource를 이용할 수 있다