개발/Security

[Security] Basic Token 과 Bearer Token의 차이

아현이라구 2023. 12. 15. 10:15
반응형

Basic과 Bearer는 HTTP 헤더에서 인증 정보를 전달하는 데 사용되는 두 가지 다른 인증 스킴(Scheme)입니다. 각각의 특징과 사용되는 상황에 대해 설명하겠습니다.

1. Basic Authentication:

  • 헤더 형식: Authorization: Basic base64(username:password)
  • 동작 방식:
    • 사용자 이름과 비밀번호를 클리어 텍스트로 받아 Base64 인코딩합니다.
    • 인코딩된 문자열을 "Basic" 스킴과 함께 HTTP 헤더의 "Authorization" 필드에 추가합니다.
    • 이 정보는 클라이언트가 서버에게 로그인 정보를 전송하는 데 사용됩니다.
  • 사용 사례:
    • 주로 웹 서비스에서 사용자를 인증하는 데 사용됩니다.
    • 주로 HTTPS와 함께 사용하여 보안을 강화합니다.
    • 예시:
    Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
    (위 예시는 "username:password"를 Base64로 인코딩한 결과입니다.)

2. Bearer Token:

  • 헤더 형식: Authorization: Bearer (token)
  • 동작 방식:
    1. 사용자가 인증되면 서버에서 발급한 토큰을 받아 클라이언트에게 제공합니다.
    2. 클라이언트는 이 토큰을 "Bearer" 스킴과 함께 HTTP 헤더의 "Authorization" 필드에 추가하여 요청을 전송합니다.
    3. 서버는 토큰을 검증하고 유효한 경우 해당 사용자를 인증합니다.
      • 사용 사례:
      • 주로 토큰 기반의 인증 방식에서 사용됩니다. (주로 OAuth, JWT 등)
      • 클라이언트가 로그인한 후에 서버로부터 받은 액세스 토큰을 사용하여 보호된 리소스에 접근할 때 사용됩니다.
      • 예시:
      Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV\_adQssw5c
      (위 예시는 JWT(JSON Web Token)를 사용한 Bearer 토큰의 형식입니다.)

차이점 요약:

  • Basic: 사용자 이름과 비밀번호를 Base64로 인코딩하여 전송하며, 클라이언트의 로그인 정보를 전달하는 데 사용됩니다.
  • Bearer: 클라이언트가 서버로부터 받은 토큰을 전송하여, 해당 토큰을 사용하여 리소스에 접근하는 데 사용됩니다. 주로 토큰 기반의 인증에서 활용됩니다.
반응형