보안
Authentication 앞에 Basic 혹은 Bearer 를 붙이는 이유 (인증 방식)
Jake Seo
2024. 1. 13. 10:38
원본 글
HTTP 통신 방법
Authentication 앞에 Basic 과 Bearer 를 붙이는 이유는 정해진 하나의 통신 프레임워크이기 때문이다.
Basic 인증
사용자ID:비밀번호
문자열을Basic
이라는 문자와 함께 인증 헤더에 입력한다.- 자세한 내용은 웹 표준 RFC 7617 에 나와있다.
- Base64 는 디코딩이 가능하기 때문에 반드시 HTTPS, SSL/TLS 로 통신해야 안전하다.
Authorization: Basic base64({USERNAME}:{PASSWORD})
장점
- 간단하다
단점
- 사용자 목록에서 권한을 확인하는데 시간이 많이 걸릴 수 있다.
- 사용자가 많으면 부각되는 단점이다.
- 권한을 정교하게 제어하기 어려울 수 있다.
Bearer 인증
Authorization: Basic base64({USERNAME}:{PASSWORD})
OAuth 2.0 프레임워크란?
- 소셜로긴 등의 서비스에 이용됨
- 구글 등 특정 회사 내의 데이터 일부를 서드파티 서비스와 공유하는 것
OAuth2.0 의 구성요소
- 클라이언트: 사용자 정보를 접근하는 서드파티 서비스
- 리소스 소유자: 사용자
- 인증 서버: 클라이언트의 접근을 관리하는 서버
- 리소스 서버: 리소스 소유자의 데이터를 관리하는 서버
사용 프로세스
- 리소스 소유자의 동의가 확인되면 인증 서버가 클라이언트에게 액세스 토큰을 발급해줌
- 클라이언트는 액세스 토큰을 사용해서 리소스 서버에 보호된 데이터를 불러옴
- 보호된 데이터란, 구글의 닉네임, 프로필사진 등
Bearer 토큰
- 불투명 문자열: 16진수 문자열 혹은 JWT 등
- 중요한 건 해석할 수 없는 형태여야 함
- 사용자의 정보를 전달하면 안됨
토스 페이먼츠의 사용 사례
토스페이먼츠에서는 두가지 다 사용 중
Basic
- 코어 API 의 경우 사용자의 ID 를 시크릿 키로 Basic 인증을 함
- HTTPS/SSL 통신을 강제하고 있어서 안전함
- 결제, 결제 취소, 현금영수증 발급 등
Authorization: Basic dGVzdF9za19PeUwwcVo0RzFWT0xvYkI2S3d2cm9XYjJNUVlnOg==
Bearer
- 브랜드 페이의 경우 브랜드 페이 서비스 자체가 OAuth 프레임워크를 사용하고 더 안전하게 고객 정보를 보관하기 위해 Bearer 인증방식을 사용함
Authorization: Bearer Xy0E4Dv5qpMGjLJoQ1aVZ5449xB1P3w6KYe2RNgOWznZb7Bm
레퍼런스
반응형