Перейти к основному содержимому
Версия: 7.3

Назначение ролей

По умолчанию пользователю назначается роль, указанная в:

default-role: "user"

При необходимости роль можно назначать автоматически на основании «claims», полученных от провайдера. Для этого используется параметр «role-rules» и CEL-выражения.

Например, для GitLab можно назначить роль «admin» пользователю, который является «owner» или «maintainer» группы «company_name»:

role-rules:
- when: >-
(
"https://gitlab.org/claims/groups/owner" in claims &&
"company_name" in claims["https://gitlab.org/claims/groups/owner"]
) ||
(
"https://gitlab.org/claims/groups/maintainer" in claims &&
"company_name" in claims["https://gitlab.org/claims/groups/maintainer"]
)
roles: [admin]

Для Yandex аналогичное правило может использовать, например, адрес электронной почты:

role-rules:
- when: >-
has(claims.email) &&
claims.email in [
"user1@example.com",
"user2@example.com"
]
roles: [admin]

Таким образом, «role-rules» позволяет назначать роли на основании любых доступных в «claims» данных, поддерживаемых конкретным провайдером.