본문 바로가기

WEB개발/WEB, WAS

HTTP Authentication

 

1. Basic Authentication

 : 클라이언트가 서버에 리소스를 요청할 때, 인증이 필요한 경우 서버는 401 Unauthorized 응답을 반환하고, WWW-Authenticate 헤더를 통해 인증 방식을 지정합니다.

 

인증 헤더 생성: 클라이언트는 사용자 이름과 비밀번호를 "username:password" 형식으로 결합하고, 이를 Base64로 인코딩하여 Authorization 헤더를 생성합니다.

 
username:password
=>BASE64인코딩 : dXNlcm5hbWU6cGFzc3dvcmQ=

 

GET /protected/resource HTTP/1.1 Host: example.com Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

 

 

2. Bearer Token Authentication

 

주로 OAuth 2.0을 사용하여 구현됩니다. 클라이언트는 서버로부터 액세스 토큰을 받은 후, 해당 토큰을 사용하여 보호된 리소스에 접근합니다.

API에 접근할 때 일반적으로 사용됩니다.

 

 

3. JWT (JSON Web Token)

 

사용자 인증 후 서버가 클라이언트에게 발급하는 토큰입니다. 이 토큰은 사용자의 정보를 포함하며, 서명되어 있어 클라이언트가 이후 요청 시 이 토큰을 사용하여 인증을 받을 수 있습니다.

 

세션 상태를 유지할 필요 없이, 각 요청에 대한 인증 정보를 포함할 수 있습니다. 또한, 토큰의 만료 시간을 설정할 수 있어 보안성을 높일 수 있습니다.

Authorization: Bearer <jwt_token>

 

 

4. Digest Authentication

  Basic Authentication의 보안성을 강화한 방식입니다. 사용자 이름, 비밀번호, 요청 URL 및 서버에서 생성한 nonce 값을 사용하여 해시 값을 생성하고 이를 전송합니다. 해시 값이므로 비밀번호가 네트워크를 통해 노출되지 않습니다. 비밀번호를 전송하지 않아도 되므로 보안이 강화됩니다.

 
Authorization: Digest username="user", realm="example.com", nonce="nonce", uri="/resource", response="hashed_value"

 

 

 

'WEB개발 > WEB, WAS' 카테고리의 다른 글

코헤런스 (Coherence)  (0) 2025.03.26
Tomcat - Jasper (JSP Engine)  (0) 2025.03.12
Class Loader & Hot Deploy  (0) 2021.09.23
Jenkins & SVN or Git & Docker  (0) 2021.07.29
TheadLocal & MDC & Log4j2  (0) 2021.07.26