본문 바로가기
Python/Django

Django 공식문서 읽기 - Customizing authentication in Django(3)

by 코드뭉치 2023. 5. 2.

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 키워드 파라미터를 받고 객체 권한 수준을 반환

 

댓글