Uwierzytelnianie
Aby wejść w interakcję z serwerem, CLI musi uwierzytelnić żądania za pomocą uwierzytelniania na okaziciela. CLI obsługuje uwierzytelnianie jako użytkownik, jako konto lub przy użyciu tokena OIDC.
Jako użytkownik#
W przypadku korzystania z interfejsu CLI lokalnie na komputerze zalecamy uwierzytelnienie jako użytkownik. Aby uwierzytelnić się jako użytkownik, należy uruchomić następujące polecenie:
tuist auth login
Polecenie przeprowadzi użytkownika przez proces uwierzytelniania internetowego.
Po uwierzytelnieniu CLI będzie przechowywać długotrwały token odświeżania i
krótkotrwały token dostępu pod adresem ~/.config/tuist/credentials. Każdy plik
w katalogu reprezentuje domenę, w której dokonano uwierzytelnienia, co domyślnie
powinno mieć postać tuist.dev.json. Informacje przechowywane w tym katalogu są
wrażliwe, więc upewnij się, że są bezpieczne.
CLI automatycznie wyszuka poświadczenia podczas wykonywania żądań do serwera. Jeśli token dostępu wygasł, CLI użyje tokenu odświeżania, aby uzyskać nowy token dostępu.
Tokeny OIDC#
W przypadku środowisk CI, które obsługują OpenID Connect (OIDC), Tuist może uwierzytelniać się automatycznie, bez konieczności zarządzania długotrwałymi sekretami. Po uruchomieniu w obsługiwanym środowisku CI, CLI automatycznie wykryje dostawcę tokenów OIDC i wymieni token dostarczony przez CI na token dostępu Tuist.
Wspierani dostawcy usług CI#
- Działania GitHub
- CircleCI
- Bitrise
Konfigurowanie uwierzytelniania OIDC#
-
Połącz swoje repozytorium z Tuist: Postępuj zgodnie z przewodnikiem integracji GitHub, aby połączyć swoje repozytorium GitHub z projektem Tuist.
-
Uruchom
tuist auth login: W przepływie pracy CI należy uruchomićtuist auth loginprzed poleceniami wymagającymi uwierzytelnienia. Interfejs CLI automatycznie wykryje środowisko CI i uwierzytelni się przy użyciu OIDC.
Przykłady konfiguracji dla poszczególnych dostawców można znaleźć w przewodniku Continuous Integration.
Zakresy tokenów OIDC#
Tokenom OIDC przyznawana jest grupa ci scope, która zapewnia dostęp do
wszystkich projektów połączonych z repozytorium. Zobacz Grupy
zakresów by dowiedzieć się więcej o tym, co zawiera zakres ci.
Uwierzytelnianie OIDC jest bezpieczniejsze niż długotrwałe tokeny, ponieważ
- Brak sekretów do rotacji lub zarządzania
- Tokeny są krótkotrwałe i przypisane do poszczególnych przepływów pracy
- Uwierzytelnianie jest powiązane z tożsamością repozytorium.
Tokeny konta#
W przypadku środowisk ciągłej integracji, które nie obsługują OIDC, lub gdy potrzebna jest precyzyjna kontrola nad uprawnieniami, można użyć tokenów kont. Tokeny kont umożliwiają dokładne określenie zakresów i projektów, do których token może uzyskać dostęp.
Tworzenie tokenu konta#
tuist account tokens create my-account \
--scopes project:cache:read project:cache:write \
--name ci-cache-token \
--expires 1y
Polecenie akceptuje następujące opcje:
| Opcja | Opis |
|---|---|
--zakresy |
Wymagane. Oddzielona przecinkami lista zakresów, w których ma zostać przyznany token. |
--name |
Wymagane. Unikalny identyfikator tokena (1-32 znaki, wyłącznie alfanumeryczne, myślniki i podkreślniki). |
--wygasa |
Opcjonalnie. Kiedy token powinien wygasnąć. Użyj formatu takiego jak 30d (dni), 6m (miesiące) lub 1y (lata). Jeśli nie zostanie określony, token nigdy nie wygaśnie. |
--projekty |
Ogranicza token do określonych uchwytów projektów. Jeśli nie określono inaczej, token ma dostęp do wszystkich projektów. |
Dostępne zakresy#
| Zakres | Opis |
|---|---|
account:members:read |
Przeczytaj członków konta |
account:members:write |
Zarządzanie członkami konta |
account:registry:read |
Odczyt z rejestru pakietów Swift |
account:registry:write |
Publikowanie w rejestrze pakietów Swift |
project:previews:read |
Pobieranie podglądów |
project:previews:write |
Przesyłanie podglądów |
project:admin:read |
Odczyt ustawień projektu |
project:admin:write |
Zarządzanie ustawieniami projektu |
project:cache:read |
Pobieranie buforowanych plików binarnych |
project:cache:write |
Przesyłanie buforowanych plików binarnych |
project:bundles:read |
Wyświetl pakiety |
project:bundles:write |
Przesyłanie pakietów |
project:tests:read |
Odczyt wyników testu |
project:tests:write |
Prześlij wyniki testu |
project:builds:read |
Czytaj analizy kompilacji |
project:builds:write |
Prześlij dane analityczne kompilacji |
project:runs:read |
Uruchomione polecenie odczytu |
project:runs:write |
Tworzenie i aktualizowanie przebiegów poleceń |
Grupy zakresów#
Grupy zakresów zapewniają wygodny sposób przyznawania wielu powiązanych zakresów za pomocą jednego identyfikatora. Gdy używasz grupy zakresów, automatycznie rozszerza się ona, aby objąć wszystkie indywidualne zakresy, które zawiera.
| Grupa Scope | Dołączone lunety |
|---|---|
ci |
project:cache:write, project:previews:write, project:bundles:write, project:tests:write, project:builds:write, project:runs:write |
Ciągła integracja#
W przypadku środowisk ciągłej integracji, które nie obsługują OIDC, można
utworzyć token konta z grupą zakresu ci w celu uwierzytelnienia przepływów
pracy ciągłej integracji:
tuist account tokens create my-account --scopes ci --name ci
Spowoduje to utworzenie tokenu ze wszystkimi zakresami potrzebnymi do typowych
operacji CI (pamięć podręczna, podglądy, pakiety, testy, kompilacje i
uruchomienia). Wygenerowany token należy przechowywać jako sekret w środowisku
CI i ustawić go jako zmienną środowiskową TUIST_TOKEN.
Zarządzanie tokenami konta#
Aby wyświetlić listę wszystkich tokenów dla konta:
tuist account tokens list my-account
Aby odwołać token według nazwy:
tuist account tokens revoke my-account ci-cache-token
Korzystanie z tokenów konta#
Tokeny konta powinny być zdefiniowane jako zmienna środowiskowa TUIST_TOKEN:
export TUIST_TOKEN=your-account-token
Korzystaj z tokenów konta, gdy tego potrzebujesz:
- Uwierzytelnianie w środowiskach CI, które nie obsługują OIDC
- Szczegółowa kontrola nad tym, jakie operacje może wykonywać token
- Token umożliwiający dostęp do wielu projektów w ramach konta
- Ograniczone czasowo tokeny, które automatycznie wygasają