오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-04 00:00
관리 메뉴

우노

[API] Bearer란? 본문

Web/API

[API] Bearer란?

운호(Noah) 2023. 6. 4. 16:22

토큰 기반 인증이란?

  • 토큰 기반 인증(Token-based authentication)은 웹 애플리케이션에서 사용자 인증을 처리하기 위한 인증 방식 중 하나입니다.
  • 이 방식은 세션 기반 인증과는 다르게 서버에 사용자의 상태를 저장하지 않고, 토큰을 사용하여 인증을 수행합니다.
  • 토큰 기반 인증의 주요 아이디어는, 클라이언트가 인증을 위해 사용자의 자격 증명(예: 로그인 정보)을 제공하면, 서버는 그 정보를 검증한 후에 클라이언트에게 토큰을 발급합니다.
  • 이 토큰은 클라이언트에 저장되고, 일반적으로 HTTP 요청의 헤더에 포함되어 서버로 전송됩니다.
  • 클라이언트가 서버에 요청을 보낼 때마다, 헤더에 포함된 토큰을 서버가 검증하고 인증을 확인합니다.
  • 이를 통해 클라이언트는 인증된 상태를 유지하며, 서버는 클라이언트가 요청할 때마다 사용자를 식별하고 권한을 부여할 수 있습니다.
  • 토큰은 일반적으로 JSON Web Token (JWT) 형식을 사용하며, 토큰에는 사용자의 식별 정보와 유효 기간, 서명 등이 포함됩니다.
  • 토큰은 서버에서 발급되고 서명되므로 클라이언트에서 변조할 수 없습니다.
  • 또한, 서버는 토큰을 디코드하여 사용자의 식별 정보를 추출할 수 있습니다.
  • 토큰 기반 인증은 확장성이 높고 다양한 플랫폼에서 사용할 수 있으며, 분산 시스템이나 API 기반의 서비스에서 특히 유용합니다.
  • 또한, 세션 상태를 서버에 저장하지 않기 때문에 서버의 확장성과 부하 분산에도 도움을 줍니다.

Bearer란?

Authorization: <type> <credentials>
  • 클라이언트가 서버로 API 요청을 보낼 때 토큰 인증 방식을 사용한다면, 위와 같은 헤더가 요청에 포함되어 보내지게 됩니다.
  • Authorization 헤더에서 type은 토큰 인증 종류를 의미하며, credentials은 토큰을 의미합니다.
  • 토큰 인증 종류는 다양하며, 서버는 전송받은 type에 따라 토큰을 다르게 처리합니다.
  • 우리가 궁금해하던 Bearer는 위 형식에서 type에 해당하며,
  • Bearer는 인증은, JWT와 OAuth에 대한 토큰을 사용하는 인증 타입입니다.
  • 따라서, Bearer 토큰 인증을 사용할 경우, 아래와 같은 헤더를 요청에 포함해서 보내게 됩니다.
    • Authorization: Bearer “토큰”

참고

Comments