인증과 인가 (Authentication & Authorization)
인증
인가
만약 사용자가 게시판 웹사이트에 접근하려하면 먼저 로그인을 통해 인증을한 뒤 게시판에서는 사용자에게 글쓰기, 글 수정, 회원정보 확인 및 수정 등 권한을 부여하게 되는 것이다. 이러한 권한 부여 과정을 인가라고 한다.
그리고 이회원 다른 회원의 글은 읽을 수 있지만 다른 회원 글은 수정 및 삭제가 불가하다. 왜냐하면 이 회원에게 다른 회원의 글을 수정 및 삭제하는 권한은 없기 때문이다.
인증
클라이언트가 요청 헤더에 인증 정보를 포함하여 서버에게 보내고, 서버는 이 정보를 확인하여 사용자의 신원을 확인한 후에 결과를 클라이언트에게 응답하는 과정을 인증이라고 한다.
하지만 HTTP 프로토콜의 경우 무상태성(stateless)을 갖는 프로토콜이다. 각각의 요청은 독립적이며 서로 연관관계가 없다. 그렇기에 매번 요청을 보낼때마다 인증이 필요하다. 하지만 이 과정은 비효율적이기 때문에 클라이언트가 한 인증을 유지하기 위해서 브라우저의 도움을 받는다. 이때 사용되는 것이 쿠키, 세션, 토큰등이 존재한다.
세션, 쿠키등은 보안취약하다 그렇기 때문에 토큰을 사용한다. 대표적은로 JWT(Json Web Token)이 존재한다. 이는 다음 게시글에 상세히 다뤄보려 한다.