BasicAuthentication
일반인증. username 및 password에 대해 서명된 HTTP 기본 인증을 사용한다. 매번 유저 정보(이름,비번)를 넘겨야하기 때문에 보안상 위험하다. 실제 서비스에 사용하기 보다는 테스트용으로 적절하다.
TokenAuthentication
토큰인증. 간단한 토큰 기반 HTTP 인증 체계를 사용한다. 기본 데스크톱 및 모바일 클라이언트와 같은 client-server 관계에 적합하다.
SessionAuthentication
세션 인증. Session에 저장되는 정보를 통해 인증한다. 외부 서비스서는 사용할 수 없고, 웹 사이트와 동일한 session context에서 실행 중인 AJAX 클라이언트에 적합하다.
RemoteAuthentication
존재하지 않는 사용자에 대한 정보를 관리한다. user 정보가 다른 서비스에서 관리하는데 사용된다.
Custom Authentication
Authentication을 직접 커스텀한다.
AllowAny
기본값. 인증, 비인증 상관 없이 API에 액세스할 수 있다.
IsAuthenticated
등록된 사용자만 API에 액세스할 수 있다.
IsAdminUser
관리자 중 일부만 API에 액세스할 수 있다(User.is_staff = True
).
IsAuthenticatedOrReadOnly
인증된 유저에게만 쓰기 권한을 허용한다. 비인증 유저는 읽기 권한만 허용한다.
DjangoModelPermissions
인증된 유저가 관련 모델에 권한이 할당된 경우에만 허용한다. Django .queryset
속성 또는 get_queryset()
메서드가 있는 뷰에만 적용된다.
DjangoModelPermissionOrAnonReadonly
DjangoModelPermissions와 유사하지만 비인증 유저가 읽기 권한을 가질 수 있다.
DjangoObjectPermissions
모델에 대한 권한이 할당된 경우 허용된다.
Custom Permission
Permission을 직접 커스텀한다.
[참고 사이트]