인증 / 인가 — HTTP부터 JWT까지 (2)
인증(Authentication)과 인가(Authorization)의 차이를 예시와 함께 설명합니다. 로그인과 권한 관리의 핵심 개념을 이해하고 웹 보안의 구조를 명확히 정리해보세요.
인증 / 인가 — HTTP부터 JWT까지 (2)
인증과 인가는 완전히 다른 개념입니다
웹 애플리케이션 보안에서 가장 핵심이 되는 두 축은
바로 인증(Authentication) 과 인가(Authorization) 입니다.
이 둘은 자주 혼용되지만,
실제로는 완전히 다른 개념이며, 처리 시점도 다릅니다.
🧾 인증(Authentication)
사용자가 누구인지 확인하는 절차
실생활 비유
- 출입증을 보여주고 건물에 들어감
- 공항에서 여권 + 탑승권 확인
인증 수단 예시
- ID / 비밀번호
- OTP, 인증번호 (2차 인증)
- 카카오/구글 소셜 로그인 (OAuth2)
- 지문, 얼굴 등 생체 인식
인증이 필요한 시점
- 로그인 시도
- 비밀번호 변경, 계정 삭제 등 민감 요청 시
인증 처리 흐름
1
[사용자] → [ID/PW 제출] → [서버 검증] → [세션 or 토큰 발급]
인증의 결과
서버는 이 사용자가 누구인지 식별 가능한 상태가 됩니다.
🛂 인가(Authorization)
인증된 사용자가 무엇을 할 수 있는지 판단하는 절차
실생활 비유
- 사원증으로 회사에 입장했지만
회의실은 해당 부서만 입장 가능 - 공항 탑승은 가능하지만
라운지는 프리미엄 고객만 이용 가능
인가 방식 예시
- Role 기반: USER / ADMIN / MANAGER
- Owner 기반: 본인 게시글만 수정 가능
- 속성 기반: 지역, 나이, 직책 등 조건에 따라 접근 제한
인가가 필요한 시점
- 관리자 페이지 접근
- 다른 사용자 데이터 수정
- 유료 기능 접근
인가 처리 흐름
1
[인증된 사용자] + [권한 정보] → [자원 접근 여부 판단] → 허용 또는 거부
인가의 결과
- 허용 → 요청 처리됨
- 거부 →
403 Forbidden
응답
🔄 인증과 인가의 관계
항목 | 인증 (Authentication) | 인가 (Authorization) |
---|---|---|
질문 | 너 누구야? | 그거 해도 돼? |
목적 | 사용자 신원 확인 | 권한 판단 및 접근 제어 |
순서 | 먼저 수행됨 | 인증 후 수행 |
결과 | 로그인 성공 | 요청 허용 or 거부 |
실패 시 | 401 Unauthorized | 403 Forbidden |
✅ 인가(Authorization)는 항상 인증(Authentication) 이후에만 가능합니다.
🧩 예시 시나리오
블로그 사이트에서
- 로그인 → 인증 완료
- 본인 글 삭제 요청 → 인가 확인
- 본인 글이면 삭제 가능
- 타인 글이면
403 Forbidden
쇼핑몰에서
- 로그인 → 인증 완료
- 주문 조회 요청 → 인가 확인
- 본인 주문이면 조회 허용
- 타인 주문이면 접근 거부
🧷 마무리 요약
항목 | 설명 |
---|---|
인증 (Authentication) | 사용자의 신원 확인 (로그인 등) |
인가 (Authorization) | 로그인된 사용자의 권한 확인 및 자원 접근 제어 |
이 둘은 웹 보안의 핵심이며,
반드시 분리해서 정확히 이해해야 합니다.
🔜 다음 글 예고
다음 글에서는
세션 기반 인증(Session-based Auth) 의 구조와 작동 방식,
장단점에 대해 상세히 알아보겠습니다.
This post is licensed under CC BY 4.0 by the author.