Настройки доступа IAM
Обзор
Дескриптор доступа к REST-API (общего, авторизованного и, возможно, ролевого). Дополнительно определяет состав общих ролей, доступных к назначению пользователям и ролевым приложениям в любых доменах.
Состав общих правил доступа пополняет индивидуальные правила доступа конкретных доменов (по типу домена - мастер или рабочий), внесенные в ассет solution/iam.json.
Полный список правил доступа к REST-API также включает разрешения, заданные в рантайме для создаваемых пользовательских ролей конкретного домена.
[
{
"access": "public" | "authenticated" | "role",
"role": "ROLE_NAME",
"endpoints": [
{
"url": str (например "/rest/v1/iam/users"),
"methods: array<str> (например, ["GET", "POST", "LOOKUP"])
},
...
]
},
...
]
Для каждого элемента списка указывается уровень доступа (поле "access"), значения:
-
public– endpoint и методы, доступные без авторизации. -
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 игнорируются.
Пример
-
Открывает публичный доступ к ресурсам и операциям просмотра и создания сессии (авторизации).
-
Открывает доступ всем авторизованным пользователям к управлению сессией и просмотру ролей пользователей.
-
Создает для всех доменов роль
admin, открывая для нее все методы всех endpoint-ов.
[
{
"access": "public",
"endpoints": [
{ "url": "/rest/v1/public/version", "methods": ["GET","OPTIONS"] },
{ "url": "/rest/v1/public/resources", "methods": ["GET","OPTIONS"] },
{ "url": "/rest/v1/public/resources/*", "methods": ["GET","OPTIONS"] },
{ "url": "/rest/v1/iam/sessions", "methods": ["POST","OPTIONS"] },
{ "url": "/rest/v1/iam/sessions/current", "methods": ["GET","OPTIONS"] }
]
},
{
"access": "authenticated",
"endpoints": [
{ "url": "/rest/v1/iam/sessions/current", "methods": ["GET","POST","DELETE","OPTIONS"] },
{ "url": "/rest/v1/iam/sessions/others", "methods": ["DELETE","OPTIONS"] }
{ "url": "/rest/v1/iam/users/current", "methods": ["GET","OPTIONS"] },
{ "url": "/rest/v1/iam/roles", "methods": ["GET","OPTIONS"] }
]
},
{
"access": "role",
"role": "admin",
"endpoints": [
{ "url": "/rest/**", "methods": ["*"] }
]
}
]