Аутентификация
Чтобы взаимодействовать с сервером, 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
Подключите свой репозиторий к Tuist: Следуйте руководству
GitHub integration guide, чтобы подключить свой репозиторий GitHub к проектуTuist.
Выполните команду
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 | Входящие в комплект прицелы |
|---|---|
ci | project: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
- Тонкий контроль над операциями, которые может выполнять токен
- Токен, с помощью которого можно получить доступ к нескольким проектам в рамках учетной записи
- Ограниченные по времени токены, срок действия которых автоматически истекает
:::
