Утилита AAA JDBC

1. Управление пользователями

1.1. Создание пользователя

ovirt-aaa-jdbc-tool user add jdoe \
    --attribute=firstName=John \
    --attribute=lastName=Doe \
    --attribute=email=jdoe@unknown.com

Только имя пользователя (username) является обязательным, остальные атрибуты необязательны. Для пользователя могут быть указаны следующие атрибуты:

  • department

  • description

  • displayName

  • email

  • firstName

  • lastName

  • title

Вновь созданные пользователи не могут войти в систему, пока не будет выполнена команда сброса пароля (password-reset).

1.2. Отображение подробной информации о существующем пользователе

ovirt-aaa-jdbc-tool user show jdoe

1.3. Обновление существующего пользователя

ovirt-aaa-jdbc-tool user edit jdoe \
    --attribute="displayName=John Doe"

1.4. Удаление существующего пользователя

ovirt-aaa-jdbc-tool user delete jdoe

1.5. Включение/отключение пользователя

Пользователь может быть отключен для предотвращения входа в систему:

ovirt-aaa-jdbc-tool user edit jdoe --flag=+disabled

И следующая команда снова включает пользователя:

ovirt-aaa-jdbc-tool user edit jdoe --flag=-disabled

1.6. Разблокировка заблокированного пользователя

Пользователь может быть заблокирован, например, при большом количестве неудачных входов в систему. Следующая команда разблокирует пользователя:

ovirt-aaa-jdbc-tool user unlock jdoe

1.7. Изменение срока действия учетной записи

ovirt-aaa-jdbc-tool user edit jdoe --account-valid-to="2025-08-15 10:30:00Z"

1.8. Управление паролями

Следующая команда устанавливает новый пароль для пользователя jdoe в интерактивном режиме:

ovirt-aaa-jdbc-tool user password-reset jdoe

При использовании опции password поддерживаются следующие типы ввода пароля:

  • interactive - инструмент запрашивает ввод пароля

  • pass:STRING - пароль задается в командной строке

  • env:KEY - пароль задается в переменной окружения ENV

  • pass:[****] - пароль считывается из указанного файла

  • none: - задает пустой пароль

По умолчанию срок действия пароля истекает в тот же момент, когда он задан. Следующая команда устанавливает новый пароль и дату истечения пароля на 15 августа 2025 10:30:00 UTC:

ovirt-aaa-jdbc-tool user password-reset jdoe --password-valid-to="2025-08-15 10:30:00Z"

2. Управление группами

2.1. Создание группы

ovirt-aaa-jdbc-tool group add group1 \
    --attribute="description=First group"

Обязательным является только имя группы, остальные атрибуты необязательны. Для группы могут быть указаны следующие атрибуты:

  • description

  • displayName

2.2. Отображение подробной информации о существующей группе

ovirt-aaa-jdbc-tool group show group1

2.3. Обновление существующей группы

Следующая команда обновляет отображаемое имя:

ovirt-aaa-jdbc-tool group edit group1 \
    --attribute="displayName=Group 1"

2.4. Удаление существующей группы

ovirt-aaa-jdbc-tool group delete group1

3. Управление членством в группах

3.1. Добавление пользователя в группу

Следующая команда добавляет пользователя jdoe в группу group1:

ovirt-aaa-jdbc-tool group-manage useradd group1 --user=jdoe

3.2. Показывать членов группы

ovirt-aaa-jdbc-tool group-manage show group1

3.3. Удаление пользователя из группы

Следующая команда удаляет пользователя jdoe из группы group1:

ovirt-aaa-jdbc-tool group-manage userdel group1 --user=jdoe

3.4. Добавление группы в группу

Следующая команда добавляет группу group2 в группу group1:

ovirt-aaa-jdbc-tool group-manage groupadd group1 --group=group2

3.5. Удаление группы из группы

Следующая команда удаляет группу group2 из группы group1:

ovirt-aaa-jdbc-tool group-manage groupdel group1 --group=group2

4. Поиск пользователей/групп

4.1. Поиск пользователей

Следующая команда отображает всех существующих пользователей:

ovirt-aaa-jdbc-tool query --what=user

Для сужения результатов можно использовать следующие атрибуты пользователя:

  • department

  • description

  • displayName

  • email

  • firstName

  • id

  • lastName

  • name

  • title

Например, следующая команда ищет пользователей, имя пользователя которых начинается с j:

ovirt-aaa-jdbc-tool query --what=user --pattern="name=j*"

4.2. Поиск групп

Следующая команда отображает все существующие группы:

ovirt-aaa-jdbc-tool query --what=group

