Аутентификация
Чтобы взаимодействовать с сервером, 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, см. в разделе Группы областей видимости.
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 | Входящие в комплект прицелы |
|---|---|
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-tokenWHEN TO USE ACCOUNT TOKENS
Используйте жетоны счета, когда вам это необходимо:
- Аутентификация в средах CI, не поддерживающих OIDC
- Тонкий контроль над операциями, которые может выполнять токен
- Токен, с помощью которого можно получить доступ к нескольким проектам в рамках учетной записи
- Ограниченные по времени токены, срок действия которых автоматически истекает
