개발 일기

[WEB] 인증(Authentication)과 인가(Authorization) 본문

Computer Science/WEB

[WEB] 인증(Authentication)과 인가(Authorization)

개발 일기장 주인 2024. 4. 26. 17:48

인증 (Authentication)

 

인증은 사용자가 특정 서비스에 접근하려고 할 때, 해당 사용자가 누구인지 확인하는 과정이다. 이를 위해 사용자는 일반적으로 식별 가능한 정보를 제공해야 한다. 이 과정은 서비스의 서버가 해당 사용자가 서비스에 등록되어 있는지 확인하고, 제공된 정보가 올바른지 검증하는 과정을 포함한다.
간단한 예시로, 어떤 웹사이트에 로그인하여 글을 작성하려면 사용자는 해당 웹사이트에 등록된 회원이어야 한다. 사용자가 로그인 페이지로 이동하고, 등록된 아이디와 비밀번호를 입력하면, 웹사이트는 해당 정보를 확인하여 사용자를 인증한다. 이때 웹사이트는 입력된 아이디 및 비밀번호가 데이터베이스에 존재하는지 검증한다.

따라서 인증은 시스템에 등록된 사용자의 신원을 입증하는 과정으로, 해당 사용자가 시스템의 보호된 리소스에 접근할 수 있는지를 결정하는데 필수적이다.

 

인가 (Authorization)

 

인증된 사용자가 특정 리소스 또는 기능에 대한 접근 권한이 있는지 확인하는 과정이다. 즉, 이는 인증된 사용자의 신원이 확인된 후(인증이 선행되어야 함)에 이루어지는 단계이다. 인가는 사용자가 시스템의 보호된 리소스에 대한 허가를 관리하며, 사용자가 특정 작업을 수행할 수 있는 권한을 부여하거나 제한한다.

간단한 예시로, 웹 애플리케이션에서 특정 사용자가 로그인한 후에 자신이 작성한 게시물을 수정하거나 삭제할 수 있는지를 확인하는 과정이 인가이다. 이때 시스템은 해당 사용자가 게시물의 작성자인지를 확인하고, 작성자인 경우에만 수정 또는 삭제 작업을 허용한다. 이를 통해 사용자는 자신의 게시물에 대한 권한을 가지며, 다른 사용자의 게시물을 수정하거나 삭제할 수 없다.

따라서 인가는 인증된 사용자에 대한 특정 리소스 또는 기능에 대한 접근 권한을 관리하는 과정으로, 사용자가 시스템의 리소스를 안전하게 이용할 수 있도록 보장한다.

 

401 (Unauthorized - 권한 없음)
: 401 상태 코드는 클라이언트가 리소스에 접근하기 위해 인증이 필요하지만, 인증이 실패하거나 인증 정보가 부족한 경우에 사용된다. 일반적으로 이 상태 코드는 클라이언트가 요청한 리소스에 접근하기 전에 인증해야 함을 나타낸다.
예를 들어, 사용자가 로그인하지 않은 상태에서 보호된 페이지에 접근하려고 할 때 401 상태 코드가 반환될 수 있다.

403 (Forbidden - 금지됨)
: 403 상태 코드는 클라이언트가 요청한 리소스에 접근할 수 있는 권한이 없는 경우에 사용된다.
이는 인증은 성공했지만 해당 사용자가 요청한 리소스에 대한 충분한 권한이 없는 경우에 사용된다.
예를 들어, 인증 자체는 완료된 사용자가 일반 사용자 권한으로 관리자 페이지에 접근하려고 할 때 403 상태 코드가 반환될 수 있다.