꿀 떨어지는 코딩 양봉장

Authentication(인증) & Authorization(허가)가 무엇인가? 본문

Language/NestJS

Authentication(인증) & Authorization(허가)가 무엇인가?

nayoon030303 2022. 2. 17. 01:43

Authorization(허가), Autentication(인증)은 대부분의 애플리케이션에서 필수적인 부분들입니다. 

Authentication(인증) & Authorization(허가)가 무엇인가?

1. Authentication(인증)

사용자가 누구인지에 대해서 확인하는 절차입니다(로그인 또는 회원가입을 하는 것)

 

2. Autorization(허가)

사용자에 대한 권한을 허락하는 것입니다. 

왜  필요할까?

서비스를 사용하는 사용자가 누구인지? 언제? 어디서? 어떻게? 사용하고 있는지 파악하기 위해서입니다. 

 

Authentication(인증)

인증은 사용자가 누구인지(identifacation)을 확인하는 절차입니다. 

예를 들면 사용자의 아이디와 비밀번호를 확인하는 과정입니다. 

 

  • 사용자의 비밀번호는 절대로 그대로 DB에 저장하지 않습니다. 
  • DB를 해킹당하면 사용자의 정보가 그대로 노출되고 개발자가 사용자의 정보를 볼 수 있습니다. 

Authorization(허가)

허가란 요청한 request를 실행할 수 있는 권한이 있는 사용자인지 확인하는 절차입니다. 

예를 들어 쇼핑몰 사이트가 있다고 생각해봅시다. 관리자와 고객이 사용할 수 있는 요청 권한이 다를 것입니다. 

관리자는 상품의 가격을 조정하는 요청을 보낼 수 있지만 고객은 그럴 수 없습니다. 

 

Authorization 방법

  • Authentication(인증) 절차를 통해서 사용자에게 access_token을 발급합니다. 
  • 사용자가 request(요청)을 보낼 때 access_token을 같이 보냅니다.
  • 서버에서 사용자가 첨부한 access_token을 검사합니다. 
  • 유저가 권한을 가지고 있다면 요청을 처리합니다.

 

 

'Language > NestJS' 카테고리의 다른 글

NestJS Lifecycle Events  (0) 2023.08.20
NestJS와 Graphql Subscription  (0) 2022.02.03