Утилита ise-user-control для управления пользователями#
Утилита запускается на сервере, который имеет доступ к кластеру DataGrid. Она предназначена для добавления, изменения и удаления ролей и пользователей в DataGrid администраторами безопасности в неинтерактивном режиме.
Для работы утилиты в конфигурации серверного узла разрешите подключение и выполнение задач для IgniteClient.
<!-- Bean `ignClientConnectorConfiguration`. -->
<bean id="ignClientConnectorConfiguration" class="org.apache.ignite.configuration.ClientConnectorConfiguration">
...
<property name="thinClientEnabled" value="true"/>
<property name="thinClientConfiguration" ref="thinClientConfiguration"/>
...
</bean>
<!-- Bean `thinClientConfiguration`. -->
<bean id="thinClientConfiguration" class="org.apache.ignite.configuration.ThinClientConfiguration">
<property name="maxActiveComputeTasksPerConnection" value="100"/>
</bean>
Запуск утилиты#
Для запуска утилиты выполните команду:
ise-user-control.(sh|bat) connection_parameters command command_parameters
где:
connection_parameters— параметры для создания подключенияIgniteClient(имя пользователя, путь к хранилищу сертификатов, наборы шифрования);command— команда администрирования;command_parameters— параметры команды администрирования.
Примечание
Чтобы получить справку по используемым командам, выполните:
ise-user-control.(sh|bat) --help
Параметры для подключения#
Для подключения к кластеру используйте параметры:
Параметр |
Описание |
|---|---|
|
Добавление произвольного имени для CN ( |
|
Вызов справки |
|
Логин администратора доступа |
|
Пароль администратора доступа |
|
Имя хоста или IP-адрес узла |
|
Порт, к которому нужно подключиться |
|
Список SSL-протоколов для подключения к кластеру (укажите через запятую) |
|
Наборы SSL-шифров (укажите через запятую) |
|
Алгоритм SSL-ключей |
|
Путь к хранилищу сертификатов |
|
Тип хранилища сертификатов |
|
Пароль от хранилища сертификатов |
|
Путь к хранилищу доверенных сертификатов |
|
Тип хранилища доверенных сертификатов |
|
Пароль от хранилища доверенных сертификатов |
|
Пользовательский путь к XML-файлу |
|
Время ожидания |
|
Интервал между |
Команды#
Список команд утилиты:
Команда |
Описание |
|---|---|
|
Добавление роли |
|
Добавление пользователя |
|
Добавление пользователя с посоленным паролем |
|
Изменение пароля |
|
Удаление роли |
|
Удаление пользователя |
|
Генерация хеша |
|
Просмотр списка ролей |
|
Просмотр списка пользователей |
|
Изменение роли |
|
Изменение пользователя |
|
Атомарная замена текущих данных безопасности пользователей на указанные |
Внимание
Команда load-security-model доступна для выполнения только на кластере в состоянии INACTIVE.
Параметры команд#
Ниже указаны параметры, которые используются для конкретных команд.
add-role#
Параметр |
Описание |
|---|---|
|
Название роли |
|
Разрешения роли в формате JSON |
add-user#
Параметр |
Описание |
|---|---|
|
Имя пользователя |
|
Пароль пользователя |
|
Список ролей через запятую |
|
Произвольное имя в ролевой модели для поля CN ( |
add-user-with-salt#
Параметр |
Описание |
|---|---|
|
Имя пользователя |
|
Посоленный пароль пользователя |
|
Соль |
|
Список ролей через запятую |
|
Произвольное имя в ролевой модели для поля CN ( |
change-password#
Параметр |
Описание |
|---|---|
|
Имя пользователя. Если не указано, используется логин администратора доступа |
|
Соль. Необязательно |
|
Новый пароль. Если указана соль, пароль должен быть посолен |
delete-role#
Параметр |
Описание |
|---|---|
|
Название роли |
delete-user#
Параметр |
Описание |
|---|---|
|
Имя пользователя |
generate-hash#
Параметр |
Описание |
|---|---|
|
Пароль, который нужно хешировать |
|
Повторный пароль |
|
Конфигурация Password Policy |
get-roles#
Параметр |
Описание |
|---|---|
|
Регулярное выражения для поиска роли |
get-users#
Параметр |
Описание |
|---|---|
|
Регулярное выражения для поиска пользователя |
|
Список ролей, которые должны быть у пользователя (через запятую) |
update-role#
Параметр |
Описание |
|---|---|
|
Название роли |
|
Разрешения роли в формате JSON |
update-user#
Параметр |
Описание |
|---|---|
|
Имя пользователя |
|
Список ролей через запятую |
load-security-model#
Параметр |
Описание |
|---|---|
|
Путь к файлу с обновленными данными безопасности пользователей в формате JSON |
Примеры использования#
> ./ise-user-control.sh -l userAdmin -p Default-password-1 --keystore "path/to/userAdmin.jks" --keystore-password 123456 --truststore "path/to/trust-one.jks" --truststore-password 123456 --ssl-cipher-suites "TLS_RSA_WITH_NULL_SHA256" add-role -r asd123 --perms "{\"dfltAll\":false,\"cachePerms\":{\"test-cache\":[\"CACHE_READ\",\"CACHE_PUT\",\"CACHE_REMOVE\"]},\"taskPerms\":{},\"servicePerms\":{},\"systemPerms\":[\"CACHE_DESTROY\",\"ADMIN_OPS\",\"CACHE_CREATE\"]}"
User control utility.
Time: YYYY-MM-DDT14:24:40.922
Command [add-role] started.
Command [add-role] finished successfully.
Control utility has completed execution at: YYYY-MM-DDT14:24:43.271
Execution time: 2349 ms
Пароли указывать небезопасно, поэтому их значения можно опустить (сами параметры опускать нельзя):
> ./ise-user-control.sh -l userAdmin -p --keystore "path/to/userAdmin.jks" --keystore-password --truststore "path/to/trust-one.jks" --truststore-password --ssl-cipher-suites "TLS_RSA_WITH_NULL_SHA256" add-role -r asd123 --perms "{\"dfltAll\":false,\"cachePerms\":{\"test-cache\":[\"CACHE_READ\",\"CACHE_PUT\",\"CACHE_REMOVE\"]},\"taskPerms\":{},\"servicePerms\":{},\"systemPerms\":[\"CACHE_DESTROY\",\"ADMIN_OPS\",\"CACHE_CREATE\"]}"
User control utility.
Time: YYYY-MM-DDT14:24:40.922
Enter value for --password (User password.):
Enter value for --keystore-password (Keystore password.):
Enter value for --truststore-password (Truststore password.):
Command [add-role] started.
Command [add-role] finished successfully.
Control utility has completed execution at: YYYY-MM-DDT14:24:43.271
Execution time: 2349 ms
Примечание
Если в тексте команды не будет указан пароль, утилита предложит ввести его в интерактивном режиме.
Добавление произвольного имени CN сертификата#
С помощью утилиты ise-user-control можно указать произвольное имя в ролевой модели для Common Name (CN) сертификата. Для этого используйте параметр --distinguished-name:
./bin/ise-user-control.sh --host xxx.x.x.x --login=ise_admgrant --password=***** --keystore=config/ise_dev_g_ise_admgrant.jks --truststore=config/ise_dev_truststore.jks --keystore-password=**** --truststore-password=**** add-user --user-name=AddUserTest --user-password=***** --roles=MAINTENANCE_ADMIN --distinguished-name=customName
Генерация Salt и Salted-хеша пароля с помощью утилиты ise-user-control.sh#
Пример запуска
ise-user-control.sh generate-hash
User control utility.
Time: YYYY-MM-DDT17:55:57.432
Command [generate-hash] started.
Enter value for --password (password):
Enter value for --confirm-password (confirm password):
Salt: <salt>
Salted hash: <salted-hash>
Command [generate-hash] finished successfully.
Control utility has completed execution at: YYYY-MM-DDT17:56:05.029
Execution time: 7597 ms
Опционально можно передать конфигурацию Password Policy для валидатора пароля с помощью флага --password-policy. В качестве аргумента данная опция принимает путь к конфигурации в виде:
Пример password-policy.properties
user.password.length.min=12