인증과 인가 (Authentication & Authorization)

KimSeonGyu·2023년 8월 17일
0
post-thumbnail

인증과 인가 (Authentication & Authorization)

인증

  • 식별가능한 정보로 사용자의 신원 입증하는 과정, 식별 가능한 정보로는 아이디와 비밀번호 혹은 바이오메트릭 정보(지문, 얼굴 인식 등)등 여러 형태로 존재하며 인증된 사용자만이 시스템 또는 어떤 서비스에 접근할 수 있다.

인가

  • 인증된 사용자가 어떤 리소스 또는 서비스에 접근할 수 있는지 결정하는 과정을 의미한다. 즉, 인증된 사용자의 권한과 역할에 기반하여 어떤 작업을 수행할 수 있는지를 제어한다. 예를 들어, 관리자 권한을 가진 사용자만이 특정 기능을 사용하거나 중요한 데이터에 접근할 수 있도록 설정할 수 있다.


만약 사용자가 게시판 웹사이트에 접근하려하면 먼저 로그인을 통해 인증을한 뒤 게시판에서는 사용자에게 글쓰기, 글 수정, 회원정보 확인 및 수정 등 권한을 부여하게 되는 것이다. 이러한 권한 부여 과정을 인가라고 한다.

그리고 이회원 다른 회원의 글은 읽을 수 있지만 다른 회원 글은 수정 및 삭제가 불가하다. 왜냐하면 이 회원에게 다른 회원의 글을 수정 및 삭제하는 권한은 없기 때문이다.

인증

클라이언트가 요청 헤더에 인증 정보를 포함하여 서버에게 보내고, 서버는 이 정보를 확인하여 사용자의 신원을 확인한 후에 결과를 클라이언트에게 응답하는 과정을 인증이라고 한다.

하지만 HTTP 프로토콜의 경우 무상태성(stateless)을 갖는 프로토콜이다. 각각의 요청은 독립적이며 서로 연관관계가 없다. 그렇기에 매번 요청을 보낼때마다 인증이 필요하다. 하지만 이 과정은 비효율적이기 때문에 클라이언트가 한 인증을 유지하기 위해서 브라우저의 도움을 받는다. 이때 사용되는 것이 쿠키, 세션, 토큰등이 존재한다.

세션, 쿠키등은 보안취약하다 그렇기 때문에 토큰을 사용한다. 대표적은로 JWT(Json Web Token)이 존재한다. 이는 다음 게시글에 상세히 다뤄보려 한다.

profile
공부한 내용을 작성하는 블로그 입니다. 수정할 부분이 있다면 편하게 댓글 작성부탁드립니다!

0개의 댓글