웹서비스를 개발하거나 또는 보안 점검을 받다 보면 한 번쯤 들어봤을 용어인
Authentication(인증), Authorization(권한) 정리해보려 합니다
1. Authentication(인증), Authorization(권한)이란?
보통 IT용어들은 영어로 된 것들이 대부분이라 단어 자체의 뜻만으로도 이해가 가는 게 있지만
대부분은 IT관점에서 한번 더 생각하며 이해해야 하는 것들이 많은 거 같다
- Authentication : 입증, 증명, 인증
- Authorization : 허가, 인가
2개의 단어도 영어사전으로 의미로만 봤을 때는 IT적으로는 크게 와닿지가 않는다
개인적으로 이해하는 용어는 Authentication(인증), Authorization(권한)으로 이해하려 한다
Authorization의 경우는 인가보다는 권한체크 같은 의미가 더 와닿아 권한으로 이해했다
예시를 통해 더 쉽게 기억해 봐야겠다
2. Authentication(인증), Authorization(권한) 이해를 위한 예시
예시 1)
10층짜리 건물의 회사가 있다고 가정해 보자. 이 회사는 부서별로 층마다 사용을 하고 있다.
보안이 매우 강해 본인이 속한 층 외에 다른 부서에 가서 사원증을 태깅하면 출입이 제한된다
여기서 회사 건물에 진입하기 위해 출입증을 찍고 건물에 진입은 Authentication(인증),
본인이 속한 부서의 층에서 태깅하여 들어가는 행위는 Authorization(권한)이라고 생각
다른 층은 권한이 없어 출입이 되지 않는다
예시 2)
티스토리를 로그인하는 행위는 Authentication(인증), 인증 후에 자신의 블로그는 글쓰기,
카테고리 관리 등 편집메뉴등도 보이지만 다른 사람들의 블로그는 관리자가
써놓은 메뉴만 보이고 편집도 불가한 것. 이것이 Authorization(권한)으로 생각
로그인(Authentication) 해도 타인의 블로그의 경우는 아래의 메뉴는 권한(Authorization)이 없기 때문에
노출되지 않는다
3. Authentication(인증), Authorization(권한) 마치며
요약하면 건물의 공통 출입문 같은 웹 서비스의 로그인과 같은 진입을 위해 ID/패스워드등을 통해 진입하는 행위가 Authentication(인증), 건물 안에 진입 후 층을 이동하듯 실제 웹서비스에 접속 후 메뉴들의 노출이 관리계정, 사용자 1, 사용자 2, 사용자 3 마다 접근 가능한 메뉴가 다른 것은 Authorization(권한)과 연관된다
여기선 간단한 의미정도로만 정리하고
Authentication (비밀번호, 생체인식, 인증앱 등)
Authorization (세션, JWT 등)
다루는 기술적인 부분들도 이후 포스팅에서 정리해 보도록 하겠습니