База знаний Антона Сидорова

База знаний по аналитике, ИТ архитектуре, API. Документирование. Тесты инструментов.


Project maintained by daemon110282 Hosted on GitHub Pages — Theme by mattgraham

RBAC

Зачем

Вариант реализации схемы авторизации Access Control Models.

Role Based Access Control:

Проблема RBAC

Паттерны

Backend-enforced RBAC

1.GET /api/documents/123 Authorization: Bearer 2. authenticate() ↓ extract subject + roles ↓ check permission DOCUMENT_READ ↓ check document belongs to user's organization ↓ allow / deny

MANAGER

RBAC: Role → Permission

ROLE_ADMIN ↓ DOCUMENT_READ DOCUMENT_CREATE DOCUMENT_SIGN DOCUMENT_DELETE USER_READ USER_MANAGE

RBAC + Scope

Ограничение области действия роли.

ROLE_MANAGER ↓ permission = DOCUMENT_READ scope.organization = 100500

Client-side RBAC

{ “user”: { “id”: “123” }, “permissions”: [ “DOCUMENT_READ”, “DOCUMENT_CREATE”, “DOCUMENT_SIGN” ] }