Skip to content

Tłumaczenie 🌍

Możesz przetłumaczyć lub poprawić tłumaczenie tej strony.

Wnieś swój wkład

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:

bash
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.

Obsługiwani dostawcy CI

  • Działania GitHub
  • CircleCI
  • Bitrise

Konfigurowanie uwierzytelniania OIDC

  1. Połącz swoje repozytorium z Tuist: Postępuj zgodnie z

    przewodnikiem integracji GitHub, aby połączyć swoje repozytorium GitHub z

    projektem Tuist.

  2. Uruchom tuist auth login: W przepływie pracy CI należy uruchomić tuist auth login przed 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.

ŚWIADCZENIA UBEZPIECZENIOWE

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 {#creating-an-account-token}.

bash
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:

OpcjaOpis
--zakresyWymagane. Oddzielona przecinkami lista zakresów, w których ma zostać przyznany token.
--nameWymagane. Unikalny identyfikator tokena (1-32 znaki, wyłącznie alfanumeryczne, myślniki i podkreślniki).
--wygasaOpcjonalnie. 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.
--projektyOgranicza 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

ZakresOpis
account:members:readPrzeczytaj członków konta
account:members:writeZarządzanie członkami konta
account:registry:readOdczyt z rejestru pakietów Swift
account:registry:writePublikowanie w rejestrze pakietów Swift
project:previews:readPobieranie podglądów
project:previews:writePrzesyłanie podglądów
project:admin:readOdczyt ustawień projektu
project:admin:writeZarządzanie ustawieniami projektu
project:cache:readPobieranie buforowanych plików binarnych
project:cache:writePrzesyłanie buforowanych plików binarnych
project:bundles:readWyświetl pakiety
project:bundles:writePrzesyłanie pakietów
project:tests:readOdczyt wyników testu
project:tests:writePrześlij wyniki testu
project:builds:readCzytaj analizy kompilacji
project:builds:writePrześlij dane analityczne kompilacji
project:runs:readUruchomione polecenie odczytu
project:runs:writeTworzenie 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 ScopeDołączone lunety
ciproject: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:

bash
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 kont {#managing-account-tokens}.

Aby wyświetlić listę wszystkich tokenów dla konta:

bash
tuist account tokens list my-account

Aby odwołać token według nazwy:

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

Używanie tokenów konta {#using-account-tokens}.

Tokeny konta powinny być zdefiniowane jako zmienna środowiskowa TUIST_TOKEN:

bash
export TUIST_TOKEN=your-account-token

KIEDY UŻYWAĆ TOKENÓW DO KONTA

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ą

Released under the MIT License.