인증은 어떤 개체의 신원을 확인하는 과정이다. 개체는 보통 어떤 인증요소를 증거로 제시하여 자신을 인증한다.
온라인에서는 아이디와 패스워드를 입력하거나, 휴대폰에 전달된 SMS에 적혀있는 코드를 입력하는게 인증에 해당된다.
즉 사용자는 사용자와 시스템간에 공유되는 합의된 정보를 제공하여 자신의 신원을 증명한다.
인증 요소는 하나일수도, 그 이상일수도 있다.
인증과 달리 인가는 어떤 개체가 어떤 리소스에 접근할 수 있는지 또는 어떤 동작을 수행할 수 있는지를 검증하는 것, 즉 접근 권한을 얻는 일을 말한다.
인터넷 기반 앱에서는 일반적으로 토큰이라 부르는 가공물을 사용하여 인가를 다룬다.
유저가 로그인을 하면 앱은 사용자 신원을 바탕으로 인가 세부사항을 가진 토큰을 생성하게 된다.
시스템은 인가 토큰을 이용해서 어떤 권한을 부여할 지, 즉 리소스 접근 요청을 허용할 지 거부할지를 결정한다.
인증은 사용자가 누구인지 확인하는 과정이고, 인가는 그 사용자에게 특정한 기능을 사용할 권한을 허가하거나 거부하는 행위이다.
이렇게 본다면 인증은 인가로 이어질 수 있지만, 인가는 인증으로 이어지지 않을 수 있다.