[Spring] 인증과 인가

상트리버·2022년 12월 6일
0

Spring 이론

목록 보기
11/23

인증(Authentication)이란?

  • 어떤 개체의 신원을 확인하는 과정이다.
  • 보통 어떤 인증요소를 증거로 자신을 증명한다.
  • 온라인에서는 ID 와 패스워드를 입력하는 행위가 인증이 될 수 있다.
  • 실생활에서는 공공기관에서 신원확인 시 신분증을 보여주는 것을 생각해보면 된다.
  • 여러 개의 절차가 있을 수 있다.
  • 은행의 경우, 본인인증 후 OTP, 보안카드 등의 절차를 추가로 거친다.

인가(Authorization)란?

  • 어떤 리소스에 접근할 수 있는지, 어떤 동작을 수행할 수 있는지 검증한다.
  • 접근 권한을 얻는 일이다.
  • 현실에서는 비행 시 여권과 함께 가져가는 비행기 티켓을 예로 들 수 있다.
  • 여권으로 신분확인이 되더라도 비행기 티켓이 있어야 비행기에 탈 수 있다.
  • 인터넷 기반 앱에서는 보통 토큰 이라 부르는 것을 사용한다.
  • 유저는 자신의 인가 세부사항을 가진 토큰을 통해 서버에 인증받는다.
  • 서버는 유저의 토큰을 보고 권한이 있는지 판단한다.

인증 vs 인가

  • 사실 인증과 인가는 한번에 쓰일 수도 있다. 회사에 출근하면 찍는 지문 인식기는 내가 누구인지도 인식하면서, 내가 회사 출입문을 통과할 수 있도록 회사 내부 접근을 인가하기도 한다.

  • 인증은 인가로 이어질 수 있지만, 인가는 인증으로 이어지지 않을 수도 있다. 편의점에서 구매한 버스카드는 내가 누구인지에 대한 인증 정보는 담고 있지 않지만, 잔액이 충분하다면 얼마든지 버스 탑승을 인가받을 수 있다.

요약

  • 인증은 내가 누구인지 확인하는 행위이다.
  • 인가는 내가 권한이 있는지 확인하는 행위이다
  • 인증은 인가 의사결정의 요소가 될 수 있다.
  • 인가 가공물 (토큰) 로 유저나 디바이스의 신원을 파악하는 방법은 유용하지 않다.

0개의 댓글