인증과 인가

  • 보통 sever or client 개발을 학습하거나 어떤 서비스를 개발한다고 할때 가장 처음, 많이 구현하고 학습하는 요소
  • 인증(Authentication)과 인가(Authorization)는 항상 함께 등장하는 개념이면서 사용하기에 헷갈리는 용어
  • 누가, 언제, 어떻게 쓰고 있는가를 파악하기 위해 어떤 사이트에서든 인증, 인가가 있음
  • 인증과 인가는 API에서 가장 자주 구현되는 기능중 하나.
  • 문맥상 어색하지 않은 경우가 있어 이 둘의 차이를 두지 않고 사용하는 경우도 빈번합니다.

 

 

1. 인증이란?

유저가 누구인지 확인하는 절차, 회원가입하고 로그인 하는 것

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

    ex) 은행의 경우 은행에서 업무를 보려면 신원을 확인하기 위해 신분증을 제시합니다.

온라인에서는 보통 ID와 paassword를 입력하여 인증을 수행합니다.

혹은 회원가입할 때 sms로 전달받은 코드를 입력하는 경우도 회원가입을 위한 인증을 수행하는 경우 중 하나라고 볼 수 있습니다.

 

 

2 .인가란?

유저에게 특정 리소스에 대한 권한을 허락하는 것.

ex) 공연장에 입장하기 위해 티켓을 구매하고 제시하는 경우 이 경우 공연기획사에선 여러분의 티켓을 통해 공연장에 입장할 권한이 있는지, 어떤 좌석에 앉을 권한이 있는지 여부를 검사하죠!

 

인증과 달리 인가는 어떤 개체가 어떤 리소스에 접근할 수 있는지 또는 어떤 동작을 수행할 수 있는지를 검증하는 것, 즉 접근 권한을 얻는 일을 말합니다.

 

서버개발 관점에서 보통 token(jwt기반의 경우)을 통해 해당 유저가 해당 리소스에 권한이 있는지 없는지 여부를 판단하여 인가를 다룹니다.(해당 리소스에 대한 접근 권한 여부를 확인)

 

 

정리

인증과 인가에 대해 위에서 예를 들었듯이 은행, 공연장, 공항 입출국 등을 예시로 들을 때 실생활에서는 인증과 인가가 대부분 함께 일어나는 요소이기 때문에 혼란의 원인이 된다고 생각이 듭니다.

ex) 회사 사무실에 출입할 때 사원증을 사용하여 출입을 하는데, 보통 출입증을 대면 인증과 인가가 한꺼번에 일어난다.

함께 일하는 인원들과 소통을 원활하게 하려면 용어에 대한 의미를 확실히 인지하고 잇어야합니다.

인증과 인가는 자주 중복해서 사용되며, 저 또한 처음 학습할 때 자주 의미를 헷갈리곤 해서 두 용어의 의미를 정리해보았습니다 🙂

반응형

+ Recent posts