인증(Authentication)

어떤 개체(사용자 또는 장치)의 신원을 확인하는 과정입니다.

해당 개체는 보통 어떤 인증요소를 증거로 제시하여 자신을 인증합니다.

가장 간단한 예시로는 ID와 PW를 통해 로그인하는 행위를 인증이라 할 수 있죠. (인가는 인증 이후의 프로세스입니다.)

인증에 대한 일반적인 접근 방식

상황에 따라 인증 요소를 2가지 이상 성공적으로 확인해야만 시스템에 액세스할 수 있는 경우도 있습니다. 이와 같이 동시에 여러 인증이 필요한 경우, 다중 요소 인증(MFA) 요건이 배포되어 비밀번호의 한계를 넘어 보안을 강화하는 경우도 많습니다.

즉, 인증요소는 하나일 수도 있고 두 개(two-factor) 또는 그 이상(multi-factor)일 수도 있다는 것입니다.

인가(Authorization)

어떤 개체가 어떤 리소스에 접근할 수 있는지 또는 어떤 동작을 수행할 수 있는지를 검증하고 사용자에게 특정 리소스나 기능에 액세스할 수 있는 권한을 부여하는 것, 즉 접근 권한을 얻는 일을 말합니다.

인터넷 기반 어플리케이션에서는 일반적으로 토큰이라 부르는 가공물을 사용하여 인가를 다룹니다. 유저가 로그인을 하면 앱은 유저가 무엇을 할 수 있는가에 관심을 갖게 되는데 이때, 사용자 신원을 바탕으로 인가 세부사항을 가진 토큰을 생성하게 됩니다.

그 이후, 시스템은 인가 토큰을 참조해 사용자에게 어떤 권한을 부여할 지, 즉 리소스 접근 요청을 허용할 지 거부할지를 결정합니다.

다시 말해 인증된 사용자가 어떠한 자원에 접근할 수 있는지를 확인하는 절차가 바로 인가이죠. 로그인을 예시로 들었듯이 거의 모든 웹 사이트에서는 인증/인가를 필요로 합니다.