인증의 정의

인증은 해당 유저가 실제 유저인지 인증하는 개념

 

인가의 정의

해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념

 


웹 어플리케이션 인증의 특수성

일반적으로 웹은 서버와 클라이언트으로 구성되며 서로 멀리 떨어져있다. 그리고 Http라는 프로토콜을 이용하여 통신하는데, 그 통신은 비연결성(Connectionless) 무상태(Stateless)로 이루어진다.

 

비연결성 무상태?

  • 비연결성

실시간으로 계속 연결되어있어야 하는 채팅이나 게임을 하지않으면 서버와 클라이언트는 실제로 연결하고 있지 않는다. 리소스를 절약하기 위해서인데,  서버는 하나의 요청에 하나의 응답을 내보내고 연결을 끊고 있는다.

 

  • 무상태

서버가 클라이언트 상태를 저장하지 않는다. 각각의 클라이언트의 상태를 저장하는 거 역시 비용과 부담 이 늘어난다. 따라서 서버는 클라이언트가 전에 어떠한 요청을 보냈는지 관심도 없고 알지도 못한다.

 

 


그럼 비연결성 무상태에서 유저가 인증을 통과했다는 사실을 어떻게 유지할 수 있는 걸까?

일반적으로 웹 어플리케이션에서는 두가지 방법을 통해 이를 처리한다.

 

쿠키 - 세션 방식의 인증

서버가 특정 유저가 로그인 되었다는 상태를 저장하는 방식.

인증과 관련된 최소한의 정보를 서버가 저장하고 있어 로그인을 유지시킨다는 개념

 

 

JWT(JSON Web Token) 기반 인증

인증에 필요한 정보들을 암호화시킨 토큰(JWT)을  HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식

 

'Computer Science > Web' 카테고리의 다른 글

HTTP 웹 지식 - URI와 웹 브라우저 요청 흐름  (0) 2023.03.06
HTTP 웹 지식 - 인터넷 네트워크  (0) 2023.03.06
HTTPS  (0) 2023.01.14
XML  (0) 2022.12.28
OAuth 2.0  (2) 2022.12.15

+ Recent posts