Skip to content

Перевод 🌍

Вы можете перевести или улучшить перевод этой страницы.

Внести вклад

Аутентификация

Чтобы взаимодействовать с сервером, CLI должен аутентифицировать запросы с помощью bearer authentication. CLI поддерживает аутентификацию как пользователя, как учетной записи или с помощью маркера OIDC.

Как пользователь

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

bash
tuist auth login

Команда проведет вас через веб-поток аутентификации. После аутентификации CLI будет хранить долгоживущий токен обновления и короткоживущий токен доступа в каталоге ~/.config/tuist/credentials. Каждый файл в этой директории представляет домен, на котором вы аутентифицировались, по умолчанию это tuist.dev.json. Информация, хранящаяся в этом каталоге, является конфиденциальной, поэтому позаботьтесь о ее сохранности.

CLI будет автоматически искать учетные данные при выполнении запросов к серверу. Если срок действия маркера доступа истек, CLI будет использовать маркер обновления для получения нового маркера доступа.

Токены OIDC

В средах CI, поддерживающих OpenID Connect (OIDC), Tuist может выполнять аутентификацию автоматически, не требуя от вас управления долговременными секретами. При работе в поддерживаемой среде CI CLI автоматически определяет поставщика токенов OIDC и обменивает предоставленный CI токен на токен доступа Tuist.

Поддерживаемые поставщики услуг CI

  • Действия GitHub
  • CircleCI
  • Bitrise

Настройка аутентификации OIDC

  1. Подключите свой репозиторий к Tuist: Следуйте руководству

    GitHub integration guide, чтобы подключить свой репозиторий GitHub к проекту

    Tuist.

  2. Выполните команду tuist auth login: В рабочем процессе CI выполните tuist auth login перед любыми командами, требующими аутентификации. CLI автоматически определит среду CI и выполнит аутентификацию с помощью OIDC.

Примеры конфигурации для конкретного поставщика см. в руководстве

Continuous Integration guide.

Области применения токенов OIDC

Токены OIDC получают группу охвата ci, которая предоставляет доступ ко всем проектам, подключенным к репозиторию. Подробную информацию о том, что включает в себя область видимости ci, см. в разделе Группы областей видимости.

SECURITY BENEFITS

Аутентификация OIDC более безопасна, чем долгоживущие токены, потому что:

  • Никаких секретов для ротации или управления
  • Токены недолговечны и привязаны к отдельным рабочим процессам
  • Аутентификация привязана к идентификатору хранилища.

Жетоны счета

Для сред CI, которые не поддерживают OIDC, или когда вам нужен тонкий контроль над разрешениями, вы можете использовать токены учетных записей. Токены учетных записей позволяют точно указать, к каким областям и проектам может получить доступ токен.

Создание маркера учетной записи

bash
tuist account tokens create my-account \
  --scopes project:cache:read project:cache:write \
  --name ci-cache-token \
  --expires 1y

Команда принимает следующие параметры:

ВариантОписание
-областиТребуется. Список областей, разделенных запятыми, для предоставления токена.
--имяТребуется. Уникальный идентификатор токена (1-32 символа, только буквенно-цифровые символы, дефисы и подчеркивания).
-истекаетНеобязательно. Когда срок действия токена должен истечь. Используйте формат 30d (дни), 6m (месяцы) или 1y (годы). Если не указано, срок действия токена не истекает.
-проектыОграничьте доступ токена к определенным дескрипторам проектов. Если не указано, токен имеет доступ ко всем проектам.

Доступные диапазоны

Область примененияОписание
счет:члены:читатьЧитать членов учетной записи
счет:члены:писатьУправление членами учетной записи
счет:реестр:читатьЧтение из реестра пакетов Swift
счет:реестр:записьПубликация в реестре пакетов Swift
проект:превью:читатьСкачать предварительные просмотры
проект:превьюшки:писатьЗагружайте предварительные просмотры
проект:администратор:читатьЧтение настроек проекта
проект:администратор:писатьУправление настройками проекта
проект:кэш:читатьЗагрузите кэшированные двоичные файлы
проект:кэш:записьЗагрузите кэшированные двоичные файлы
проект:комплекты:читатьПосмотреть комплекты
проект:комплекты:писатьЗагрузка пакетов
проект:тесты:читатьПрочитать результаты тестирования
проект:тесты:писатьЗагрузите результаты тестирования
проект:сборки:читатьЧитайте аналитику сборки
проект:сборки:писатьЗагрузите аналитику сборки
проект:бегает:читаетВыполнение команды чтения
проект:бегает:пишетСоздание и обновление командных запусков

Группы охвата

Группы диапазонов обеспечивают удобный способ предоставления нескольких связанных диапазонов с одним идентификатором. Когда вы используете группу диапазонов, она автоматически расширяется и включает все отдельные диапазоны, которые она содержит.

Scope GroupВходящие в комплект прицелы
ciproject:cache:write, project:previews:write, project:bundles:write, project:tests:write, project:builds:write, project:runs:write

Непрерывная интеграция

Для сред CI, не поддерживающих OIDC, можно создать маркер учетной записи с группой охвата ci для аутентификации рабочих процессов CI:

bash
tuist account tokens create my-account --scopes ci --name ci

В результате создается токен со всеми областями, необходимыми для типичных операций CI (кэш, предварительные просмотры, пакеты, тесты, сборки и запуски). Сохраните созданный токен как секрет в вашей среде CI и задайте его в качестве переменной окружения TUIST_TOKEN.

Управление токенами учетных записей

Чтобы перечислить все токены для учетной записи:

bash
tuist account tokens list my-account

Чтобы отозвать маркер по имени:

bash
tuist account tokens revoke my-account ci-cache-token

Использование токенов учетных записей

Токены учетных записей должны быть определены как переменная среды TUIST_TOKEN:

bash
export TUIST_TOKEN=your-account-token

WHEN TO USE ACCOUNT TOKENS

Используйте жетоны счета, когда вам это необходимо:

  • Аутентификация в средах CI, не поддерживающих OIDC
  • Тонкий контроль над операциями, которые может выполнять токен
  • Токен, с помощью которого можно получить доступ к нескольким проектам в рамках учетной записи
  • Ограниченные по времени токены, срок действия которых автоматически истекает

Released under the MIT License.