개발

OAuth 2.0에서 Authorization: Bearer와 기타 토큰 유형

피터JK 2025. 1. 28. 17:49
728x90

 OAuth 2.0 인증 체계에서 클라이언트는 API 요청 시 Authorization 헤더를 사용하여 액세스 토큰을 전달합니다. 이 중 가장 일반적인 방식이 Authorization: Bearer입니다. 이번 포스팅에서는 Bearer 토큰의 의미와, Bearer 외에 사용할 수 있는 다른 인증 유형들을 소개하겠습니다.


Authorization: Bearer의 의미

Authorization: Bearer는 OAuth 2.0 인증 체계에서 사용하는 **액세스 토큰(Access Token)**을 전송하기 위한 표준 헤더입니다.

  • Bearer Token: 클라이언트가 서버로부터 받은 액세스 토큰을 인증 헤더에 포함하여 인증을 수행하는 방식입니다.
    • Bearer는 "소지한 자가 접근 권한을 가진다"는 의미를 가지고 있습니다.
    • 서버는 토큰의 유효성을 확인한 뒤 요청을 처리합니다.
    • Bearer 토큰은 자체적으로 사용자 권한 정보나 만료 시간 등을 포함할 수 있습니다(JWT 같은 구조).

Authorization: Bearer 헤더 예시

GET /protected/resource HTTP/1.1
Host: api.example.com
Authorization: Bearer <access_token>
  • Bearer: 토큰 유형을 명시.
  • <access_token>: 서버로부터 받은 액세스 토큰.

Bearer 외의 토큰 유형

OAuth 2.0 표준에서는 Bearer 외에도 다른 인증 유형을 사용할 수 있지만, Bearer가 가장 널리 사용됩니다. 아래는 몇 가지 예입니다:

1. MAC (Message Authentication Code)

  • Bearer 토큰보다 높은 보안성을 제공합니다.
  • 요청마다 해시 기반의 서명을 생성하여 전송하며, 토큰 탈취로 인한 부정 사용을 방지할 수 있습니다.
  • 헤더 예시:
    Authorization: MAC id="h480djs93hd8", ts="1336363200", nonce="dj83hs9s", mac="bhCQXTVyfj5cmA9uKkPFx1zeOXM="
    
  • 특징:
    • 요청마다 서명을 생성.
    • 시간이 포함되므로 재전송 공격 방지 가능.
    • 복잡한 구현 및 처리 과정.

2. Basic (Basic Authentication)

  • 클라이언트의 username:password 조합을 Base64로 인코딩하여 인증.
  • 헤더 예시:
    Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
    
  • 특징:
    • 매우 간단하지만 보안에 취약 (HTTPS 필요).
    • 자격 증명이 매 요청마다 전송되므로 추천되지 않음.

3. Digest

  • 비밀번호 해시와 요청 데이터를 조합하여 서명 생성.
  • 헤더 예시:
    Authorization: Digest username="user", realm="example", nonce="abc123", uri="/api/resource", response="hash"
    
  • 특징:
    • 비밀번호 평문 전송 방지.
    • Bearer보다 복잡하며 현대 시스템에서는 드물게 사용.

4. OAuth 1.0 (Legacy)

OAuth 2.0 이전에 사용되던 방식으로, 각 요청에 서명을 포함.

  • 헤더 예시:
    Authorization: OAuth oauth_consumer_key="key", oauth_nonce="nonce", oauth_signature="signature", oauth_signature_method="HMAC-SHA1", oauth_timestamp="timestamp", oauth_token="token", oauth_version="1.0"
    

5. Custom Token

특정 서비스나 회사에서 정의한 커스텀 인증 방식.

  • 헤더 예시:
    Authorization: CustomToken my-custom-token
    

결론

  • Bearer 토큰은 가장 간단하고 널리 사용되는 방식으로, 대부분의 OAuth 2.0 기반 API에서 표준으로 사용됩니다.
  • 더 높은 보안이 필요하다면 MAC 또는 기타 서명 기반 인증 방식을 고려할 수 있습니다.
  • 인증 방식은 서비스의 보안 요구사항과 복잡성을 고려하여 선택해야 합니다.

OAuth 2.0의 다양한 토큰 유형을 이해하고 적합한 방식을 선택하여 보안성을 강화하세요!

728x90