인증과 인가의 기본 개념
- 인증(Authentication): 사용자의 신원을 확인하는 과정 (놀이공원 입장권)
- 인가(Authorization): 인증된 사용자에게 특정 리소스에 대한 접근 권한을 부여하는 과정 (놀이공원에서만 사용가능)
인증 방법의 발전
3.1. 기본 인증
- 사용자 ID와 비밀번호를 직접 입력
- 보안상 취약점 존재
3.2. 쿠키/세션 기반 인증
- 브라우저의 쿠키를 이용한 사용자 정보 저장 (클라이언트 저장)
- 서버 측 세션 관리의 도입 (서버 저장)
3.3. 토큰 기반 인증
- JWT(JSON Web Token) 활용
- 무상태성(Stateless) 구현으로 서버 부하 감소
- 토큰 기반 인증의 구체적 구현
4.1. 액세스 토큰과 리프레시 토큰
- 액세스 토큰: 짧은 유효기간, 실제 인증에 사용
- 리프레시 토큰: 긴 유효기간, 액세스 토큰 갱신에 사용
4.2. 토큰 기반 인증의 장단점
장점: 서버 확장성 개선, DB 조회 최소화
단점: 토큰 탈취 시 보안 위험
보안 강화 방법
- HTTPS 사용
- HttpOnly 옵션 활용
- 토큰 만료 시간 조절
기타 고려사항
- OAuth를 통한 외부 서비스 인증
- 인증 서버 분리
- SSL/TLS 활용
결론
인증과 인가 구현은 보안과 사용자 편의성 사이의 균형을 맞추는 과정입니다. 서비스의 특성과 요구사항에 맞는 최적의 방식을 선택하는 것이 중요합니다.
'코딩공부 > 개발지식' 카테고리의 다른 글
JWT(JSON Web Token)의 이해와 활용 (0) | 2024.07.28 |
---|---|
OAuth 2.0 쉽게 이해하기: 인증과 인가의 안전한 분리 (0) | 2024.07.28 |
웹 개발의 핵심 개념: 쿠키, 세션, 토큰, 캐시 쉽게 이해하기 (0) | 2024.07.28 |
JWT와 OAuth: 인증과 권한 부여 (0) | 2024.07.28 |
RESTful API: 웹 서비스 설계를 위한 아키텍처 스타일 (0) | 2024.07.24 |