OTHER

[HTTP] Authentication Basic vs Bearer

집한구석 2020. 12. 17. 21:03
728x90
대충 OPEN API 연동 or API 개발 시 많이 접하나 정확한 개념을 몰라서 정리

Basic HTTP Authentication

  • HTTP는 다른 인증 프로토콜에 맞추어 확장할 수 있는 Authorization 제어 헤더를 제공
  • HTTP Authorization 헤더는 서버의 사용자 에이전트임을 증명하는 자격을 포함하여, 보통 서버에서 401 Unauthorized 상태를 WWW-Authenticate 헤더로 먼저 제공
  • 클라이언트는 username과 password 값을 :(콜론)으로 합친 뒤, 통채로 Base64 인코딩을 통해 credentials 생성하여 서버로 보냄 
  • 서버는 credentials 값을 Base64로 디코딩하여 username과 password를 분리하여 인증

Bearer HTTP Authentication

  • 로그인 시 서버로부터 token을 발급받고, 이후 요청 시 Authentication 헤더에 토큰을 실어 보냄
  • Token을 만들 때 JWT 방식으로 생성하는 것이 특징
  • 세션 정보가 클라이언트/서버 각각의 저장소에 흩어져있지 않고, 토큰 자체에 내장
  • 무상태 HTTP를 유지할 수 있기 때문에 속도도 빠르고 보안도 뛰어남

둘중 선택시 Bearer Authentication 이유는 

  • Basic은 username과 pasword를 Base64 인코딩하는 방식이라, Base64는 별도의 key 없이도 복호화가 가능하므로 보안상 X
  • 헤더와 페이로드를 가지고 서명필드를 생성하므로 데이터 위변조 방지 
  • Bearer에서 사용하는 OAuth 2.0 방식의 인증은 인증정보를 다른 웹서비스에 전달가능하므로 확장성이 매우 높음

 

 

 

 

'OTHER' 카테고리의 다른 글

[OTHER] 모놀리식 아키텍처  (0) 2021.07.12
[NETWORK] Polling / Long Polling / Streaming  (0) 2021.06.10
[OTHER] 블록킹 / 논블록킹과 동기 / 비동기  (0) 2021.06.07
[OS] 가상화  (0) 2021.06.05
[NETWORK] CNAME과 A RECODE  (0) 2021.06.02