[Spring] 인증과 인가

thingzoo·2023년 6월 27일
0

Spring

목록 보기
32/54
post-thumbnail

인증과 인가

  • 인증(Authentication)
    • 해당 유저가 실제 유저인지 인증하는 개념
    • 예시: 지문인식, 로그인 등
  • 인가(Authorization)
    • 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념
    • 예시: 관리자 페이지-관리자 권한 등

웹 애플리케이션 인증의 특수성

  1. 일반적으로 서버-클라이언트 구조로 되어있다.
  2. Http 프로토콜을 이용하여 통신한다. 👉🏻 비연결성(Connectionless) 무상태(Stateless)의 특징을 지닌다.

비연결성(Connectionless)

서버와 클라이언트가 연결되어 있지 않다는 것

  • 채팅이나 게임을 제외하고 서버와 클라이언트는 실제로 연결되어 있지 않다.
  • 서버와 클라이언트가 계속 연결되어 있다면, 서버의 비용이 기하급수적으로 늘어난다.
  • 리소스의 절약을 위해 서버는 하나의 요청에 하나의 응답을 보내고 연결을 끊는다.

무상태(Stateless)

서버가 클라이언트의 상태를 저장하지 않는다는 것

  • 기존의 상태를 저장하는 것들도 마찬가지로 서버의 비용과 부담을 증가시킨다.
  • 실제로 서버는 클라이언트가 직전에, 혹은 그 전에 어떠한 요청을 보냈는지 관심도 없고 전혀 알지 못한다.

따라서 사용자 인증을 하고 난 이후에 다른 요청들을 보내더라도 서버는 해당 요청이 인증된 사용자로부터 온 것인지 알 길이 없다. 이러한 HTTP 프로토콜의 특성을 보완하기위해 클라이언트는 매 요청마다 자신이 로그인을 수행했고 자원을 사용할 권리가 있는 사용자임을 서버측에 확인시켜줘야한다. 그래서 요청마다 사용자에 대한 인증이 추가적으로 필요하다.

Reference

🔗 https://www.okta.com/kr/identity-101/authentication-vs-authorization/
🔗 https://velog.io/@hellonayeon/web-authentication

profile
공부한 내용은 바로바로 기록하자!

0개의 댓글