적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

컴퓨터시스템

Bearer Token 이란?

hongssup_ 2024. 12. 22. 17:36
반응형

Bearer Token?

- HTTP Authorization 헤더를 통해 클라이언트가 서버에 인증 정보를 전달하는 데 사용됨

- OAuth 2.0 인증 프레임워크에서 사용되는 액세스 토큰의 일종

- API에 접근하기 위해 클라이언트와 서버 간 인증 및 권한 부여를 처리

 

Bearer Token의 사용 방법

클라이언트가 보호된 리소스에 액세스하려는 경우, 인증 서버에 요청을 보내어 Bearer 토큰을 얻고

Bearer Token은 HTTP 요청의 Authorization 헤더에 포함되어 전송된다.

Authorization: Bearer <token>

 

서버는 토큰을 유효성 검사하여 클라이언트가 리소스에 액세스할 권한이 있는지 확인한다.

 

Bearer Token의 특징

  • 토큰 기반 인증:
    클라이언트는 서버에서 인증을 받으면 토큰을 발급받고, 이후 요청에 토큰을 포함시켜 API에 접근
  • 무상태성(Stateless):
    Bearer Token은 자체적으로 정보를 포함하기 때문에 서버는 별도의 세션을 유지할 필요가 없다
  • 보안 중요성:
    Bearer Token을 탈취당하면 토큰을 소유한 누구나 API에 접근할 수 있으므로 반드시 HTTPS를 통해 전송해야 한다.
  • 유효기간:
    Bearer Token은 일반적으로 유효기간(만료 시간)이 있다. 토큰의 수명을 제한함으로써, 토큰이 유출되었을 경우 무단 액세스의 위험을 줄일 수 있다. 유효기간이 만료되면 클라이언트는 새로 발급받아야 한다.
  • 권한 부여:
    Token 사용자 권한 정보가 포함되어, 인증뿐 아니라 클라이언트의 API 접근 권한을 제어할 있다.

장단점

장점:

  • 서버는 클라이언트의 상태를 유지하지 않아도 됨 (무상태성).
  • 요청마다 인증 정보를 포함하므로 확장성이 좋음.
  • 보안 정보가 토큰에 포함되어, 토큰만으로 인증 가능.

단점:

  • 토큰 탈취 시 위험 발생.
  • 유효기간 만료 시 클라이언트에서 재발급 로직 필요.
  • 짧은 유효기간과 함께 Refresh Token 관리가 필요.

 

Bearer Token을 안전하게 사용하는 방법

  1. HTTPS 사용:
    모든 통신에서 HTTPS를 사용하여 토큰이 네트워크에서 탈취되는 것을 방지합니다.
  2. 짧은 유효기간 설정:
    유효기간이 짧으면 탈취된 토큰의 사용 가능 시간을 제한할 수 있습니다.
  3. Refresh Token 활용:
    Access Token이 만료되었을 때, Refresh Token으로 새로운 Access Token을 발급받습니다.
  4. Scope 제한:
    토큰에 권한(scope)을 명시하여 특정 API만 접근 가능하도록 설정합니다.
  5. IP 및 사용자 에이전트 확인:
    토큰을 사용할 클라이언트의 IP 주소와 브라우저 정보를 확인하여 이상한 요청을 차단합니다.

결론

Bearer Token RESTful API에서 간단하면서도 강력한 인증 방식을 제공합니다. 그러나 보안 관리가 필수적이며, 이를 위해 HTTPS 사용과 짧은 유효기간, Refresh Token 관리 같은 보안 조치를 병행해야 합니다.

728x90
반응형

'컴퓨터시스템' 카테고리의 다른 글

로드밸런스 헬스체크  (0) 2024.10.01
DNS 와 도메인에 대하여  (0) 2024.09.30
스케일링 Scaling  (0) 2024.08.20
.env 파일이란? + 생성하기  (0) 2023.12.15
command line 명령어  (0) 2023.09.12