인증이란??
인증은 어떤 개체의 신원을 확인하는 과정입니다. 개체는 보통 어떤 인증요소를 증거로 제시하여 자신을 인증합니다. 예를 들어 은행에 가서 돈을 인출하려면 하면 은행직원은 누구인지 확인하기 위해 신분증을 제시해 달라고 요청할 수 있습니다. 예시와 같이 모두 신원(인증된 사용자)을 확인하기 위해 인증 절차가 어떻게 진행되는지를 보여줍니다.
온라인에서도 마찬가지 입니다. 신분증 대신 아이디/패스워드, 핸드폰, 이메일 등 인증요소는 하나일 수 도 있고 두개 또는 그 이상일 수도 있습니다.
인가란?
인증과 달리 인가는 어떤 개체가 어떤 리소스에 접근할 수 있는 또는 어떤 동작을 수행할 수 있는지를 검증하는 것, 즉 접근 권한을 얻는 일을 말합니다. 공연장을 예로 들자면 공연장을 입장하기 위해 티켓을 구매한다고 생각한다면, 이 경우 기획사는 신원이 무엇인지에 대해서는 관심이 없고 공연장에 입장할 권한이 있는지 여부에만 관심이 있습니다. 즉 신분증이나 여권 대신 티켓만 있으면 됩니다.
인터넷 기반 앱에서는 일반적으로 토큰이라 부르는 가공물을 사용하여 인가를 다룹니다. 유저가 로그인을 하면 앱은 유저가 무엇을 할 수 있는가에 관심을 갖게 됩니다. 시스템은 인가 토큰을 이용해서 어떤 권한을 부여할지, 즉 리소스 접근 요청을 허용할 지 거부할지를 결정합니다.
인증 & 인가 차이점