스프링에서 인증과 인가를 처리하는 방식에 대해 설명해보세요.

인증과 인가의 개념과 절차에 대해서 알아야 합니다.

인증과 인가 (자격증명/접근제한)

인증은 애플리케이션이 접속하는 사용자에 대한 권한을 부여하고 인가는 자격 증명을 하는 절차 입니다

로그인과 인증 구현

로그인 인증 처리과정은 요청 - 인증 - 인가의 절차를 가진다.

HTTP 기본 인증 (HTTP Basic Authentication) 매커니즘을 이용하는 방식

서버가 사용자를 식별하기 위해서는 몇가지 복잡한 기술이 존재하는데 그중에서 가장 많이 사용되는 기술이 세션-쿠키 기술입니다

기본 원리

  1. 사용자가 서버에 접속하면 서버는 계속 사용자가 본인임을 증명하기 위해서 간단한 쿠키를 발행해 줍니다
  2. 그 다음부터 사용자는 그 쿠키를 가지고 자신임을 증명합니다
  3. 서버는 해당 쿠키와 같은 문자열을 키(key)로 하여 어딘가에 저장해놓습니다
  4. 이때 시스템 내의 파일이 될 수도 있고(서버가 여러대 일 경우), 메모리 상(단일 서버일 경우) 이 될 수도 있고 DB혹은 Redis가 될 수도 있습니다.

스프링 시큐리티에서도 이와 같이 기본적으로 세션 방식을 채택하고 있습니다 그러나 요즘 JWT같은 토큰 기반의 인증을 사용 합니다.