반응형



인증(Authentication)과 인가(Authorization)는 보안에서 가장 기본인데 엄청 자주 헷갈리는 개념이야.
핵심 한 줄로 먼저 정리하면:
인증 = "너 누구야?"
인가 = "너 이거 해도 돼?"
다.
가장 쉬운 비유
회사 건물 생각하면 바로 이해된다.
인증(Authentication)
출입증 검사.
"당신 누구세요?"
확인하는 과정.
즉:
- 로그인
- 비밀번호 확인
- 지문 인식
- OTP
등.
인가(Authorization)
그 다음 단계.
"당신은 어디까지 들어갈 수 있나요?"
를 결정.
예:
- 일반 직원
- 관리자
- 임원
마다 접근 가능한 방이 다름.
웹 서비스로 보면
인증
ID/PW 로그인 성공
즉:
"홍길동 맞네"
확인 완료.
인가
그 이후:
관리자 페이지 접근 가능?
판단.
즉:
"홍길동이긴 한데 관리자냐?"
확인하는 것.
실제 흐름
1. 로그인
→ 인증
2. 권한 확인
→ 인가
순서.
예시로 보면
| 상황 | 인증 | 인가 |
| 로그인 페이지 | 필요없음 | 여부 확인 단계 아님 |
| 로그인 성공 | O | 아직 |
| 관리자 페이지 접근 | 이미 인증됨 | 관리자 권한 필요 |
| 게시글 수정 | 로그인 필요 | 작성자만 가능 |
JWT에서도 구분 중요
예:
{
"userId": "hoon",
"role": "ADMIN"
}
인증
JWT가 유효한가?
- 위조 안 됐나
- 만료 안 됐나
검사.
인가
JWT 안의:
role=ADMIN
보고:
관리자 API 허용 여부
판단.
Spring Security 기준
실무에서 엄청 중요.
인증(Authentication)
UsernamePasswordAuthenticationToken
생성.
즉:
"사용자 신원 확인"
인가(Authorization)
.hasRole("ADMIN")
같은 부분.
즉:
"권한 검사"
왜 분리하냐?
사용자는 확인됐더라도:
모든 기능 허용하면 안 되기 때문
이다.
예시
은행 앱.
인증 성공
"본인 맞음"
하지만 인가 제한
- 내 계좌 조회 가능
- 남 계좌 조회 불가
그래서 인가는 "권한 제어"
라고도 부른다.
대표 방식:
| 방식 | 설명 |
| RBAC | 역할 기반 권한 |
| ACL (액세스 제어 목록) | 객체별 권한 |
| ABAC | 속성 기반 권한( Attribute-Based Access Control) |
RBAC가 실무에서 제일 흔함
예:
| 역할 | 권한 |
| USER | 조회 |
| MANAGER | 수정 |
| ADMIN | 전체 |
인증 방식 종류
1. ID/PW
가장 기본.
2. MFA(Multi-Factor Authentication 다중인증)
- OTP
- 문자
- 지문
추가. 비밀번호 외 추가적인 인증. 보안강화.
3. OAuth/SNS 로그인
- Google 로그인, Apple 로그인, 카카로로 로그인
인증과 인가 혼동하면 생기는 문제
실무에서 자주 터진다.
예:
로그인만 하면
남의 데이터 수정 가능
이면:
인가 체크 누락
문제다.
그래서 보안 사고 대부분은
인증보다 인가 문제
가 많다.
예:
- 관리자 권한 우회
- 다른 사용자 데이터 접근
- URL 직접 접근
등.
핵심 한 줄
정리하면:
인증(Authentication)은
"사용자가 누구인지 확인"이고,
인가(Authorization)는
"그 사용자가 무엇을 할 수 있는지 결정"
이다.
반응형
'system_fundamentals > security_cryptography' 카테고리의 다른 글
| ABAC (0) | 2026.05.15 |
|---|---|
| RBAC (0) | 2026.05.15 |
| 전자서명 원리 (0) | 2026.05.14 |
| DH / ECDHE (0) | 2026.05.14 |
| ECC는 왜 RSA를 대체하는가 (0) | 2026.05.14 |
댓글