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, см. в разделе Группы областей видимости.

::: чаевые БЕЗОПАСНЫЕ БЕНЕФИТЫ

Аутентификация 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

::: совет КОГДА ИСПОЛЬЗОВАТЬ ТОКЕНЫ АККАУНТА

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

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

:::

Released under the MIT License.