OAuth

Oz·2025년 3월 23일
post-thumbnail

OAuth 란?

Open Authorization Protocol

third-party 애플리케이션에 유저의 정보에 접근할 수 있게 하는 표준 프로토콜

사용자의 아이디와 비밀번호를 공유하지 않고도, 다른 서비스에서 제공하고 있는 정보에 사용자를 대신하여 접근할 수 있는 기능을 제공.

→ 신뢰할 수 있는 서비스 제공자(구글, 카카오 등)를 통해서 제 3의 서비스에 로그인 가능.

*OAuth 2.0은 1.0에서 알려진 보안 문제 등이 개선된 버전.*

OAuth에서의 구성

  1. Resource Owner

    사용자를 의미.

  2. Client

    현재 구현중인 채팅 서비스와 같이 사용자 정보에 접근하고자 하는 어플리케이션

  3. Authorization Server

    사용자의 인증을 받은 클라이언트에게 리소스 서버에 접근할 수 있는 access 토큰을 발급하는 서버.

  4. Resource Server

    사용자의 정보를 담고 있는 서버.

  5. Access Token

    자원에 대한 접근 권한을 Resources Owner가 인가하였음을 나타내는 자격증명.

    보안상 만료기간이 짧음.

  6. Refresh Token

    Client는 Authorization Server로 부터

    access token(비교적 짧은 만료기간을 가짐) 과 refresh token(비교적 긴 만료기간을 가짐)을 함께 부여 받음.

    access token은 만료기간이 짧기 때문에 만료되면 사용자는 로그인을 다시 시도해야함.
    이때 refresh token이 있다면 access token이 만료될 때,

    refresh token을 통해 access token을 재발급 받아 재 로그인이 필요없음..

Oauth 동작 방식

  1. 사용자의 구글 소셜 로그인 요청

2. 구글에서 로그인 정보 입력창 반환 → 구글에 전달.


3. 구글에서 유효성 확인 후 User에게 인증 코드 전달 후 리다이렉트 url로 이동시킴.


4. 클라이언트는 Authorization Code로 Access Token을 요청하여 받을 수 있음. 또한 Access Token을 통해 구글에게 유저 관련 정보를 얻을 수 있음.

5. 이후 Resource Owner가 Client에게 서비스 요청하면, )
Client는 Access Token을 이용해 Resource Server에 API 호출하고,
code 검증을 통해 서비스를 제공함.

PAYCO OAuth 2.0 프로세스 (출처 : PAYCO 개발자센터)

🌐 OAuth 2.0 개념 - 그림으로 이해하기 쉽게 설명

profile
Oreo 맛있다!

0개의 댓글