Авторизация#
Авторизация Schema Registry происходит при каждом запросе с помощью ACL.
При первом старте приложение уже имеет три роли:
ADMIN— роль, имеющая все права.ADMIN_AS— роль, имеющая все права кроме изменения настройки изменяемости реестра/схемы.USER— пустая роль без прав.
Набор ролей, их прав и относящихся к ним пользователей предлагается настроить самостоятельно.
Список параметров ACL:
op- операция, на которую выдано разрешение.allow- кому выдано разрешение. Возможные значения:User:ivanov_ivanиRole:IT_ADMINS.subject- шаблон субъектов (схем), на которые выдано разрешение. Может бытьnull.subjectPatternType- тип шаблона разрешения. Должен бытьnullеслиsubject==null. Существуют следующие типы:LITERAL- точное сравнениеrequest.subject == acl.subject. Пример:mytopic- разрешение выдано ТОЛЬКО наmytopic.PREFIX- сравнение по префиксуrequest.subject.startsWith(acl.subject)Пример:orders- разрешение выдано на все из спискаorders-in,orders-out,orders_lostedи тому подобное.REGEXP- сравнение с помощью регулярного выраженияrequest.subject.matches(acl.subject). Пример:.*- все возможные субъекты.
Проверка доступа выполняется следующим образом:
Проверка аутентификация пользователя. Если пользователь не аутентифицирован – доступа нет.
Значения
user,rolesизвестны после аутентификации.Из URL определяется операция.
Из URL определяется
subject– может бытьnull.Происходит проверка каждого существующего правила для операции – разрешает ли оно пользователю операцию над субъектом.
Правило найдено – операция разрешена.
Правило не найдено – операция запрещена.
Операции:
Название |
Описание |
Роли |
|---|---|---|
|
Доступ к данным ACL. На запись и чтение |
|
|
Чтение настроек конфигурации (например, режим совместимости). |
|
|
Чтение настроек конфигурации. |
|
|
Создание, изменение схем и версий |
|
|
Чтение схем, версий |
|
|
Удаление всего subject или версии |
|
|
Очистка и удаление старых схем |
|
|
Чтение параметров изменяемости реестра/схемы |
|
|
Запись параметров изменяемости реестра/схемы |
|