Настройки доступа IAM
Обзор
Дескриптор доступа к REST-API (авторизованного и ролевого). Дополнительно определяет состав ролей, доступных к назначению пользователям и ролевым приложениям.
Состав ролей и доступных им endpoint и методов дополняется ролями и методами, внесенными в ассет product/iam_all.json
продукта.
Доступно также для мастер-домена (предопределенный солюшен master).
[ { "access": "authenticated" | "role", "role": "ROLE_NAME", "endpoints": [ { "url": str (например "/rest/v1/iam/users"), "methods: array<str> (например, ["GET", "POST", "LOOKUP"]) }, ... ] }, ... ]
Для каждого элемента списка указывается уровень доступа (поле "access"
), значения:
-
authenticated
– endpoint и методы, доступные любому авторизованному пользователю. -
role
– endpoint и методы, доступные пользователям, имеющим конкретную роль. Дополнительно указывается роль (поле"role"
), роль задается произвольно. Указанные роли будут доступны для назначения пользователям и ролевым приложениям.
Каждый элемент содержит список разрешенных endpoint (поле "endpoints"), каждый endpoint в списке указан в виде объекта с полями:
-
"url"
– относительный путь к endpoint, может содержать wildcards:*
– произвольное содержание отрезка пути, например/abc/*/def
,**
– произвольное окончание пути, например/abc/*
. -
"methods"
– набор методов, разрешенных для данного endpoint. В качестве методов могут быть указаны и HTTP-verbs ("GET"
), и кастомные методы ("LOOKUP"
), и wildcard ("*"
). Все методы перечисляются заглавными буквами.
Все указываемые здесь методы и endpoints устанавливают фильтр на полное множество реализованных в системе REST-API методов и endpoints. Несуществующие методы и endpoints игнорируются.
Пример
Создает для солюшена роль users_reader
и открывает ей доступ на получение коллекции пользователей, на получение содержимого учетных записей пользователей и на получение состава ролей пользователей.
[ { "access": "role", "role": "users_reader", "endpoints": [ { "url": "/rest/v1/iam/users", "methods: ["GET"] }, { "url": "/rest/v1/iam/users/*", "methods: ["GET"] }, { "url": "/rest/v1/iam/roles", "methods": ["GET"] } ] } ]