Bearer 토큰은 무엇인가?

1371 단어 BackendBackend

Slack API를 이용하기위해 인증토큰을 전송하는데 Bearer 형태로 전송을 해야했었다. 인증 토큰 앞에 있는 Bearer은 대체 무슨 뜻일까?!


1. Authorization 헤더

HTTP 요청을 할 때 보통Authorization 헤더에 인증 데이터(ex 토큰)를 넣어서 보낸다. MDN Authorization 문서를 살펴보면 아래 형태의 문법이 표준이라고 나와있다.

Authorization: <type> <credentials>

여기서type은 인증 스키마 또는 인증타입이라고 불리며, Bearer 또한 이 인증스키마 중 하나이다. 뒤의 credentials은 증명내용(ex 토큰)이 들어가는 부분이다. type은 뒤의 증명내용이 어떤 형태인지 알려주는 약속이라고 생각하면 될 것 같다.


2. 인증 스키마 종류

Basic

<아이디>:<비밀번호> 형태를 Base64로 인코딩한 값을 사용한다는 약속이다. (RFC 7617)

Bearer

데이터 변환 없이 있는 그대로 전달한다는 약속이다. 자격증명 내용을 그대로 보내는건 보안에 매우 취약하기 때문에,주로 JWT, OAuth 에서 인코딩된 토큰을 전송하는데 주로 사용된다.

AWS4-HMAC-SHA256

AWS (Amazon Web Service) 전자 서명 기반 인증

이외에도 많은 인증스키마가 있지만, 현재는 필요하지 않기에 이정도만 정리하였다. 나머지 인증스키마 목록을 참고하자.

좋은 웹페이지 즐겨찾기