728x90
반응형

Bearer 토큰은 HTTP 인증 방식 중 하나로, 주로 OAuth 2.0 인증 프로토콜에서 사용됩니다. 클라이언트가 서버에 요청을 보낼 때, 인증 정보를 Authorization 헤더에 포함시켜 전송하며, 서버는 이를 확인해 요청을 처리합니다.
동작 원리:
- 토큰 발급:
- 클라이언트가 사용자 인증(예: 로그인)을 통해 서버로부터 Bearer 토큰을 발급받습니다.
- 이 토큰은 고유하며, 일반적으로 JSON Web Token(JWT) 형식이거나 난수 문자열입니다.
- 요청 전송:
- 클라이언트는 이후 요청마다 HTTP 헤더에 Authorization: Bearer <토큰> 형식으로 토큰을 첨부합니다.
- 예:
-
httpCopy codeGET /api/resource HTTP/1.1 Host: example.com Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
- 서버 인증:
- 서버는 헤더의 Bearer 토큰을 확인하고, 유효성 검사(예: 서명 검증, 만료 시간 확인 등)를 수행합니다.
- 유효한 토큰이면 요청을 처리하고, 그렇지 않으면 401 Unauthorized 응답을 반환합니다.
특징:
- Self-contained:
- Bearer 토큰은 종종 JWT처럼 자체적으로 정보를 포함하고 있어, 서버가 별도의 상태 저장 없이 토큰만으로 인증 정보를 확인할 수 있습니다.
- Stateless:
- Bearer 토큰을 사용하는 인증 방식은 서버가 세션 정보를 저장할 필요가 없습니다. 이는 확장성과 성능에 유리합니다.
- 전송 보안:
- Bearer 토큰은 일반적으로 HTTPS를 통해 전송되어야 합니다. 암호화되지 않은 HTTP로 전송하면 토큰이 노출될 위험이 있습니다.
장점:
- 유연성:
- 다양한 클라이언트(브라우저, 모바일 앱, 서버 간 통신)에서 쉽게 사용할 수 있습니다.
- 효율성:
- 토큰만 전송하면 되므로, 매번 인증 정보를 반복적으로 입력할 필요가 없습니다.
- OAuth 표준 지원:
- OAuth 2.0의 주요 인증 방식으로 사용됩니다.
단점:
- 보안 문제:
- 토큰이 탈취되면, 만료되기 전까지 악의적인 사용자가 이를 이용해 요청을 수행할 수 있습니다.
- 이를 방지하려면 HTTPS를 사용하고, 토큰을 짧은 수명으로 설정하거나 갱신(refresh) 메커니즘을 적용해야 합니다.
- 서버 부하:
- 서버는 모든 요청마다 Bearer 토큰의 유효성을 검증해야 하므로, 트래픽이 많아지면 부하가 발생할 수 있습니다.
요약:
Bearer 토큰은 인증 정보를 안전하게 전달하기 위한 방식으로, 사용이 간단하고 OAuth와 같은 인증 시스템에서 표준으로 채택되고 있다. 그러나 보안에 주의해야 하며, 반드시 HTTPS와 짧은 만료 시간을 설정하는 것이 권장된다.
728x90
반응형
'코딩' 카테고리의 다른 글
| viewsets, REST Framework (2) | 2024.12.16 |
|---|---|
| Authentication, Authorization; 에버랜드 입장권과 이용권 (2) | 2024.12.16 |
| rest.api 토큰 이터페이스 구현 (1) | 2024.12.14 |
| 토큰; Token of rest_framework (3) | 2024.12.14 |
| 세션; Session (2) | 2024.12.13 |