WIKI / КОНЦЕПЦИИ

Основные понятия

Короткие определения сущностей, которые встречаются в API, пользовательских сценариях и модели прав доступа.

RustCloak / Технические материалы · Сверяйте примеры с используемой версией проекта.

Realm

Логическая область идентификационных данных и настроек. Внутри realm существуют пользователи, группы, роли и клиенты. Наличие поля realm_id в БД само по себе не обеспечивает изоляцию — проверка границы должна проходить в каждом запросе.

Client

Приложение, которое доверяет RustCloak для выполнения согласованного протокольного сценария. У клиента есть идентификатор и параметры безопасности, включая разрешённые callback-адреса и тип аутентификации.

User и Group

Пользователь — субъект аутентификации. Группа позволяет объединять пользователей и связывать с ними роли. Иерархия групп усложняет вычисление эффективных полномочий, поэтому глубина вложенности должна быть ограничена.

Role и Composite role

Роль именует набор полномочий или принадлежность к роли. Составная роль включает другие роли и требует защиты от циклов и нежелательных пересечений.

Scope

Scope обозначает объём запрошенного доступа в OAuth 2.0; в модели RBAC проекта он также связывается с ролями. Не стоит автоматически приравнивать scope к разрешению на каждую бизнес-операцию.

Token и Session

Токен — переносимое утверждение для конкретной цели и аудитории. Сессия — состояние взаимодействия, связанное с аутентификацией. Отзыв сессии и истечение срока токена — разные процессы.

Passkeys / WebAuthn

WebAuthn позволяет использовать криптографические учётные данные вместо передачи секретного пароля приложению. Должны проверяться challenge, origin, RP ID и привязка credential к субъекту.

Далее: роли и права доступа →