Handling authorization in custom backends
사용자 지정 백엔드 인증에서는 자체 권한을 제공할 수 있다.
User모델과 관리자는 권한 조회 기능을 백엔드에 위임한다.
백엔드가 has_perm() 또는 has_module_perms()에서 PermissionDenied 예외를 발생시키면
인증이 즉시 실패하고 Django는 이후의 백엔드를 확인하지 않는다.
전체 인증 구현은 기본 백엔드인 django/message/auth/backends.py의
ModelBackend 클래스에서 찾을 수 있으며 대부분 auth_permission 테이블을 쿼리(?)한다.
Authorization for anonymous users
Django의 권한 프레임워크에는 익명 사용자에 대한 권한을 저장할 수 있는 위치가 없다.
그러나 인증 백엔드로 전달되는 사용자 객체는 django.contrib.auth.models.AnonymousUser 객체로,
사용자 지정 권한 부여를 지정할 수 있다.
Authorization for inactive users
만약 비활성 사용자 인증을 허가하려면,
AllowAllUsersModelBackend 나 AllowAllUsersRemoteUserBackend 를 사용할 수 있다.
Handling object permissions
객체 권한을 확인하면 항상 False나 빈 리스트를 반환할 것.
따라서 인증 메소드와 관련된 객체에 obj와 user_obj 키워드 파라미터를 받고 객체 권한 수준을 반환
'Python > Django' 카테고리의 다른 글
Django MySQL 설정하기 (0) | 2023.05.30 |
---|---|
Django 공식문서 읽기 - Customizing authentication in Django(4) (2) | 2023.05.03 |
Django 공식문서 읽기 - Customizing authentication in Django(2) (0) | 2023.05.02 |
Django 공식문서 읽기 - Customizing authentication in Django(1) (2) | 2023.04.30 |
Django restframework 프로젝트 세팅과 진행 (0) | 2023.04.28 |
댓글