OAuth 2.0

선유준·2023년 3월 9일
0

CS

목록 보기
6/7

OAuth란?

페이스북, 트위터와 같은 다양한 플랫폼의 특정한 사용자 데이터에 접근하기 위해 제3자 클라이언트가 사용자의 접근 권한을 위임 받을 수 있는 표준 프로토콜이다

즉, 이미 사용자 정보를 가지고 있는 웹 서비스에서 사용자의 인증을 대신해주고, 접근 권한에 대한 토큰을 발급한 후, 이를 이용해 내 서버에서 인증이 가능해진다.

언제 사용하는가?

위의 이미지와 같이 소셜로그인에 사용하며 자주 사용하고 중요한 서비스들의 ID와 Password만 기억하면 된다.

OAuth 1.0 vs OAuth 2.0

OAuth 2.0은 기존 버전에서 보완할 점은 보완하며 출시되었으며, 기능의 단순화, 기능과 규모의 확장성 등..을 지원한다.

OAuth 1.0OAuth 2.0
암호화 과정필요불필요
액세스 토큰1년 이상의 긴 access token(짧은 기간의) access token+ refresh token

OAuth의 장점

  • 쉽고 안전하게 새로운 서비스 이용 가능
    특정 사이트에 아이디, 비밀번호 등..의 정보를 직접 입력할 필요 없이 클릭만으로 쉽게 가입이 가능하다.
  • 직접 가입하는 것보다 더 안전하다
  • 권한 영역을 설정할 수 있다.
    OAuth 설정 페이지에서는 Application에서 필요한 정보를 선택할 수 있는데, 이로인해 사용자는 원하는 정보에만 접근을 허락할 수 있어 보다 더 안전합니다

OAuth 2.0 주체

Resource Owner

  • OAuth 인증을 통해 소셜 로그인을 하려는 사용자를 Resource Owner라고 부른다.
  • Resource는 페이스북 친구 목록, 전화번호 등의 정보를 뜻하며, 이러한 정보의 주인이 바로 사용자이기 때문에 Resource Owner로 부른다.

Resource Server & Authorization Server

  • Resource Server
    사용중인 서비스의 서버 중 사용자의 정보를 저장하고 있는 서버
  • Authorization Server
    사용중인 서비스의 서버 중 인증을 담당하는 서버이며, Resource Owner를 인증하고, Client에게 액세스 토큰을 발급

Application

  • 사용자가 소셜 로그인을 활용해 이용하고자하는 새로운 서비스를 뜻한다.

OAuth 인증 방식

인증 방식에는 3가지가 있다.

  • Implicit Grant Type

  • Authorization Code Grant Type

  • Refresh Token Grant Type

Grant Type : Authorization Server에서 Access Token을 받아오는 방식

이 중에서 보안성이 낮아 거의 사용하지 않는 Implicit Grant Type을 제외하고 살펴보자.

Authorization Code Grant Type

  • 권한 부여 코드 승인 타입이며, 클라이언트가 다른 사용자 대신 특정 리소스에 접근을 요청할때 사용한다.
  • Authorization Code를 사용한 인증 단계가 있어 Implicit Grant Type보다는 비교적 안전하다.

Refresh Token Grant Type

  • 리프레시 토큰을 사용해서 액세스 토큰을 받아오는 인증 방식
  • Authorization Server에서 Access TokenRefresh Token을 발급받아 Access Token을 활용하여 Resource Server에 요청을 하고, 서버는 자원을 제공한다.

이미지 출처 : 코드스테이츠

profile
매일매일 발전하는 개발자를 목표로!

0개의 댓글