Skip to content

翻訳 🌍

このページの翻訳を行ったり、改善したりすることができます。

コントリビュートする

認証

サーバーと対話するために、CLIはベアラ認証を使用してリクエストを認証 する必要がある。CLIはユーザー認証、アカウント認証、OIDCトークン認証をサポートしている。

ユーザーとして

お使いのマシンでCLIをローカルに使用する場合は、ユーザーとして認証することをお勧めします。ユーザーとして認証するには、以下のコマンドを実行する必要があります:

bash
tuist auth login

このコマンドは、Webベースの認証フローを実行する。認証が完了すると、CLIは、~/.config/tuist/credentials の下に、長期間のリフレッシュ・トークンと短期間のアクセストークンを保存します。このディレクトリの各ファイルは、認証したドメインを表し、デフォルトではtuist.dev.json になります。そのディレクトリに保存されている情報は機密なので、安全を確保してください

CLI は、サーバへのリクエスト時に自動的に認証情報を検索します。アクセストークンの有効期限が切れている場合、CLI はリフレッシュトークンを使用して新しいアクセストークンを取得します。

OIDCトークン

OpenID Connect (OIDC)をサポートするCI環境では、Tuistは長期間のシークレットを管理することなく自動的に認証を行うことができます。サポートされているCI環境で実行すると、CLIは自動的にOIDCトークンプロバイダを検出し、CIが提供するトークンをTuistのアクセストークンと交換する。

サポートされるCIプロバイダー

  • GitHub アクション
  • サークルCI
  • ビットライズ

OIDC認証の設定 {#setting-up-oidc-authentication}.

  1. リポジトリをTuistに接続する:

    GitHub統合ガイドに従って、GitHubリポジトリをTuistプロジェクトに接続します。
  2. **tuist auth login** を実行してください:CI ワークフローでは、認証が必要なコマンドの前にtuist auth login` を実行してください。CLIは自動的にCI環境を検出し、OIDCを使って認証します。

プロバイダー固有の設定例については、Continuous Integrationガイドを参照してください。

OIDC トークンのスコープ {#oidc-token-scopes}.

OIDC トークンはci スコープグループに付与され、リポジトリに接続されているすべてのプロジェクトへのアクセスを提供します。ci スコープに含まれるものの詳細については、スコープグループ を参照してください。

::チップ セキュリティー・ベネフィット

OIDC認証は、長期間のトークンよりも安全である:

  • ローテーションや管理に秘密はない
  • トークンは短命で、個々のワークフロー実行にスコープされる
  • 認証はリポジトリIDに紐づく

:::

アカウント・トークン

OIDCをサポートしていないCI環境や、パーミッションのきめ細かな制御が必要な場合は、アカウントトークンを使うことができます。アカウントトークンでは、トークンがアクセスできるスコープやプロジェクトを厳密に指定することができます。

アカウント・トークンの作成

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のパッケージレジストリに公開する
プロジェクト:プレビュー:読むプレビューのダウンロード
project:previews:書き込みプレビューのアップロード
プロジェクト:admin:readプロジェクトの設定を読む
project:admin:書き込みプロジェクト設定の管理
project:cache:read(プロジェクトキャッシュキャッシュされたバイナリをダウンロードする
プロジェクト:キャッシュ:書き込みキャッシュされたバイナリをアップロードする
project:bundles:read(プロジェクト:バンドル:リードバンドルを見る
プロジェクト:バンドル:書き込みバンドルのアップロード
project:tests:readテスト結果を読む
project:tests:writeテスト結果のアップロード
project:builds:read(プロジェクト:ビルド:リードビルドアナリティクスを読む
プロジェクト:ビルド:書き込みビルド分析のアップロード
project:runs:read(プロジェクト・ランズ・リード読み取りコマンドの実行
project:runs:write(プロジェクト:ランズ:ライトコマンドランの作成と更新

スコープグループ

スコープグループは、関連する複数のスコープに単一の識別子を付与する便利な方法です。スコープグループを使用すると、スコープグループは自動的に拡張され、スコープグループに含まれるすべてのスコープを含むようになります。

スコープグループ付属スコープ
ciproject:cache:write,project:previews:write,project:bundles:write,project:tests:write,project:builds:write,project:runs:write

継続的インテグレーション

OIDCをサポートしていないCI環境では、ci scope groupでアカウントトークンを作成し、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

アカウント・トークンを使うタイミング

必要なときにアカウントトークンを使う:

  • OIDCをサポートしないCI環境での認証
  • トークンが実行できる操作のきめ細かな制御
  • アカウント内の複数のプロジェクトにアクセスできるトークン
  • 自動的に失効する時間制限付きトークン

Released under the MIT License.