[CS] OAuth

장다슬·2024년 5월 3일

CS 스터디

목록 보기
22/23

Open Authorization
액세스 위임을 위한 개방형 표준 인가 프로토콜로, 사용자가 비밀번호를 제공할 필요 없이 서비스 제공 업체에 정보의 액세스 권한을 부여할 수 있는 방법

OAuth 구성 요소

Resource Owner

  • 웹 서비스를 이용하려는 유저, 자원(개인정보)을 소유하는 자, 사용자
  • 여기서 Resource는 개인정보를 뜻함

Client

  • 자사 또는 개인이 만든 애플리케이션 서버

Authorization Server

  • 권한 부여를 담당하는 서버
  • 사용자는 이 서버로 아이디와 비밀번호를 넘겨 Authorization Code를 발급받음
  • Client는 이 서버로 Authorization Code을 넘겨 Token을 발급받음

Resource Server

  • 사용자의 개인정보를 가지고있는 애플리케이션 서버 (Google, Facebook, Kakao 등)
  • Client는 Token을 이 서버로 넘겨 개인정보를 응답 받음

Access Token

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

Refresh Token

  • Client는 Authorization Server로 부터 비교적 짧은 만료기간을 가진 access token과 비교적 긴 만료기간을 가진 refresh token을 함께 부여 받음
  • access token이 만료될 때 refresh token을 통해 재 로그인 없이 access token을 재발급 받을 수 있음

OAuth 2.0 동작 흐름

OAuth 2.0 시퀀스 다이어그램

  1. Resource Owner가 로그인 요청을 하면 ClientClient ID, Redirect URI, Response Type, Scope 등과 같은 정보들을 함께 실어 Authorization Server로 전송

  2. Authorization Server는 로그인 페이지를 응답으로 보내고 Resource Owner에게 아이디와 비밀번호를 제공받음

  3. Authorization Server인가 코드(Authorization Code)를 발급하고, 발급한 인가 코드와 함께 지정한 Redirect URI로 사용자를 이동시킴

  4. Client는 인가 코드와 Client ID, Client Secret을 가지고 Authorization ServerAccess Token 요청

  5. 인가 코드가 올바르다면 Authorization ServerAccess Token을 발급해서 Client에게 응답

  6. Resource Owner는 로그인에 성공

  7. 응답받은 Access Token을 가지고 Resource Server에 접근, 원하는 API를 호출하여 리소스를 제공받을 수 있음


참고:
[OAuth 2.0] 란 무엇일까?
OAuth 2.0 개념 - 그림으로 이해하기 쉽게 설명
Oauth란?

profile
반갑습니다

0개의 댓글