Смена паролей встроенных учётных записей
В составе Primo AI Server есть встроенные служебные учётные записи, которые используются для межсервисного взаимодействия. После установки все они имеют пароль по умолчанию. Для обеспечения безопасности рекомендуется сменить пароли сразу после развёртывания.
Утилита Primo.AI.PasswordTool позволяет безопасно сменить пароль встроенной учётной записи напрямую в базе данных. После смены пароля все ранее выданные токены аутентификации становятся недействительными.
После смены пароля учётной записи необходимо обновить конфигурацию всех сервисов, которые используют эту учётную запись, и перезапустить их. Подробнее — в разделе Действия после смены пароля.
Расположение в дистрибутиве
Утилита поставляется в составе дистрибутива в архиве PasswordTool-linux.zip.
Распакуйте архив в удобное расположение на машине сервера:
sudo mkdir -p /app/Primo.AI/Tools/PasswordTool
sudo unzip PasswordTool-linux.zip -d /app/Primo.AI/Tools/PasswordTool
sudo chmod +x /app/Primo.AI/Tools/PasswordTool/Primo.AI.PasswordToolПараметры запуска
| Параметр | Описание |
|---|---|
--user <имя> | Имя встроенной учётной записи (обязательный) |
--password <пароль> | Новый пароль |
--generate | Сгенерировать криптостойкий пароль (16 символов) и вывести в stdout |
--connection <строка> | Строка подключения к БД (или переменная окружения PRIMO_IDENTITY_CONNECTION) |
Обязателен один из параметров: --password или --generate.
Примеры использования
Смена пароля с явным указанием
/app/Primo.AI/Tools/PasswordTool/Primo.AI.PasswordTool \
--user agent \
--password 'MyStr0ng!Pass' \
--connection 'Host=localhost;Port=5432;Database=primo_ai_identity;Username=postgres;Password=yourDbPassword'Автогенерация пароля
При использовании --generate утилита генерирует криптостойкий пароль и выводит его в stdout. Сохраните пароль — он понадобится для обновления конфигурации сервисов.
/app/Primo.AI/Tools/PasswordTool/Primo.AI.PasswordTool \
--user agent \
--generate \
--connection 'Host=localhost;Port=5432;Database=primo_ai_identity;Username=postgres;Password=yourDbPassword'Пример вывода:
kR4!mNx@9pLw#2Qs
Hashing password for 'agent'...
Connecting to postgres database...
Connected successfully.
Updating password for 'agent' (Id: 00000000-0000-0000-0000-000000000003)...
Password changed for 'agent'.
Encrypted password for appsettings: a1B2c3D4e5F6g7H8==
Don't forget to update appsettings.ProdLinux.json in services that use this account.Первая строка — сгенерированный пароль (выводится в stdout). Остальные сообщения, включая зашифрованное значение пароля для конфигурации, выводятся в stderr.
Передача строки подключения через переменную окружения
Чтобы не указывать строку подключения при каждом вызове:
export PRIMO_IDENTITY_CONNECTION='Host=localhost;Port=5432;Database=primo_ai_identity;Username=postgres;Password=yourDbPassword'
/app/Primo.AI/Tools/PasswordTool/Primo.AI.PasswordTool --user agent --generate
/app/Primo.AI/Tools/PasswordTool/Primo.AI.PasswordTool --user inference --generate
/app/Primo.AI/Tools/PasswordTool/Primo.AI.PasswordTool --user api --generateВстроенные учётные записи
Утилита разрешает менять пароли только для перечисленных ниже учётных записей. Попытка указать другое имя приведёт к ошибке.
| Учётная запись | Назначение | Где обновить пароль после смены |
|---|---|---|
admin | Административный доступ к веб-интерфейсу | — (используется для входа в UI) |
superadmin | Суперадминистратор | — (используется для входа в UI) |
agent | Служебная учётка сервиса Agent | appsettings.ProdLinux.json сервиса Agent — секция Api.Password |
inference | Служебная учётка сервиса Inference | appsettings.ProdLinux.json сервиса Inference — секция Api.Password |
api | Служебная учётка сервиса Api | appsettings.ProdLinux.json сервиса Api — секция Api.Password |
auth | Служебная учётка сервиса Auth | appsettings.ProdLinux.json сервиса Auth — секция Api.Password |
logs | Служебная учётка сервиса Logs | appsettings.ProdLinux.json сервиса Logs — секция Api.Password |
lfx | Служебная учётка Langflow Backend | appsettings.ProdLinux.json сервиса Agent — секция Lfx.Password |
lfc | Служебная учётка Langflow Frontend | — |
Действия после смены пароля
-
Скопируйте зашифрованный пароль из вывода утилиты (строка
Encrypted password for appsettings). Это значение нужно вставить в конфигурацию сервисов. -
Обновите
appsettings.ProdLinux.jsonв каждом сервисе, использующем изменённую учётную запись (см. таблицу выше). Например, после смены пароля учётной записиagent:sudo nano /app/Primo.AI/Agent/appsettings.ProdLinux.jsonНайдите секцию
Apiи вставьте зашифрованное значение в полеPassword. -
Перезапустите затронутые сервисы:
# Пример для Agent sudo systemctl restart Primo.AI.Agent # Пример для сервисов в Docker (Api, Auth, Inference, Logs) docker compose -f /app/Primo.AI/Api/docker-compose.yaml down docker compose -f /app/Primo.AI/Api/docker-compose.yaml up -d
Рекомендации по безопасности
- Смените пароли всех служебных учётных записей сразу после установки Primo AI Server.
- Используйте
--generateдля создания криптостойких паролей вместо ручного выбора. - Не сохраняйте пароли в истории командной оболочки. Используйте переменную окружения для строки подключения и
--generateдля паролей. - Периодически выполняйте ротацию паролей служебных учётных записей.