Hanpy's Blog

두 글자 이상 입력하세요.

Backend · Security

웹 서비스 인증(Authentication)

웹 서비스 개발에서 필수인 인증(Authentication) 개념, 필요성, 기본 흐름, 인가(Authorization) 차이까지 알아봅시다.

Hanpy약 3분
시리즈인증과 인가1 / 8
  1. 01웹 서비스 인증(Authentication)지금 읽는 글
  2. 02인가(Authorization)
  3. 03SSO(Single Sign-On) 이해하기: 하나의 로그인으로 여러 서비스 이용하기
  4. 04소셜 로그인 이해하기: OAuth 2.0 흐름과 Access Token 발급 과정 정리
  5. 05JWT 기반 로그인 구현 흐름: Access Token, Refresh Token
  6. 06IdP와 SP 쉽게 이해하기: SSO가 어떻게 동작하는가
  7. 07SAML 쉽게 이해하기: 기업에서 아직도 SAML을 쓰는 이유
  8. 08OpenID Connect(OIDC) 쉽게 이해하기: OAuth 2.0 위에서 로그인 기능을 만든 이유
시리즈 목차 보기 →

웹 서비스는 누구나 접근할 수 있는 환경 위에서 동작합니다. 따라서 서비스는 요청을 보낸 사용자가 실제로 등록된 사용자이며, 접근 권한이 있는지 식별할 수 있어야 합니다. 이때 사용자의 신원을 확인하는 기본 절차가 바로 인증(Authentication) 입니다.


인증(Authentication)이란 무엇인가

인증(Authentication) 은 사용자가 "내가 누구인지"를 증명하는 과정입니다. 예를들면, 로그인 시 아이디와 비밀번호를 입력하고 서버가 이를 확인하는 과정을 인증( =사용자의 신원 확인 )이라고 합니다. 인증을 통해 서비스는 사용자를 식별하고, 이후 사용자별 데이터 및 기능 제공이 가능해집니다.


인증의 필요이유

인증이 없다면 다음과 같은 보안 문제가 발생할 수 있습니다.

문제 상황위험성
로그인 없이 다른 사용자 데이터 조회개인정보 유출
권한 없는 사용자에 의한 데이터 변경서비스 신뢰도 붕괴
악의적 사용자에 의한 시스템 공격서비스 중단 또는 파괴

따라서 인증은 단순 기능이 아니라 보안과 서비스 신뢰성의 핵심 요소입니다.


인증(Authentication)의 기본 처리 흐름

  1. 사용자가 로그인 정보(아이디/비밀번호)를 입력합니다.
  2. 서버는 입력값을 데이터베이스 정보와 비교합니다.
  3. 일치할 경우 사용자 인증을 성공 처리합니다.
  4. 서버는 세션(Session) 또는 JWT 토큰을 발급합니다.
  5. 사용자는 이후 요청마다 해당 인증 정보를 함께 전송합니다.
  6. 서버는 인증 정보를 확인하고 요청이 누구의 것인지 식별합니다.

사실 처음 생각해보면 비밀번호를 함께 보내면, 보안이 지켜진다고 생각할 수 있습니다. 그러나 매 요청마다 비밀번호를 보내면 탈취 위험이 크기 때문에 세션(Session) 또는 JWT(Token) 같은 안전한 인증 수단이 사용됩니다.


광고

인증(Authentication)과 인가(Authorization)의 차이

구분의미질문예시
인증(Authentication)사용자가 누구인지 확인누구인가?로그인
인가(Authorization)해당 사용자가 무엇을 할 수 있는지 확인어떤 권한을 가지는가?관리자 페이지 접근 권한

가장 큰 차이점은 인증이 되어야 인가 가능하다는 점입니다. 일반 사용자와 admin사용자의 권한이 다르듯 로그인했다고 해서 모든 기능을 사용할 수 있는 것은 아닙니다. 인가에 대해서는 다음 블로그에서 알아봅시다.


정리

  • 인증은 사용자가 누구인지 증명하는 과정입니다.
  • 인증은 보안의 출발점이며 서비스 안정성을 유지하는 필수 요소입니다.
  • 인증은 세션(Session) 또는 JWT 방식으로 유지됩니다.
  • 인가는 인증 이후 사용자가 수행 가능한 작업 범위를 결정합니다.

참고자료

Hanpy백엔드·인프라 엔지니어 · AI 트렌드 정리 중
About 보기