[DRF]Authentication & Permission

박민하·2022년 9월 30일
0

DRF

목록 보기
9/9

✅ Authentication(인증)

Django REST framework - Authentication 공식문서

  1. BasicAuthentication
    일반인증. username 및 password에 대해 서명된 HTTP 기본 인증을 사용한다. 매번 유저 정보(이름,비번)를 넘겨야하기 때문에 보안상 위험하다. 실제 서비스에 사용하기 보다는 테스트용으로 적절하다.

  2. TokenAuthentication
    토큰인증. 간단한 토큰 기반 HTTP 인증 체계를 사용한다. 기본 데스크톱 및 모바일 클라이언트와 같은 client-server 관계에 적합하다.

  3. SessionAuthentication
    세션 인증. Session에 저장되는 정보를 통해 인증한다. 외부 서비스서는 사용할 수 없고, 웹 사이트와 동일한 session context에서 실행 중인 AJAX 클라이언트에 적합하다.

  4. RemoteAuthentication
    존재하지 않는 사용자에 대한 정보를 관리한다. user 정보가 다른 서비스에서 관리하는데 사용된다.

  5. Custom Authentication
    Authentication을 직접 커스텀한다.

✅ Permission(허가)

Django REST framework - Permissions 공식문서

  1. AllowAny
    기본값. 인증, 비인증 상관 없이 API에 액세스할 수 있다.

  2. IsAuthenticated
    등록된 사용자만 API에 액세스할 수 있다.

  3. IsAdminUser
    관리자 중 일부만 API에 액세스할 수 있다(User.is_staff = True).

  4. IsAuthenticatedOrReadOnly
    인증된 유저에게만 쓰기 권한을 허용한다. 비인증 유저는 읽기 권한만 허용한다.

  5. DjangoModelPermissions
    인증된 유저가 관련 모델에 권한이 할당된 경우에만 허용한다. Django .queryset 속성 또는 get_queryset() 메서드가 있는 뷰에만 적용된다.

  6. DjangoModelPermissionOrAnonReadonly
    DjangoModelPermissions와 유사하지만 비인증 유저가 읽기 권한을 가질 수 있다.

  7. DjangoObjectPermissions
    모델에 대한 권한이 할당된 경우 허용된다.

  8. Custom Permission
    Permission을 직접 커스텀한다.


[참고 사이트]

[D.R.F] 게시판에 Authentication과 Permission 적용하기

profile
backend developer 🐌

0개의 댓글