원본 글
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
레퍼런스
반응형
'보안' 카테고리의 다른 글
스프링 시큐리티에서 Authority 와 Role 의 차이는? (2) | 2023.12.05 |
---|---|
리프레시 토큰 (refresh token) 을 사용하는 이유를 알아보자 (0) | 2022.10.13 |
Method Security of 스프링 시큐리티 (0) | 2022.05.07 |
CSRF 공격 정리 (feat. 스프링 시큐리티) (0) | 2022.05.03 |
JWT(Json Web Token) 이란 무엇이며 왜 사용하는가? (0) | 2022.05.03 |