공부 및 일상기록

[네트워크] 인증과 인가 본문

개발/네트워크

[네트워크] 인증과 인가

낚시하고싶어요 2023. 1. 18. 14:56

인증(Authentication)과 인가(Authorization)의 차이를 알아보자

 

인증, Authentication

어떤 개체의 신원을 확인하는 과정이다.

보통 어떤 인증요소를 증거로 자신을 증명한다.

온라인에서는 ID와 패스워드를 입력하는 행위가 인증이 될 수 있다.

실생활에서는 공공기관에서 신원확인 시 신분증을 보여주는 것을 생각해보면 된다.

여러개의 절차가 있을 수 있다.

은행의 경우, 본인인증 후 OTP, 보안카드 등의 절차를 추가로 거친다.

 

인가, Authorization

어떤 리소스에 접근할 수 있는지, 어떤 동작을 수행할 수 있는지 검증한다.

접근 권한을 얻는 일이다.

현실에서는 비행 시 여권과 함께 가져가는 비행기 티켓을 예로 들 수 있다.

여권으로 신분확인이 되더라도 비행기 티켓이 있어야 비행기에 탈 수 있다.

인터넷 기반 앱에서는 보통 토큰이라는 것을 사용한다.

유저는 자신의 인가 세부사항을 가진 토큰을 통해 서버에 인증을 받는다.

서버는 유저의 토큰을 보고 권한이 있는지 판단한다.

 

인증 과 인가

사실 인증과 인가는 한번에 쓰일 수 있다. 회사에 출근하면 찍는 출근카드는 내가 누구인지도 인증하면서, 내가 출입할 수 있도록 회사 내부 접근을 인가하기도 한다.

인증은 인가로 이어질수 있지만, 인가는 인증으로 이어지지 않을 수도 있다. 편의점에서 구매한 버스카드는 내가 누구인지에 대한 인증정보는 담고 있지 않지만, 잔액이 충분하다면 버스탑승 인가를 받을 수 있다.

 

요약

인증은 내가 누구인지 확인하는 행위이다.

인가는 내가 권한이 있는지 확인하는 행위이다.

인증은 인가의 의사결정 요소가 될 수 있다.

인가 가공물(ex 토큰)로 유저나 디바이스의 신원을 파악하는 방법은 유용하지 않다.