Auth0란?
Auth0는 인증(Authentication)과 인가(Authorization)를 SaaS로 제공하는 플랫폼입니다. 직접 로그인 시스템을 구축하지 않아도 안전하고 표준화된 인증을 빠르게 적용할 수 있습니다.
주요 특징
| 항목 | 설명 |
|---|---|
| 소셜 로그인 | Google, GitHub, Apple 등 30개 이상의 소셜 로그인 지원 |
| 유니버설 로그인 | Auth0가 제공하는 로그인 페이지로 보안 부담 최소화 |
| MFA | SMS, OTP, 이메일 등 다단계 인증 기본 제공 |
| RBAC | 역할 기반 접근 제어 내장 |
| 표준 프로토콜 | OAuth 2.0, OpenID Connect, SAML 지원 |
| 무료 플랜 | 월 25,000 MAU까지 무료 |
핵심 개념
Tenant
Auth0의 격리된 작업 공간입니다. 프로젝트별로 tenant를 분리하여 사용합니다.
Application
Auth0에 등록하는 클라이언트 앱입니다. 각 Application마다 고유한 Client ID와 Client Secret이 발급됩니다.
- Regular Web Application — 서버 사이드 렌더링 앱 (Next.js에 해당)
- Single Page Application — React, Vue 등 SPA
- Native — 모바일 앱
- Machine to Machine — 서버 간 통신
Connection
사용자가 로그인할 수 있는 방법(수단)입니다.
- Database — 이메일/비밀번호 로그인
- Social — Google, GitHub 등 소셜 로그인
- Enterprise — SAML, Active Directory 등
인증 흐름 (Authorization Code Flow)
Next.js 같은 서버 사이드 앱에서는 Authorization Code Flow를 사용합니다.
1. 사용자가 로그인 버튼 클릭
2. Auth0 로그인 페이지로 리다이렉트
3. 사용자가 인증 완료
4. Auth0가 Authorization Code와 함께 앱으로 리다이렉트
5. 서버에서 Code를 Access Token으로 교환
6. Access Token으로 사용자 정보 조회
왜 Auth0를 사용하나요?
로그인 시스템을 직접 만들면 비밀번호 해싱, 세션 관리, 토큰 갱신, 보안 취약점 대응 등 고려할 것이 매우 많습니다. Auth0는 이 모든 것을 대신 처리해 줍니다.
다음 단계
Auth0의 기본 개념을 이해했다면 Next.js에 Auth0 적용하기에서 실제 프로젝트에 적용해 보세요.