Для сужения результатов можно использовать следующие групповые атрибуты:

  • description

  • displayName

  • name

Например, следующая команда ищет группы, название которых начинается с gr:

ovirt-aaa-jdbc-tool query --what=group --pattern="name=gr*"

5. Настройки

5.1. Расширения AAA-JDBC

Настройки расширения AAA-JDBC можно отобразить с помощью:

ovirt-aaa-jdbc-tool settings show

5.2. Обновление параметров

Следующая команда обновляет параметр PASSWORD_EXPIRATION_DAYS:

ovirt-aaa-jdbc-tool settings set --name=PASSWORD_EXPIRATION_DAYS --value=365

5.3. Конфигурация дополнительных доменов

Наиболее актуальную документацию можно найти в README.admin внутри пакета ovirt-engine-extension-aaa-jdbc

После всех нижеперечисленных настроек, управление ролями пользователей нового домена неполноценны.

Чтобы настроить новый профиль, использующий расширение aaa-jdbc, выполните следующие шаги:

  1. Настройте базу данных для расширения aaa-jdbc

    Замените DB_NAME, DB_USER и DB_PASSWORD на реальные значения:

    su - postgres -c "psql -d template1 << __EOF__
    create user DB_USER password 'DB_PASSWORD';
    create database DB_NAME owner DB_USER template template0
    encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
    __EOF__
    "
  2. Настройте PostgreSQL

    Добавьте в файл /var/lib/pgsql/data/pg_hba.conf следующие строки (замените DB_NAME и DB_USER реальными значениями):

    host    DB_NAME    DB_USER    0.0.0.0/0       md5
    host    DB_NAME    DB_USER    ::0/0           md5
    Эти строки должны располагаться перед следующими строками:
    host    all        all        127.0.0.1/32    ident
    host    all        all        ::1/128         ident
  3. Заполните базу данных для расширения aaa-jdbc

    Замените DB_HOST, DB_NAME, DB_USER и DB_PASSWORD реальными значениями:

    PGPASSWORD="DB_PASSWORD" \
        /usr/share/ovirt-engine-extension-aaa-jdbc/dbscripts/schema.sh \
        -s DB_HOST \
        -p DB_PORT \
        -d DB_NAME \
        -u DB_USER \
        -c apply
  4. Настроить профиль AAA

    Выберите имя своего профиля (оно будет видно пользователям при входе в систему) и скопируйте примеры файлов конфигурации, переименуйте в соответствии с вашим профилем (измените PROFILE выбранным значением):

    cp /usr/share/ovirt-engine-extension-aaa-jdbc/examples/extension.d/authn.properties \
        /etc/ovirt-engine/extensions.d/PROFILE-authn.properties
    cp /usr/share/ovirt-engine-extension-aaa-jdbc/examples/extension.d/authz.properties \
        /etc/ovirt-engine/extensions.d/PROFILE-authz.properties
    cp /usr/share/ovirt-engine-extension-aaa-jdbc/examples/aaa/profile.properties \
        /etc/ovirt-engine/aaa/PROFILE.properties

    Отредактируйте созданные файлы PROFILE.properties* и замените переменные, окруженные @, реальными значениями. Измените права доступа, выполнив следующие команды:

    cd /etc/ovirt-engine/extensions.d/
    chown ovirt:ovirt PROFILE-authn.properties PROFILE-authz.properties
    chmod 600 PROFILE-authn.properties PROFILE-authz.properties
    chown ovirt:ovirt ../aaa/PROFILE.properties
    chmod 600 ../aaa/PROFILE.properties
  5. Перезапустите службу ovirt-engine:

    systemctl restart ovirt-engine

    Проверьте /var/log/ovirt-engine/engine.log, чтобы убедиться, что расширение успешно инициализировано в соответствии с PROFILE.

  6. Настройка пользователей и групп

    Настройте своих пользователей и группы с помощью утилиты ovirt-aaa-jdbc-tool и укажите конфигурацию базы данных с помощью параметра командной строки –db-config:

    ovirt-aaa-jdbc-tool \
        --db-config=/etc/ovirt-engine/aaa/PROFILE.properties \
        user add test
    ovirt-aaa-jdbc-tool \
        --db-config=/etc/ovirt-engine/aaa/PROFILE.properties \
        user password-reset test --password-valid-to="2025-08-15 10:30:00Z"
  7. Войдите в веб-интерфейс, используя существующую учетную запись администратора, и назначьте нужные разрешения пользователям/группам, указанным в вашем PROFILE. Для назначения прав перейдите в раздел Управление  Пользователи  test (Имя пользователя)  Разрешения  Добавить системные разрешения.