Notice
Recent Posts
Recent Comments
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Spring & Java

인증 & 인가 개념 정리 본문

심화 Spring/Spring Security

인증 & 인가 개념 정리

dev.hyuck 2026. 1. 22. 13:55

 

인증 & 인가 개념 다시한번 정리

인증과 인가가 무엇이였는지 다시 한번 잡아 보고 갑시다.

 

인증 ( 401 에러 코드 )

인증 " 너 누구야? " 를 확인하는 과정이겠죠. 

 

개념 

  • 사용자의 신원 (Identity)을 확인하는 절차
  • 클라이언트가 자신이 누구인지를 증명
  • 아이디/비밀번호, 토큰, 인증서 등 다양한 방식 사용

예시 

  • 로그인 시 아이디/비밀번호 입력 -> DB 조회 -> 일치하면 인증 성공
  • JWT 토큰 헤더에 포함 -> 토큰 유효성 검증 -> 인증 성공

결과

  • 인증에 성공하면, 사용자 정보가 보안 컨텍스트에 저장 됨
  • 이 정보를 바탕으로 이후 요청 처리 시 누가 요청 했는지 판단할 수 있음

인가 ( 403 에러코드 )

인가 " 너 이거해도 돼" 를 판단 하는 과정

 

개념

  • 인증된 사용자가 요청한 리소스나 기능에 접근할 권한이 있는지 판단하는 절차
  • 역할 ( Role ), 권한 ( Authority ) 에 따라 접근 여부 결정

예시

  • 관리자만 접근 가능한 /admin 페이지 - > 일반 사용자는 접근 차단
  • 특정 게시물은 작성자만 수정 가능 - > 다른 사용자는 403 Forbidden 

결과

  • 인가에 실패하면 403 Forbidden
  • 인가에 성공하면 요청 처리 진행

 

인증과 인가의 흐름 예시

(( 최초가 정말 중요합니다. ))
(( 서버에서 1. 인증을 먼저 함 ))

[클라이언트 요청]

    ↓
[서버: 인증(Authentication)]
    - 로그인 정보 확인
    - 토큰 유효성 검사
    - 사용자 정보(SecurityContext) 저장
    ↓
[서버: 인가(Authorization)]
    - 요청 URI에 대해 권한 체크
    - 접근 가능 여부 판단
    ↓
[요청 처리 or 차단]

 

스프링 시큐리티에서의 인증 인가

  • 인증 : 사용자의 신원 확인
  • 인가 : 권한 확인
  • 인증 없이 인가 X ( 항상 인증 - > 인가 순서 )
  • 스프링 시큐리티는 이 두 과정을 자동화 해주는 프레임워크