🔐 인증과 인가

인증

인증(Authentication)은 사용자가 누구인지 확인하는 과정이다.

인가

인가(Authorization)는 사용자가 어떤 권한을 가지는지 결정하는 과정이다.

🆚 인증과 인가 비교

구분 인증(Authentication) 인가(Authorization)
목적 사용자 신원 확인 권한 확인
시점 먼저 수행 인증 이후 수행
예시 로그인, SSO, OAuth 로그인 RBAC, ACL, URL 접근 제어
결과 사용자가 누구인지 식별 어떤 리소스까지 허용되는지 결정

🧩 인증 방식 예시

  • Basic Authentication: ID/PW를 Base64로 인코딩해 전달한다.
  • Form Authentication: 폼을 통해 로그인하는 방식이다.
  • OAuth 2.0 / OIDC: 외부 인증 위임과 연계에 사용한다.
  • JWT: 토큰 기반 인증 방식이다.

🧩 인가 방식 예시

  • RBAC: 역할을 기준으로 권한을 부여한다.
  • URL 기반 제어: /admin/** 같은 경로를 제한한다.
  • Method 기반 제어: @PreAuthorize 같은 어노테이션을 사용한다.

🧭 Spring Security 흐름

  1. 사용자가 로그인하면 Authentication 객체가 생성된다.
  2. AuthenticationManagerUserDetailsService가 인증을 처리한다.
  3. 인증이 끝나면 SecurityContextHolder에 저장된다.
  4. 이후 요청에서는 SecurityContext를 통해 권한을 판단한다.

연결문서

댓글남기기