AuthorizationAuthorization은 클라이언트가 서버에 자신의 자격 증명(credentials)을 제시해 인증하는 요청 헤더입니다. 스킴(Basic·Bearer·Digest 등)과 그에 맞는 자격 값을 담으며, 보호된 리소스 접근의 핵심 수단입니다.
동작은 챌린지-응답 흐름을 따릅니다. 보호된 리소스에 인증 없이 접근하면 서버가 401 Unauthorized와 함께 `WWW-Authenticate` 헤더로 요구하는 스킴을 알려주고, 클라이언트는 그 스킴에 맞춘 Authorization 헤더를 붙여 재요청합니다. 인증은 성공했지만 권한이 없으면 403 Forbidden이 반환됩니다(401과 403의 구분).
가장 흔한 스킴은 두 가지입니다. Basic은 `user:password`를 base64로 인코딩할 뿐 암호화가 아니므로 반드시 HTTPS에서만 써야 합니다. Bearer는 OAuth 2.0/JWT 토큰을 그대로 실어 보내는 방식으로, 토큰을 가진 자가 곧 권한자이므로 토큰 유출은 계정 탈취와 같습니다.
이름은 'Authorization'이지만 실제로는 인증(authentication) 정보를 주로 담습니다. 프록시 인증은 별도 헤더인 `Proxy-Authorization`을 사용합니다.
Authorization: <auth-scheme> <credentials>e.g. Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Basic <base64> | `user:password`를 base64로 인코딩(암호화 아님). 반드시 HTTPS와 함께 사용. |
Bearer <token> | OAuth 2.0/JWT 토큰을 그대로 실어 보내는 방식. API 인증에서 가장 흔함. |
Digest ... | 챌린지-응답 해시 방식. 평문 비밀번호를 전송하지 않지만 오늘날 드물게 사용. |