인증(Authentication)과 인가(Authorization)
인증, Authentication
내가 누군지 알아? 여기 내 명함 봐봐! by 40대 꼰대
- 어떤 개체의 신원을 확인하는 과정이다.
- 보통 어떤 인증요소를 증거로 자신을 증명한다.
- 온라인에서는 ID 와 패스워드를 입력하는 행위가 인증이 될 수 있다.
- 실생활에서는 공공기관에서 신원확인 시 신분증을 보여주는 것을 생각해보면 된다.
- 여러 개의 절차가 있을 수 있다.
- 은행의 경우, 본인인증 후 OTP, 보안카드 등의 절차를 추가로 거친다.
인가, Authorization
당신의 신분은 확인 되었지만, 20대만 출입 가능합니다. by 클럽 문지기
- 어떤 리소스에 접근할 수 있는지, 어떤 동작을 수행할 수 있는지 검증한다.
- 접근 권한을 얻는 일이다.
- 현실에서는 비행 시 여권과 함께 가져가는 비행기 티켓을 예로 들 수 있다.
- 여권으로 신분확인이 되더라도 비행기 티켓이 있어야 비행기에 탈 수 있다.
- 인터넷 기반 앱에서는 보통 토큰 이라 부르는 것을 사용한다.
- 유저는 자신의 인가 세부사항을 가진 토큰을 통해 서버에 인증받는다.
- 서버는 유저의 토큰을 보고 권한이 있는지 판단한다.
인증 vs 인가
사실 인증과 인가는 한번에 쓰일 수도 있다. 회사에 출근하면 찍는 지문 인식기는 내가 누구인지도 인식하면서, 내가 회사 출입문을 통과할 수 있도록 회사 내부 접근을 인가하기도 한다.
인증은 인가로 이어질 수 있지만, 인가는 인증으로 이어지지 않을 수도 있다. 편의점에서 구매한 버스카드는 내가 누구인지에 대한 인증 정보는 담고 있지 않지만, 잔액이 충분하다면 얼마든지 버스 탑승을 인가받을 수 있다.
요약
- 인증은 내가 누구인지 확인하는 행위이다.
- 인가는 내가 권한이 있는지 확인하는 행위이다
- 인증은 인가 의사결정의 요소가 될 수 있다.
- 인가 가공물 (토큰) 로 유저나 디바이스의 신원을 파악하는 방법은 유용하지 않다.
레퍼런스
반응형
'보안' 카테고리의 다른 글
스프링 시큐리티에서 Authority 와 Role 의 차이는? (2) | 2023.12.05 |
---|---|
리프레시 토큰 (refresh token) 을 사용하는 이유를 알아보자 (0) | 2022.10.13 |
Method Security of 스프링 시큐리티 (0) | 2022.05.07 |
CSRF 공격 정리 (feat. 스프링 시큐리티) (0) | 2022.05.03 |
JWT(Json Web Token) 이란 무엇이며 왜 사용하는가? (0) | 2022.05.03 |