OAuth

gth1123·2021년 12월 23일
0

web

목록 보기
13/17
post-thumbnail

0. OAuth 2.0

  • Open Authorization 2.0
  • 인증을 위한 개방형 표준 프로토콜
  • Third-Party 프로그램에게 리소스 소유자를 대신하여 리소스 서버에서 제공하는 자원에 대한 접근 권한을 위임하는 방식을 제공
  • 구글, 페이스북, 카카오, 네이버 등 제공하는 간편 로그인 기능도 OAuth2 프로토콜 기반의 사용자 인증 기능을 제공

1. OAuth 2.0 주요 용어

Authentication

  • 인증, 접근 자격이 있는지 검증하는 단계

Authorization

  • 인가, 자원에 접근할 권한을 부여하는 것
  • 인가가 완료되면 리소스 접근 권한이 담긴 Access Token이 클라이언트에게 부여 됨

Access Token

  • 리소스 서버에게서 리소스 소유자의 보호된 자원을 획득할 때 사용되는 만료기간이 있는 Token

Refresh Token

  • Access Token 만료 시 이를 갱신하기 위한 용도로 사용하는 Token
  • Refresh Token은 일반적으로 Access Token보다 만료 기간이 김

2. OAuth 2.0의 4가지 역할

Resource owner

  • 리소스 소유자
  • 보호된 자원에 접근할 수 있는 자격을 부여해 주는 주체
  • OAuth2 프로토콜 흐름에서 클라이언트를 인증(Authorize)하는 역할을 수행
  • 개념적으론 리소스 소유자가 자격을 부여하는 것이지만, 일반적으로 권한 서버가 리소스 소유자와 클라이언트
  • 유저(사용자)

Client(Application)

  • 보호된 자원을 사용하려고 접근 요청을 하는 애플리케이션
  • e.g., 브라우저

Authorization Server

  • 권한 서버
  • 인증/인가를 수행하는 서버
  • 클라이언트의 접근 자격을 확인하고 Access Token을 발급하여 권한을 부여하는 역할을 수행
  • e.g., Facebook, Google, Naver 등

Resource Server

  • Client가 제어하고자 하는 자원을 보유하고 있는 서버
  • 사용자의 보호된 자원을 호스팅하는 서버
  • 회사 운영 서버(REST API)

Authorization code grant : 권한 부여 승인 코드 방식

  • 가장 많이 쓰이고 기본이 되는 방식
  • 권한 부여 승인을 위해 자체 생성한 Authorization code를 전달하는 방식
  • 타사의 클라이언트에게 보호된 자원을 제공하기 위한 인증에 사용
  • Refresh Token 사용 가능
  • 과정 설명
    • client : 권한 부여 승인 요청(response_type=code)
    • authorization server :
      • redirect_url에서 oauth 로그인
        • authorization code -> (Authorization server API) access token으로 교환

참고

profile
움직이는 만큼 행복해진다

0개의 댓글