본문 바로가기

Spring Boot

[Spring Boot] Web Authentication(웹 인증)

728x90

웹 인증이란?

웹 인증은 HTTP 프로토콜의 특성으로 인해 사용자가 누구인지 확인하고, 권한이 있는지 확인하는 데 사용됩니다. 이는 웹 사이트에서의 본인 신분증과 같은 개념입니다. 사용자가 특정 사이트에서 서버에 요청을 보낼 때마다 꾸준히 인증이 이루어집니다.

웹 사이트에서의 인증 동작 현실 예시:

  1. 술집(홈페이지)에 들어갔을 때 신분증 검사
  2. 술, 음식을 주문할 때마다 신분증 검사
  3. 밖에 잠시 나갔다 왔을 때 신분증 검사

즉, 웹사이트에서는 꾸준히 신분증을 검사하고 있습니다. HTTP 프로토콜 특성을 아직 모르신다면 이 글을 참고하시는 것을 추천합니다. 웹 인증은 웹 서비스의 보안성을 높이며, 사용자 데이터의 무단 접근을 방지하기 위한 중요한 보안 요소입니다.

웹 인증이 없다면?

웹 인증이 없다면, 관리자만 접근할 수 있는 페이지에 일반 유저가 들어가서 사용자의 정보를 빼오거나, 데이터를 무작위로 삭제 및 변경할 수 있습니다. 이는 신분증을 검사하지 않으면 청소년이 술, 담배를 구매하거나, 무면허로 운전할 수 있는 상황과 비슷합니다.

웹 인증의 중요성

웹 인증은 사용자가 누구인지, 어떤 권한을 가지고 있는지 확인하는 절차입니다. 웹 인증은 필수적으로 수행해야 하는 작업으로, 웹 서비스의 보안성과 신뢰성을 높이는 데 매우 중요합니다.

웹 인증의 3가지 절차

  1. 사용자 등록
    • 사용자: 서버에게 아이디, 비밀번호와 같은 인증 정보를 전송합니다.
    • 서버: 해당 정보를 안전하게 저장합니다.
  2. 사용자 인증
    • 사용자: 아이디, 비밀번호를 통해 웹에 인증합니다.
    • 서버: 사용자를 확인하여 적절한 인증 및 인가를 수행합니다.
  3. 세션 관리
    • 사용자: 인증이 완료된 후 웹 서버의 리소스에 접근할 수 있는 권한을 받습니다.
    • 서버: 쿠키, 세션, 토큰 등 적절한 기술을 통해 사용자의 로그인 상태와 권한을 관리합니다.

다양한 인증 방식

  1. ID, PW 기반 로그인
  2. 소셜 로그인 (OAuth2)
    • 예: 카카오톡, 페이스북, 구글 로그인
  3. 이메일 인증
  4. 휴대폰 인증
  5. 다중 인증 요소 (MFA)

웹 인증은 웹 서비스의 보안을 강화하고 사용자 데이터를 보호하기 위한 필수적인 요소입니다. 다양한 인증 방식을 통해 사용자 편의성과 보안성을 높일 수 있습니다.

728x90