인증과 인가
🔐 인증과 인가
인증
인증(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 흐름
- 사용자가 로그인하면 Authentication 객체가 생성된다.
AuthenticationManager와UserDetailsService가 인증을 처리한다.- 인증이 끝나면
SecurityContextHolder에 저장된다. -
이후 요청에서는
SecurityContext를 통해 권한을 판단한다.
댓글남기기