v1.1.1 — Иерархические группы идентификации
Иерархические группы идентификации
Единицы хранения идентификационных данных объединены в иерархию групп: политики распространяются от родительских групп к дочерним, поддерживаются группы любой глубины вложенности.
Архитектура:
IdentityGroup— именованная группа с произвольным набором политикGroupMembership— ссылка «сущность → группа» с поддержкой множественного членстваGroupHierarchy— ссылка «дочерняя → родительская группа»; при построении токена выполняется BFS-обход для сбора всех унаследованных политик
Разрешение политик: при создании токена определяется полное множество политик — собственные политики сущности плюс политики всех групп, в которые она входит (включая все предки по иерархии). Удаление дубликатов происходит автоматически.
API
| Метод | Путь | Описание |
|---|---|---|
POST |
/v1/identity/group |
Создать группу |
GET |
/v1/identity/group/name/:name |
Получить группу по имени |
GET |
/v1/identity/group/id/:id |
Получить группу по идентификатору |
POST |
/v1/identity/group/id/:id/members |
Изменить состав группы |
POST |
/v1/identity/group/id/:id/subgroups |
Изменить дочерние группы |
DELETE |
/v1/identity/group/id/:id |
Удалить группу |
LIST |
/v1/identity/group/ |
Перечислить группы |
CLI
identity group create --name=<name> --policy=<policy>...
identity group add-member <group-name> <entity-name>
identity group add-child <parent-name> <child-name>
identity group list
identity group get <name>
identity group delete <name>
Состав изменений
identity.Store: новые методы для CRUD-операций с группами, управления членством и иерархией подгрупп;PolicyResolverподдерживает BFS-обход для разрешения унаследованных политикcore.buildTokenPolicies: интегрировано разрешение групповых политик- Все 8 тестов идентификации проходят; добавлены
TestGroupCRUD,TestGroupInheritance