Vue2
Vue with DRF (5) - Authentication & Authorization
MC류짱
2022. 11. 14. 21:38
Authentication - 인증, 입증
- 자신이라고 주장하는 사용자가 누구인지 확인하는 행위
- 모든 보안 프로세스의 첫 번째 단계 (가장 기본 요소)
- 즉, 내가 누구인지를 확인하는 과정
- 401 Unauthorized
- 비록 HTTP 표준에서는 '미승인(unauthorized)'을 명확히 하고 있지만, 의미상 이 응답은
- '비인증(unauthenticated)'를 의미
Authorization - 권한 부여, 허가
- 사용자에게 특정 리소스 또는 기능에 대한 액세스 권한을 부여하는 과정 (절차)
- 보안 환경에서 권한 부여는 항상 인증이 먼저 필요함
- 사용자는 조직에 대한 액세스 권한을 부여 받기 전에 먼저 자신의 ID가 진짜인지 확인하야함
- 서류의 등급, 웹 페이지에서 글을 조회, 삭제, 수정 할 수 있는 방법, 제한구역
- 인증이 되었어도 모든 권한을 부여 받는 것은 아님
- 403 Forbidden
- 401과 다른 점은 서버는 클라이언트가 누구인지 알고 있음
인증 여부 확인 방법
- DRF 공식문서에서 제안하는 인증 절차 방법
인증 방식 중 TokenAuthentication
- 매우 간단하게 구현 할 수 있음
- 기본적인 보안 기능 제공
- 다양한 외부 패키지가 있음
- (중요) settings.py에서 DEFAULT_AUTHENTICATION_CLASSES를 정의
- TokenAuthentication 인증 방식을 사용할 것임을 명시
TokenAuthentication 사용 방법
- User는 발급 받은 Token을 headers에 담아 요청과 함께 전송
- 단, 반드시 아래의 형식을 지켜야함
dj-rest-auth
- 회원가입, 인증(소셜미디어 인증 포함), 비밀번호 재설정, 사용자 세부 정보 검색, 회원 정보 수정 등을 위한 REST API end point 제공
- https://dj-rest-auth.readthedocs.io/en/latest/
- 시작하기 전, auth.User를 accounts.User로 변경 필요
- auth.User로 설정된 DB 제거
- 하지만 이 dj-rest-auth는 기본적으로는 회원 가입 기능이 없음
- 공식 문서의 Registation 참고
- https://dj-rest-auth.readthedocs.io/en/latest/installation.html#registration-optional
- Registation 기능 사용 위해 추가 기능 등록 및 설치 필요
- 이 과정 이후 python manage.py migrate 필요