feat(keycloak): получать группы пользователей из FreeIPA #187

Merged
Timur merged 6 commits from timur/keycloak-freeipa-groups into drunk 2026-10-21 17:58:34 +00:00 AGit
Member

Управление LDAP-провайдерами и мапперами, OIDC-клиентами и claims, группами, ролями и привязками вынесено в отдельный IaC-сервис keycloak_config. Новое приложение добавляется YAML-конфигом со ссылками на OpenBao без изменений Ansible. FreeIPA сохранена как рабочий пример; добавлен пример OpenLDAP.

Runtime Keycloak отвечает за контейнеры, bootstrap realm и truststore. CI выполняет offline validation → API preview → ручное подтверждение → apply. Существующие UUID сохраняются; удаление требует явного state: absent.

Проверено: YAML/Jinja, syntax-check обоих playbook, 26 ресурсов, генерация pipeline и 25 существующих проверок Jenkins. В существующих проверках OpenStack 65 прошли, две падают на неизменённом host-bootstrap.yml. Новые тесты не добавлялись; к кластеру изменения не применялись.

Порядок внедрения: сначала обновить runtime и остановить старые writers, затем preview/apply keycloak_config. Ручная приёмка описана в README. Согласование имён групп OpenBao/FreeIPA остаётся отдельной задачей.

Управление LDAP-провайдерами и мапперами, OIDC-клиентами и claims, группами, ролями и привязками вынесено в отдельный IaC-сервис `keycloak_config`. Новое приложение добавляется YAML-конфигом со ссылками на OpenBao без изменений Ansible. FreeIPA сохранена как рабочий пример; добавлен пример OpenLDAP. Runtime Keycloak отвечает за контейнеры, bootstrap realm и truststore. CI выполняет offline validation → API preview → ручное подтверждение → apply. Существующие UUID сохраняются; удаление требует явного `state: absent`. Проверено: YAML/Jinja, syntax-check обоих playbook, 26 ресурсов, генерация pipeline и 25 существующих проверок Jenkins. В существующих проверках OpenStack 65 прошли, две падают на неизменённом `host-bootstrap.yml`. Новые тесты не добавлялись; к кластеру изменения не применялись. Порядок внедрения: сначала обновить runtime и остановить старые writers, затем preview/apply `keycloak_config`. Ручная приёмка описана в README. Согласование имён групп OpenBao/FreeIPA остаётся отдельной задачей.
feat(keycloak): read FreeIPA group memberships through LDAP
All checks were successful
drg/infrastructure/pipeline/pr-drunk This commit looks good
48a759f8b9
Owner

Все как-то сильно захардкожено. Хорошо бы это вынести в отдельный механизм - в свой конфиг и добавить ИПУ как пример.

Все как-то сильно захардкожено. Хорошо бы это вынести в отдельный механизм - в свой конфиг и добавить ИПУ как пример.
refactor(keycloak): move LDAP and OIDC configuration into independent service
Some checks failed
drg/infrastructure/pipeline/pr-drunk There was a failure building this commit
22e54922a6
Lines 333-361
@ -0,0 +330,32 @@
is.binary.attribute:
- 'false'
parent: ldap-master
- id: ldap-master-groups
kind: ldap_mapper
realm: master
spec:
name: freeipa-admins
providerId: group-ldap-mapper
config:
groups.dn:
- cn=groups,cn=accounts,dc=michshch,dc=ru
group.name.ldap.attribute:
- cn
group.object.classes:
- groupOfNames
membership.ldap.attribute:
- member
membership.attribute.type:
- DN
user.roles.retrieve.strategy:
- LOAD_GROUPS_BY_MEMBER_ATTRIBUTE
preserve.group.inheritance:
- 'true'
groups.path:
- /freeipa
mode:
- LDAP_ONLY
drop.non.existing.groups.during.sync:
- 'false'
groups.ldap.filter:
- (&(objectClass=groupOfNames)(cn=admins))
Owner

@mich Если повезет - даже доступ не въебем :)

@mich Если повезет - даже доступ не въебем :)
elgrush marked this conversation as resolved
feat(keycloak): replace retired GitLab client with Grafana
Some checks failed
drg/infrastructure/pipeline/pr-drunk There was a failure building this commit
18af8ac18e
chore(keycloak): remove all GitLab configuration from mapper service
Some checks failed
drg/infrastructure/pipeline/pr-drunk There was a failure building this commit
f3f5c2320f
fix(keycloak): persist LDAP secret versions in realm attributes
Some checks failed
drg/infrastructure/pipeline/pr-drunk There was a failure building this commit
6c1c17727d
test(ci): align existing checks with preview and bootstrap behaviour
Some checks failed
drg/infrastructure/pipeline/pr-drunk There was a failure building this commit
111f5cd3c9
Timur force-pushed timur/keycloak-freeipa-groups from 111f5cd3c9
Some checks failed
drg/infrastructure/pipeline/pr-drunk There was a failure building this commit
to 4fb92bedea
All checks were successful
drg/infrastructure/pipeline/pr-drunk This commit looks good
2026-10-21 17:26:30 +00:00
Compare
elgrush approved these changes 2026-10-21 17:58:12 +00:00
elgrush left a comment

В keycloak насрано, заслужил шип на длверии

В keycloak насрано, заслужил шип на длверии
Timur merged commit 383c6df27e into drunk 2026-10-21 17:58:34 +00:00
Sign in to join this conversation.
No reviewers
No labels
custom-deploy
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Apoj/drg!187
No description provided.