개발/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와 함께 사용하여 보안을 강화합니다.
- 예시:
(위 예시는 "username:password"를 Base64로 인코딩한 결과입니다.)Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
2. Bearer Token:
- 헤더 형식: Authorization: Bearer (token)
- 동작 방식:
- 사용자가 인증되면 서버에서 발급한 토큰을 받아 클라이언트에게 제공합니다.
- 클라이언트는 이 토큰을 "Bearer" 스킴과 함께 HTTP 헤더의 "Authorization" 필드에 추가하여 요청을 전송합니다.
- 서버는 토큰을 검증하고 유효한 경우 해당 사용자를 인증합니다.
- 사용 사례:
- 주로 토큰 기반의 인증 방식에서 사용됩니다. (주로 OAuth, JWT 등)
- 클라이언트가 로그인한 후에 서버로부터 받은 액세스 토큰을 사용하여 보호된 리소스에 접근할 때 사용됩니다.
- 예시:
(위 예시는 JWT(JSON Web Token)를 사용한 Bearer 토큰의 형식입니다.)Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV\_adQssw5c
차이점 요약:
- Basic: 사용자 이름과 비밀번호를 Base64로 인코딩하여 전송하며, 클라이언트의 로그인 정보를 전달하는 데 사용됩니다.
- Bearer: 클라이언트가 서버로부터 받은 토큰을 전송하여, 해당 토큰을 사용하여 리소스에 접근하는 데 사용됩니다. 주로 토큰 기반의 인증에서 활용됩니다.
반응형