django-abac

Attribute-based access control for Django

View the Project on GitHub Weltraum/django-abac

Settings

DEFAULT_AUTHENTICATION

Настройка определяет, использует ли ABAC стандартную аутификацию прописанную в настройках MIDDLEWARE Django. По умолчанию True. Если вы хотите, использовать собственную аунтификацию к ресурсам, к которым ограничен доступ с помощью ABAC, необходимо прописать их в ADDITIONAL_AUTHENTICATION_CLASS

ABAC_SETTINGS = {
    'DEFAULT_AUTHENTICATION': True,
}

ADDITIONAL_AUTHENTICATION_CLASS

В данную настройку помещаются дополнительные классы аутификации. В ABAC уже подготовленны некоторые дополнительные классы аунтификации, импользуемые в REST Framework (не забудьте его добавить в проект):

ABAC_SETTINGS = {
    'ADDITIONAL_AUTHENTICATION_CLASS': (
        'abac.authentication.RestFrameworkBasicAuthentication',
        'abac.authentication.RestFrameworkSessionAuthentication',
        'abac.authentication.RestFrameworkTokenAuthentication',
        'abac.authentication.RestFrameworkRemoteUserAuthentication',
        'abac.authentication.RestFrameworkJSONWebTokenAuthentication',
    ),
}

Как создать собственный класс аунтификации для ABAC смотрите в разделе ???

CACHE_RULE_TIMEOUT

Время жизни вычислений в правилах и политиках ABAC. По умолчанию 3 секунды.

ABAC_SETTINGS = {
    'CACHE_RULE_TIMEOUT': 3,
}

EXPRESSIONS

Список всех возможных выражений для правил и политик, отмеченные декоратором @expression

PARSER

Словарь парсеров файлов правил и политик, в качестве ключей которого выступают расширение файлов. Добавляются с помошью декоратора @parser. По умоланию потдерживаются json файлы.

ABAC_SETTINGS = {
    'PARSER': {'.json': json.loads},
}

Оглавление

  1. Quick start
  2. Settings
  3. Project architecture
  4. Authentication
  5. Rules
  6. Combining algorithms