OAuth 2.0

세현·2024년 7월 30일
0

Flutter에서는 Firebase를 이용하여 접했던 기억이 있어서 한번 알아보고 싶다는 생각을 가졌다.

정의

OAuth 2.0 승인 프레임워크를 사용하면 타사 애플리케이션이 리소스 소유자 및 HTTP 서비스간의 승인 상호작용을 조정하여 리소스 소유자 대신 액세스하거나 타사 애플리케이션이 자체적으로 액세스 하도록 허용하여 HTTP 서비스에 제한적으로 액세스하도록 할 수 있습니다.

OAuth 2.0 흐름

구성 요소

  • Client : 앱, 앱은 리소스 소유자를 대신하여 보호된 애셋에 대해 리소스 서버에 요청을 보냄
  • Resource Owner : 보호 대상 리소스에 대한 액세스 권한을 부여할 수 있는 사람
  • Resource Server : Facebook, Google, Twitter와 같은 서비스, 리소스 서버는 보호된 리소스를 앱에 제공하기 전에 일종의 승인을 요구
  • Authorization Server : 승인 서버는 OAuth2.0 사양을 준수하여 구현, 리소스 서버에 사용자 데이터에 액세스 할 수 있는 권한을 앱에 부여하는 액세스 토큰발급을 담당
  • 승인 부여 : 최종 사용자를 대신하여 액세스 토큰을 검색할 수 있는 권한을 앱에 부여
  • 액세스 토큰 : 보호된 리소스에 액세스하는데 사용자 인증 정보 역할을 하는 긴 문자열
  • 보호된 리소스 : 리소스 소유자가 소유한 데이터

흐름

  1. 클라이언트가 resource ownerdprp 인증 요청을 보내면, resource owner가 클라이언트에게 권한을 부여
  2. 클라이언트가 부여받은 권한을 통해 Authorization server에 요청하면 Access Token을 반환
  3. 클라이언트가 발급받은 Access Token을 통해 이용하려는 서비스에게 리소스 요청
  4. 서비스에서 토큰 확인 후 관련 리소스 반환

OAuth 2.0 Grant 유형

OAuth 2.0 에서 "grant type" 이라는 용어는 애플리케이션이 액세스 토큰을 얻는 방식

인증 코드 - Authorization Code

사용자가 리디렉션 URL을 통해 클라이언트로 돌아오면 애플리케이션은 URL에서 인증 코드를 가져와 액세스 토큰을 요청하는데 사용
OAuth2.0 부여 유형 중 가장 일반적

profile
안녕하세요

0개의 댓글

관련 채용 정보