session 4

인증과 인가

인증과 인가의 특징은 정확히 무엇이고 무엇이 다를까? 정확하게 짚고 넘어가보자. ✅ 인증 인증은 사용자의 신원을 검증하는 행위로 보안 프로세스에서 첫 번째 단계이다. 아파트로 예를 들면 주민이 아파트 공동 현관문에 출입 카드를 대는 것을 인증이라고 볼 수 있다. 사용자의 신원을 검증하는 방법은 여러가지가 있을 수 있지만 대체적으로 비밀번호를 사용한다. 사용자가 올바른 비밀번호를 입력했다면 시스템은 인증을 통해 유효하다고 판단하고 엑세스를 허용한다. ✅ 인가 인증과 조금 다르게 인가는 사용자가 어떤 리소스에 접근할 수 있는지, 또는 어떤 동작을 수행할 수 있는지 검증하는 것이다. 예를 들면 어떤 커뮤니티 홈페이지에 사용자로서 인증을 받고 서비스를 이용하고 있다고 볼 때, 인증된 사용자이기 때문에 글을 남길..

Computer Science 2023.04.02

쿠키(Cookie)와 세션(Session)

✅ 쿠키와 세션을 사용하는 이유 HTTP 프로토콜의 특징이자 약점을 보완하기 위해서 사용된다. HTTP 프로토콜의 특징은 다음과 같다. 🔎 1. Connctionless 프로토콜 (비연결 지향) 클라이언트가 서버에 요청(Request)을 했을 때, 그 요청에 맞는 응답(Response)을 보낸 후 연결을 끊는 처리 방식이다. HTTP는 먼저 클라이언트가 request를 서버에 보내면, 서버는 클라이언트에게 요청에 맞는 response를 보내고 접속을 끊는 특성이 있다. HTTP가 TCP위에서 구현되었기 때문에 (TCP는 연결지향, UDP는 비연결 지향) 네트워크 관점에서 keep-alive는 옵션으로 connectionless의 연결비용을 줄이는 것을 장점으로 비연결지향이라 한다. 🔎 2. statele..

Computer Science 2023.02.08

[DRF] 게시판에 Authentication과 Permission 적용하기

게시판을 작성하는데 있어서 유저가 로그인이 되어있는지 아닌지를 구별해줄 필요성이 있다. 익명 게시판이 아닌경우에는 글을 작성하는 사용자가 로그인 상태인지를 확인해야 하는데 이때 사용하는 개념이 authentication과 permission이다. ✅ Authentication 먼저 authentication에 대해 먼저 알아보면 authentication은 인증이라는 뜻으로 특정 서비스를 사용하는 데 있어 사용자의 신원(회원/비회원/관리자 등)을 확인하는 절차를 의미한다. 즉, user의 id와 password를 확인하는 것이라고 생각할 수 있다. Django의 REST Framework authentication의 종류로는 크게 5가지가 있다. 1. BasicAuthentication HTTP 제어 h..

Python/DRF 2023.01.29

세션 vs 토큰(JWT) 인증의 차이

✅ 인증(Authentication)과 인가(Authorization) 세션과 토큰에 대해 알아보기 이전에 인증과 인가가 무엇인지 부터 알아야할 필요가 있다. 인증과 인가는 시스템의 자원을 적절하고 유효한 사용자에게 전달하고 공개하는 방법이다. ✅ 인증 (Authentication) 인증은 쉽게 말해 로그인이다. 클라이언트가 자신이라고 주장하고 있는 사용자가 맞는지를 검증하는 과정이다. 내가 로그인 화면에서 emhaki와 패스워드를 입력해 제출하면 서버에서는 내가 emhaki 유저가 맞는지 확인한다. ✅ 인가 (Authorization) 인가는 인증 이후에 행해지는 작업으로, 인증된 사용자에 대한 자원에 대한 접근 확인 절차를 의미한다. 인증을 해서 로그인이 되었다면, 유저는 다양한 활동을 하게 될 것이..

Computer Science 2023.01.06
728x90