투케이2K

68. (Network/네트워크) Http 요청 헤더 (Header) Authorization Basic 인증 및 Bearer 인증 차이 정리 본문

Network

68. (Network/네트워크) Http 요청 헤더 (Header) Authorization Basic 인증 및 Bearer 인증 차이 정리

투케이2K 2024. 10. 4. 19:50

[구 분]

구분 : Network / 네트워크

제목 : Http 요청 헤더 (Header) Authorization Basic 인증 및 Bearer 인증 차이 정리

 

[설 명]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 환경 : Web / HTTP

- 기술 : Authorization , Basic , Bearer

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[사전) Http 헤더 Authorization 간랸 설명]
// --------------------------------------------------------------------------------------

1. Authorization 은 Http 요청 시 헤더 값에 추가 되며, 인증 정보를 전달 할 때 사용 됩니다.


2. Authorization 에는 서버의 사용자 에이전트임을 증명하는 자격을 포함하여 전달해야하며, 
   인증 정보가 올바르지 않은 경우 서버에서는 401 , 403 에러 값을 반환할 수 있습니다.

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[Basic 인증 간략 설명]
// --------------------------------------------------------------------------------------

1. Basic 인증은 기본적인 인증 방식으로 base64 로 인코딩 된 사용자 id, pw 를 헤더에 추가해 인증을 요청하는 방식입니다

  >> Authorization : Basic base64 인코딩 문자열


2. 서버에서는 헤더에 포함 된 Basic base64 인코딩 문자열 값을 읽어 복호화해 사용자 인증 처리를 수행합니다


3. Basic 인증은 가장 쉽게 접근할 수 있는 친근한 방법 이지만, 세부 설정 및 보안적으로 불안한 요소가 있어 결제 정보 전송 등 민감 API 요청 시에는 잘 사용되지는 않습니다

  >> SSL/TLS 설정이 되어 있는 서버에서는 Basic 방식을 사용해서 요청하는 경우도 있음 (보안 설정이 되어 있는 환경)


4. Basic 인증은 사용자 정보를 서버에 저장하기 때문에 사용자가 많을 수록 서버에 부담이 될 수 있습니다.

  >> 사용자 정보를 DB 확인 후 비즈니스 로직을 처리 하기에는 응답 시간이 느려, Redis 등 에 서버 메모리에 사용자 정보 저장 후 비교하는 방식으로 사용

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[Bearer 인증 간략 설명]
// --------------------------------------------------------------------------------------

1. Bearer 인증은 OAuth 2.0 프레임워크에서 사용하는 토큰 인증 방식으로 헤더에 16진수 문자열 또는 JWT (JSON Web Token) 문자열을 전송해 인증을 요청하는 방식입니다

  >> Authorization : Bearer 토큰 문자열
  >> JWT 문자열을 전송하기 위해서는 사전 JWT 토큰 발급 후 해당 값을 헤더에 넣어 인증 요청 수행


2. Bearer 인증은 기본 Basic 인증 보다 추가 세부 설정이 가능 하며, 보안적으로도 더 안전해 Http Authorization 인증 시 많이 사용되고 있습니다

  >> Bearer 는 토큰 기반 인증 방식이므로 요청할 때마다 아이디와 비밀번호를 전송할 필요가 없습니다


3. Bearer 인증은 SSL/TLS 를 사용하는 서버 인증 시 사용되며, 쉽게 토큰 값을 복호화 할 수 없습니다


4. Bearer 인증을 사용하기 위해서는 인증 서버를 구축하거나 외부 인증 서비스를 이용해야 하므로 초기 설정이 복잡할 수 있습니다

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[Web Doc Authorization 설명]

https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Authorization


[JWT 개념 설명]

https://blog.naver.com/kkh0977/222934042760?trackingCode=blog_bloghome_searchlist


[JWT 토큰 갱선 처리 로직]

https://blog.naver.com/kkh0977/223604705723?trackingCode=blog_bloghome_searchlist


[NodeJs - JWT 토큰 생성 방법]

https://blog.naver.com/kkh0977/223312598939?trackingCode=blog_bloghome_searchlist


[NodeJs - JWT 토큰 유효성 검증]

https://blog.naver.com/kkh0977/223311615955?trackingCode=blog_bloghome_searchlist


[NodeJs- JWT 토큰 갱신 방법]

https://blog.naver.com/kkh0977/223312630682?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------

 

반응형
Comments