Skip to main content

CLI: Авторизация

auth — команда для авторизации в Spirit через сервис-аккаунт или пользовательский логин. Срок действия токена — 1 час. Что такое Spirit CLI

Возможности

Изменить рабочую директорию

Для этого задайте значение переменной окружения DP_WORKDIR_:

DP_WORKDIR=~/temp-1/ ./dp auth print-token

Работать с несколькими конфигами одновременно

Для этого передайте разные значения переменной окружения DP_WORKDIR:

DP_WORKDIR=~/temp-1/ ./dp auth print-token
token1
DP_WORKDIR=~/temp-2/ ./dp auth print-token
token2

Логирование

Для запуска логирования в файл нужно передать параметр в переменную DP_LOGGER=debug. Файл логирования будет записан в директорию DP_WORKDIR.

Пример запуска:

DP_LOGGER=debug dp auth login

По умолчанию название файла debug.log который можно изменить через переменную окружения DP_DEBUG_LOG_FILE.

Аргументы

login

Аргумент для аутентификации вашей рабочей учётной записи в Spirit. Если выполнить команду, откроется вкладка в браузере для ввода логина и пароля учётной записи.

dp auth login

Пример корректного вывода StdOut:

user "t.malevinskaya@t-technologies.ru" successfully authorized
Ошибка: authorization grant failed:

Текст ошибки:

authorization grant failed: Post “https://polygon.t-technologies.ru/api/v1/oauth2/token”: dial tcp: lookup devplatform.tcsbank.ru on 0.0.0.0:53: read udp 127.0.0.1:57593->127.0.0.1:53: read: connection refused

Решение:

  1. Напишите запрос в Поддержку Spirit

service-acc

Аргумент для аутентификации сервис-аккаунта в Spirit.

Из файла

Чтобы прочитать токен из файла:

dp auth service-acc --key-file sa-test-0201-test-6f84e5d4-3247-4779-a1fb-e7f9994026d3.json
Через StdIn

Также вы можете ввести токен вручную. Всё зависит от того, как используемая система работает с переменными, валидирует символы и так далее. Есть несколько протестированных вариантов реализации:

echo $DP_SA_KEY | dp auth service-acc --key-file -

dp auth service-acc --key-file - <<< "$KEY"

Где:

ПараметрЦелевое значение
key-fileПуть к секретному файлу ключа SA, полученному с платформы разработки или "-", если SA ключ передается через stdin.
"$KEY"Файл с ключом сервис-аккаунта. Как его получить.

Успех — StdOut выдает строку:

service account successfully authorized

Код завершения — 0.


Аргумент выводит в StdOut текущий активный токен пользователя или сервис-аккаунта.

dp auth print-token

Если токена нет или он истёк, в StdErr будет выведено сообщение:

no active access token

Код завершения — 1.


configure-docker или configure-kaniko

Добавляет в конфигурацию Docker имя скрипта, который авторизует вас через Docker credential helpers и добавит сам скрипт в $PATH.

Docker credential helpers MacOS и Linux создается и сохраняется по пути /usr/local/bin.

Вызывайте команду один раз, потому что токены обновляются.

dp auth configure-docker
dp auth configure-kaniko
ПараметрЦелевое значение
config-pathПуть к конфигурации Docker JSON. По умолчанию: $HOME/.docker/config.json
helper-pathПуть к credential учетным данным Docker. По умолчанию: /usr/local/sbin/docker-credential-artifactory

crypto - Commands for encrypting secrets

encode-service-acc

Необходимо авторизация сервис-аккаунта. См. команду dp auth service-acc

Кодирует сервис аккаунт для дальнейшего использования в сценарии авторизации с использованием Container Registry Proxy.

dp crypto  encode-service-acc --sa-key sa-devplatform-key.json  --pub-keys devplatform/systems/syskey

Где:

ПараметрЦелевое значение
sa-keyПуть к секретному файлу ключа SA, полученному с платформы разработки
pub-keysЗапрос по шаблону tenant_key/systems/system_key для получения открытого ключа из хранилища tenant-manager