Tosspayments Developers

Basic 인증과 Bearer 인증의 모든 것

thumbnail

HTTP 인증 프레임 워크란?

  • HTTP 인증 프레임 워크는 RFC 7235에 정의되어 있음.
  • 인증 헤더에는 인증 방식(Type)이 함께 들어감.
  • Basic 인증 방식은 base64로 인코딩한 "사용자 ID:비밀번호" 문자열을 함께 인증 헤더에 입력하는 방식.
  • Basic 인증 방식만으로는 사용자 권한을 정교하게 제어할 수 없으며, HTTPS, SSL/TLS로 통신해야 안전.

Bearer 인증 방식이란?

  • OAuth 2.0 프레임워크에서 사용하는 토큰 인증 방식.
  • 인증 서버에서 클라이언트의 접근을 관리하는 서버가 있어 리소스 소유자의 동의가 확인되면 액세스 토큰을 발급해 줌.
  • Bearer 토큰에는 서버에서 클라이언트의 권한을 확인할 수 있는 메타 데이터가 인코딩돼야 함.
  • 토큰은 쉽게 복호화할 수 없고, OAuth는 인증 및 리소스 서버에서 SSL/TLS를 필수로 사용함.
  • 서버가 OAuth 프레임워크에 정의된 보안 장치를 잘 구축하면 문제가 없으며, 노출이 발견되면 해당 토큰의 권한을 철회할 수 있음.

Basic 인증과 Bearer 인증의 장단점 비교

  • Basic 인증: 쉽게 복호화할 수 있는 base64를 사용하고, 노출된 인증 정보를 철회할 방법이 없으며, 사용자 정보를 서버에 저장하기 때문에 사용자가 많아지면 서버에 부담됨. But, 간단한 인증 방법이지만, 정교하게 권한을 제어하기 어려움.
  • Bearer 인증: 충분히 복잡한 알고리즘으로 토큰을 발급하고, 토큰이 노출되면 권한을 철회할 수 있으며, Bearer 토큰에는 메타 데이터가 담겨 있어서 사용자가 많아도 서버에 부담되지 않음. But, 보안 확장성이 높아 복잡한 구현이 필요함.

토스페이먼츠의 인증 방식

  • 토스페이먼츠에서는 Bearer 인증 방식을 사용.
  • 리소스 소유자가 동의하면 인증 서버에서 Bearer 토큰을 발급하고, 토큰에는 브랜드 페이 서비스 자체가 OAuth 프레임워크를 사용해 클라이언트의 권한을 확인할 수 있는 메타 데이터가 인코딩됨.
  • 보안을 더욱 강화하기 위해 HTTPS, SSL/TLS를 필수적으로 사용함.