보안

Authentication 앞에 Basic 혹은 Bearer 를 붙이는 이유 (인증 방식)

Jake Seo 2024. 1. 13. 10:38

원본 글

토스 페이먼츠 Basic Bearer 설명 포스팅

HTTP 통신 방법

Authentication 앞에 Basic 과 Bearer 를 붙이는 이유는 정해진 하나의 통신 프레임워크이기 때문이다.

Basic 인증

  • 사용자ID:비밀번호 문자열을 Basic 이라는 문자와 함께 인증 헤더에 입력한다.
  • 자세한 내용은 웹 표준 RFC 7617 에 나와있다.
  • Base64 는 디코딩이 가능하기 때문에 반드시 HTTPS, SSL/TLS 로 통신해야 안전하다.
Authorization: Basic base64({USERNAME}:{PASSWORD})

장점

  • 간단하다

단점

  • 사용자 목록에서 권한을 확인하는데 시간이 많이 걸릴 수 있다.
    • 사용자가 많으면 부각되는 단점이다.
  • 권한을 정교하게 제어하기 어려울 수 있다.

Bearer 인증

  • OAuth2.0 프레임워크에서 사용하는 토큰 인증 방식이다.
  • 자세한 내용은 RFC 6750 에 정의되어 있다.
Authorization: Basic base64({USERNAME}:{PASSWORD})

OAuth 2.0 프레임워크란?

  • 소셜로긴 등의 서비스에 이용됨
  • 구글 등 특정 회사 내의 데이터 일부를 서드파티 서비스와 공유하는 것

OAuth2.0 의 구성요소

  • 클라이언트: 사용자 정보를 접근하는 서드파티 서비스
  • 리소스 소유자: 사용자
  • 인증 서버: 클라이언트의 접근을 관리하는 서버
  • 리소스 서버: 리소스 소유자의 데이터를 관리하는 서버

사용 프로세스

  • 리소스 소유자의 동의가 확인되면 인증 서버가 클라이언트에게 액세스 토큰을 발급해줌
  • 클라이언트는 액세스 토큰을 사용해서 리소스 서버에 보호된 데이터를 불러옴
    • 보호된 데이터란, 구글의 닉네임, 프로필사진 등

picture 0

Bearer 토큰

  • 불투명 문자열: 16진수 문자열 혹은 JWT 등
    • 중요한 건 해석할 수 없는 형태여야 함
    • 사용자의 정보를 전달하면 안됨

picture 1

토스 페이먼츠의 사용 사례

토스페이먼츠에서는 두가지 다 사용 중

Basic

  • 코어 API 의 경우 사용자의 ID 를 시크릿 키로 Basic 인증을 함
  • HTTPS/SSL 통신을 강제하고 있어서 안전함
  • 결제, 결제 취소, 현금영수증 발급 등
Authorization: Basic dGVzdF9za19PeUwwcVo0RzFWT0xvYkI2S3d2cm9XYjJNUVlnOg==

Bearer

  • 브랜드 페이의 경우 브랜드 페이 서비스 자체가 OAuth 프레임워크를 사용하고 더 안전하게 고객 정보를 보관하기 위해 Bearer 인증방식을 사용함
Authorization: Bearer Xy0E4Dv5qpMGjLJoQ1aVZ5449xB1P3w6KYe2RNgOWznZb7Bm

레퍼런스

토스 페이먼츠 Basic Bearer 설명 포스팅

반응형