Skip to content

v1.1.2 — Внешние псевдонимы групп

Choose a tag to compare

@NAGenaev NAGenaev released this 12 Jun 20:38
· 78 commits to main since this release

Внешние псевдонимы групп

Реализовано автоматическое сопоставление внешних групп LDAP и JWT с группами Tuck в момент аутентификации — без изменения состава групп при каждом входе.

Порядок настройки:

  1. Создать группу Tuck: identity group create --name=ldap-devs --policy=dev
  2. Привязать внешнее имя группы: identity group-alias create --group-id=<id> --mount=auth_ldap --name="cn=devs,ou=groups,dc=example,dc=com"
  3. При следующей аутентификации через LDAP пользователь, входящий в указанную DN, автоматически получает политику dev и все политики родительских групп (обход BFS вверх по иерархии).

Поддерживаемые методы аутентификации: LDAP (auth_ldap), JWT (auth_jwt)

API

Метод Путь Описание
POST /v1/identity/group-alias Создать псевдоним группы
GET /v1/identity/group-alias/id/:id Получить псевдоним по идентификатору
DELETE /v1/identity/group-alias/id/:id Удалить псевдоним
LIST /v1/identity/group-alias/ Перечислить все псевдонимы

CLI

identity group-alias create --group-id=<id> --mount=<accessor> --name=<external-name>
identity group-alias get <id>
identity group-alias delete <id>
identity group-alias list

Состав изменений

  • identity.Store: CRUD-операции для GroupAlias, метод ResolveExternalGroupPolicies (обход BFS вверх по иерархии вложенных групп)
  • core.attachEntityToToken: принимает externalGroups []string; mergePolicies преобразована в вариадическую функцию
  • LoginLDAP / LoginJWT: передача result.Groups в механизм разрешения политик внешних групп
  • Тестовое покрытие: 8/8 тестов идентификации (добавлены TestGroupAliasCRUD и TestResolveExternalGroupPolicies)