Работа с Connector Creation Tool
Connector Creation Tool (CCT) — это утилита командной строки для создания и отладки собственных типов сервисного подключения. Созданный с помощью этой утилиты архив загружается в PAM в разделе Конфигурация → Сервисное подключение.
Предварительные требования
Для запуска на Windows нет дополнительных требований.
Для запуска на Linux требуется наличие установленных Microsoft .NET Core 8 и Docker.
Подготовка
Для удобства работы с утилитой Connector Creation Tool (CCT) добавьте для нее псевдоним с помощью команды, указанной ниже. Перед выполнением команды замените
на то расположение в файловой системе, по которому находится Connector Creation Tool.<путь до CCT>Выполните указанную команду, затем закройте терминал и откройте заново.
- Windows
- Linux
Добавление пути до CCT в переменную окружения"New-Alias cct <путь до CCT>\Pam.Tools.ConnectorCreationTool.exe" | Add-Content $PROFILEДобавление пути до CCT в переменную окруженияecho 'alias cct="<путь до CCT>/run-cct.sh"' >> ~/.bashrcСоздайте папку для коннектора и перейдите в нее:
Создание папки для коннектораmkdir my_connector
cd my_connectorСоздайте шаблон коннектора с помощью команды
new:Создание шаблона коннектораcct newТип коннектора выбирается в зависимости от ОС: на Windows — ps1, на Linux — sh. При необходимости можно поменять тип в опциях команды
new, подробную информацию смотрите в справочнике команд.После выполнения команды в директории появятся основные файлы коннектора. Подробную информацию смотрите в пункте структура коннектора.
В файле connector.ps1/sh по умолчанию есть методы, которые требуется реализовать. Изначально они возвращают ошибку и содержат закомментированные примеры с корректно возвращаемыми данными. Реализуйте эти методы.
ИнформацияОсновной скрипт коннектора должен быть написан на языке bash или powershell, в зависимости от выбранного типа коннектора. При этом для реализации методов можно использовать любые языки и технологии, в зависимости от того, на чем удобнее делать обращения к ресурсу. В этом случае понадобится в основном скрипте connector.ps1/sh вызывать ваши скрипты или исполняемые файлы, созданные на других языках.
Переходите к отладке коннектора.
Отладка
После того, как методы в скрипте реализованы, можно проверить корректность их выполнения с помощью команды run. Подробную информацию о команде run смотрите в справочнике команд.
Проверьте соединение до коннектора.
Проверка соединения до коннектораcct run test_connection -a <DNS или IP-адрес коннектора>Проверьте команду установки пароля для пользователя.
Установка пароля для пользователяcct run set_user_password -a <DNS или IP-адрес коннектора> --user <пользователь> --new-password <новый пароль>Проверьте команду установки ключа для пользователя.
Установка ключа для пользователяcct run set_user_key -a <DNS или IP-адрес коннектора> --user <пользователь> --old-key-path <старый ключ> --new-key-path <новый ключ>Проверьте команду проверки пароля пользователя.
Проверка пароля пользователяcct run test_password -a <DNS или IP-адрес коннектора> --user <пользователь> --password <пароль>Проверьте команду проверки ключа пользователя.
Проверка ключа пользователяcct run test_key -a <DNS или IP-адрес коннектора> --user <пользователь> --key-path <ключ>Проверьте команду проверки наличия неуправляемых ключей.
Проверка наличия неуправляемых ключейcct run test_unmanaged_keys -a <DNS или IP-адрес коннектора> --user <пользователь> --key-path <ключ>Проверьте команду удаления неуправляемых ключей.
Удаление неуправляемых пользователем ключейcct run remove_unmanaged_keys -a <DNS или IP-адрес коннектора> --key-path <ключ>Проверьте команду получения информации о ресурсе.
Получение информации о ресурсеcct run get_resource_info -a <DNS или IP-адрес коннектора>Проверьте команду получения информации об аккаунте.
Получение информации об аккаунтеcct run get_account_info -a <DNS или IP-адрес коннектора> --user <пользователь>Проверьте команду получения списка пользователей.
Получение списка пользователейcct run get_users -a <DNS или IP-адрес коннектора>После проверки всех сервисных операций переходите к упаковке коннектора.
Упаковка
Упакуйте файлы коннектора в ZIP-архив, чтобы в дальнейшем загрузить его в РАМ. Для этого выполните следующую команду в той же директории:
cct pack
Подробную информацию о команде pack смотрите в справочнике команд.
Готовый ZIP-архив будет записан в родительскую директорию. Далее переходите в PAM в раздел Конфигурация → Сервисное подключение, чтобы загрузить ZIP-архив коннектора.
Структура
В ZIP-архиве коннектора есть три основных файла:
- info.json — метаданные коннектора;
- info.schema.json — JSON-схема файла info.json;
- connector.ps1/sh — скрипт, выполняющий сервисные операции.
Кроме основных файлов коннектор может содержать любые другие файлы, в том числе бинарные, кроме файлов с именем wrapper.ps1 и wrapper.sh Эти имена файлов зарезервированы под PAM для вспомогательного скрипта для запуска коннектора.
Максимальный размер ZIP-архива коннектора — 100 МБ.
{
"$schema": "info.schema.json",
"Id": "TestBashConnector",
"Name": "Test Bash connector",
"Description": "This is a test connector",
"Version": "1.0",
"CreatedAt": "2024-12-05 14:45:03Z",
"ConnectorType": "sh",
"ScriptTimeout": 30,
"IsKeyServiceOperationSupported": false,
"LinuxSandbox": {
"Image": "my-test-connector:1.0",
"CpuLimit": "0.5",
"MemoryLimitMb": "512",
"StorageLimitMb": "1024",
"PidCountLimit": "8"
}
}
$schema— имя файла JSON-схемы.Id— идентификатор коннектора, должен быть уникальным в рамках PAM.Name— имя коннектора, которое будет отображаться в PAM, должно быть уникальным в рамках PAM.Description— описание коннектора, которое можно будет просмотреть в деталях коннектора в PAM. Опциональное поле.Version— версия коннектора.CreatedAt— время создания коннектора, указывается автоматически при упаковке коннектора.ConnectorType— тип коннектора (sh или ps1).ScriptTimeout— таймаут работы коннектора в секундах. Если при выполнении сервисной операции скрипт не завершится за указанное время, то операция завершится по таймауту.IsKeyServiceOperationSupported— параметр, показывающий, поддерживает ли коннектор работу с SSH-ключами. Если в скрипте реализованы операции с SSH-ключами, то укажите true.LinuxSandbox— опциональный раздел. Содержит настройки для переопределения настроек по умолчанию Docker-песочницы, указанных в Core/appsettings.json.Image— тег Docker-образа для выполнения песочницы.CpuLimit— ограничение работы CPU одного контейнера песочницы.MemoryLimitMb— ограничение работы по памяти одного контейнера песочницы.StorageLimitMb— ограничение временного хранилища одного контейнера песочницы.PidCountLimit— ограничение количества процессов одного контейнера песочницы.
Для PowerShell-коннекторов песочницы нет.
Справочник команд
new
Создает шаблон для нового коннектора. Данная команда генерирует файлы info.json, info.schema.json и connector.ps1/sh в указанной директории.
- Windows
- Linux
<путь до CCT>\Pam.Tools.ConnectorCreationTool.exe new -t ps1 -p C:\Users\user\documents\folder1\
bash <путь до CCT>/run-cct.sh new -t ps1 -p /home/user/documents/folder1/
Параметры команды new
| Имя | Обязательный | Описание |
|---|---|---|
-v, --verbose | — | Включить показ дополнительных логов. |
-p, --path path | — | Путь до каталога, в котором будут созданы файлы info.json и connector.ps1. Если не указан, то файлы будут созданы в текущей папке. |
-t, --type type | — | Тип скрипта коннектора. Возможные значения: sh, ps1.
|
-h, --help | — | Информация об использовании и помощь. |
pack
Создает ZIP-архив коннектора для последующей загрузки в консоли администратора.
- Windows
- Linux
<путь до CCT>\Pam.Tools.ConnectorCreationTool.exe pack -p C:\Users\user\documents\folder1\ -n b80d094b715aa08375b87e9.1.1
bash <путь до CCT>/run-cct.sh pack -p /home/user/documents/folder1/ -n b80d094b715aa08375b87e9.1.1
Параметры команды pack
| Имя | Обязательный | Описание |
|---|---|---|
-v, --verbose | — | Включить показ дополнительных логов. |
-p, --path path | — | Путь до коннектора. |
-n, --name name | — | Имя ZIP-файла без указания расширения ZIP. По умолчанию имя состоит из значений полей ID и Version файла info.json. |
-h, --help | — | Информация об использовании и помощь. |
hash
Рассчитывает хеш SHA-256 файла. Используется для обеспечения целостности файлов.
- Windows
- Linux
<путь до CCT>\Pam.Tools.ConnectorCreationTool.exe hash -p C:\Users\user\documents\folder1\
bash <путь до CCT>/run-cct.sh hash -p /home/user/documents/folder1/
Параметры команды hash
| Имя | Обязательный | Описание |
|---|---|---|
-v, --verbose | — | Включить показ дополнительных логов. |
-p, --path path | Да | Путь до коннектора (ZIP-архив). |
-h, --help | — | Информация об использовании и помощь. |
run
Запускает коннектор, выполняет скрипт коннектора в указанной директории.
- Windows
- Linux
<путь до CCT>\Pam.Tools.ConnectorCreationTool.exe run test_connection -p C:\Users\user\documents\folder1\ -a 192.168.5.1
bash <путь до CCT>/run-cct.sh run test_connection -p /home/user/documents/folder1/ -a 192.168.5.1
Параметры команды run
| Имя | Обязательный | Описание |
|---|---|---|
-v, --verbose | — | Включить показ дополнительных логов. |
-p, --path | — | Путь до коннектора (ZIP-архив или директория). |
-a, --address address | Да | Адрес коннектора в виде DNS или IP. |
--port port | — | Порт коннектора. |
-sa, --service-account account | — | Имя сервисного аккаунта. |
-sp, --service-account-password password | — | Пароль сервисного аккаунта. |
-skp, --service-account-key-path key-path | — | Ключ сервисного аккаунта. |
-slt, --service-account-location-type location-type | — | Тип нахождения сервисного аккаунта. Возможные значения: Domain, Local. |
--disable-sandbox | — | Отключить песочницу. |
-h, --help | — | Информация об использовании и помощь. |
Команды, которые можно запускать с помощью run
| Имя | Описание |
|---|---|
| test_connection | Проверить соединение до коннектора. |
| set_user_password | Установить пароль для пользователя. |
| set_user_key | Установить ключ для пользователя. |
| test_password | Проверить пароль пользователя. |
| test_key | Проверить ключ пользователя. |
| test_unmanaged_keys | Проверить наличие неуправляемых ключей. |
| remove_unmanaged_keys | Удалить неуправляемые пользователем ключи. |
| get_resource_info | Получить информацию о ресурсе. |
| get_account_info | Получить информацию об аккаунте. |
| get_users | Получить список пользователей. |