728x90
대충 OPEN API 연동 or API 개발 시 많이 접하나 정확한 개념을 몰라서 정리
Basic HTTP Authentication
- HTTP는 다른 인증 프로토콜에 맞추어 확장할 수 있는 Authorization 제어 헤더를 제공
- HTTP Authorization 헤더는 서버의 사용자 에이전트임을 증명하는 자격을 포함하여, 보통 서버에서 401 Unauthorized 상태를 WWW-Authenticate 헤더로 먼저 제공
- 클라이언트는 username과 password 값을 :(콜론)으로 합친 뒤, 통채로 Base64 인코딩을 통해 credentials 생성하여 서버로 보냄
- 서버는 credentials 값을 Base64로 디코딩하여 username과 password를 분리하여 인증
Bearer HTTP Authentication
- 로그인 시 서버로부터 token을 발급받고, 이후 요청 시 Authentication 헤더에 토큰을 실어 보냄
- Token을 만들 때 JWT 방식으로 생성하는 것이 특징
- 세션 정보가 클라이언트/서버 각각의 저장소에 흩어져있지 않고, 토큰 자체에 내장
- 무상태 HTTP를 유지할 수 있기 때문에 속도도 빠르고 보안도 뛰어남
둘중 선택시 Bearer Authentication 이유는
- Basic은 username과 pasword를 Base64 인코딩하는 방식이라, Base64는 별도의 key 없이도 복호화가 가능하므로 보안상 X
- 헤더와 페이로드를 가지고 서명필드를 생성하므로 데이터 위변조 방지
- Bearer에서 사용하는 OAuth 2.0 방식의 인증은 인증정보를 다른 웹서비스에 전달가능하므로 확장성이 매우 높음
'OTHER' 카테고리의 다른 글
[OTHER] 모놀리식 아키텍처 (0) | 2021.07.12 |
---|---|
[NETWORK] Polling / Long Polling / Streaming (0) | 2021.06.10 |
[OTHER] 블록킹 / 논블록킹과 동기 / 비동기 (0) | 2021.06.07 |
[OS] 가상화 (0) | 2021.06.05 |
[NETWORK] CNAME과 A RECODE (0) | 2021.06.02 |