- 概要
- はじめに
- 概念
- UiPath CLI を使用する
- 使用ガイド
- CI/CD レシピ
- コマンド リファレンス
- 概要
- 終了コード
- グローバル オプション
- uip codedagent
- UIP コーダー
- UIP のコンテキスト グラウンディング
- uip docsai
- uip 関数
- UIP ガードレール
- uip llm - 構成
- uip llm-gateway
- uip model-hub
- add-test-data-entity
- テスト データのキューを追加
- 追加-テスト-データ-バリエーション
- 分析
- 開発
- プロジェクトを作成
- 差分
- アクティビティを検索
- GET-ANALYZER-RULES
- get-default-activity-xaml
- エラーを取得
- 手動テスト用のテスト ケースを取得
- 手動テストステップを取得
- get-library-object-repository
- オブジェクト リポジトリを取得
- get-versions
- Get-workflow-example
- indicate-application
- 要素を示す
- inspect-package
- install-data-fabric-entities
- パッケージのインストールまたは更新
- list-data-fabric-entities
- リスト - インスタンス
- list-workflow-examples
- パッケージ化
- パブリッシュ
- リモート
- 元に戻す
- 実行、デバッグ、実行
- ファイル名を実行
- 検索テンプレート
- スタートスタジオ
- 実行を停止
- TM
- UIA
- UIP タスク
- uip traces
- UIP トレースのフィードバック
- 移行
- 参照とサポート
認証
対話型の OAuth2、外部アプリの資格情報、または環境変数トークン フローを使用して UiPath CLI を認証します。
UiPath CLI は 5 つの認証フローをサポートしています。ラップトップ上の開発者、外部アプリケーションを使用して Orchestrator を呼び出す CI/CD パイプライン、長期間使用されるシークレットを保持する代わりに独自の OIDC トークンを発行できる CI/CD プラットフォーム、アクセス トークンをすでに保持しているコンテナーまたはエフェメラル ランナー、ローカルの UiPath Robot と並行して実行されるプロセスの 5 つです。最初の 3 つは同じ場所 (認証されたセッションは、後続のすべての uip コマンドが再利用する資格情報フォルダーに保持されます) で終了しますが、トークンの取得方法と CLI がトークンを更新する方法が異なります。4 つ目は、ディスク上のステートを完全にバイパスします。5 番目は、ローカル IPC チャネル経由でロボット自身の ID に従います。
フローを選択する
| あなたは。。。 | これを使用する | 方法 |
|---|---|---|
| ノート PC またはワークステーションを使用している開発者 | 対話型 OAuth2 | uip login ブラウザーを開き、一度サインインすると、トークンは自動的に保存および更新されます。 |
| CI/CD パイプラインまたはサーバー | 外部アプリケーション (クライアント資格情報) | UiPath で外部アプリを作成し、その ID とシークレットを uip login --client-id … --client-secret …に渡します。トークンは保存および更新されます。 |
| 独自の OIDC トークン (ワークロード ID) を鋳造できる CI/CD プラットフォーム | フェデレーション資格情報 | uip login --client-id <app-id> --client-assertion env.OIDC_TOKEN — OIDC JWT はクライアント シークレットの代わりとなるため、保存またはローテーションする有効期間が長いシークレットはありません。--client-idが必要です。--client-secretと相互に排他的です。 |
| コンテナー、エフェメラル ランナー、または既にトークンを保持しているプロセス | 環境変数認証 | UIPATH_CLI_ENABLE_ENV_AUTH=trueを設定し、環境変数を使用してトークン + 組織/テナントを指定します。ファイルは書き込まれません。更新なし。 |
| ローカルの UiPath Robot がインストールされたマシンで実行されているプロセス | ロボットの資格情報 | を設定します UIPATH_CLI_ENFORCE_ROBOT_AUTH=true。uip は、上記のいずれかではなく、ロボットのローカル IPC チャネルを介して認証します。 |
uip logout 、最初の 3 つのフローからディスク上の資格情報をすべてクリアします。環境変数フローにはクリアするものが何もありません — 環境変数の設定を解除します。ロボットの資格情報もクリアする必要はありません。つまり、ロボットが ID を所有しています。
--profile <name> は、セッションに名前を付けるグローバル フラグ (「 グローバル オプション」を参照) であるため、最初の 3 つのフローのいずれかにわたる複数のログインが並行して共存できます。指定した名前付きセッションを再利用する必要があるすべてのコマンドに同じ--profileを渡します。uip login および uip logoutの --file/-f と相互に排他的です。
フロー 1 — 対話型 OAuth2
引数なしで uip login を実行します。
uip login
uip login
uip 、UiPath のサインイン ページで既定のブラウザーが開きます。認証後、UiPath はリッスンしているローカル コールバックにリダイレクト uip 、CLI によってテナントを選択するように求められます。テナントを選択するとセッションが保存され、完了です。
便利なフラグ:
uip login --tenant DefaultTenant # skip the tenant picker
uip login --organization my-org # skip the org picker for users in multiple orgs
uip login --interactive # explicitly show the tenant picker even if --tenant was set
uip login --authority https://example.com # point at a non-default identity authority (Automation Suite, staging)
uip login --scope "OR.Folders OR.Jobs" # restrict the session to specific scopes
uip login --file /path/to/creds # store credentials in a non-default folder
uip login --tenant DefaultTenant # skip the tenant picker
uip login --organization my-org # skip the org picker for users in multiple orgs
uip login --interactive # explicitly show the tenant picker even if --tenant was set
uip login --authority https://example.com # point at a non-default identity authority (Automation Suite, staging)
uip login --scope "OR.Folders OR.Jobs" # restrict the session to specific scopes
uip login --file /path/to/creds # store credentials in a non-default folder
資格情報の保存場所
既定では、セッションは .uipath/ フォルダー内に保存されます。uip このフォルダーを次の 3 か所で順番に検索します。
- 明示的なフォルダ —
--file <folder>を渡すと、CLI はそのフォルダを使用します。ファイル パスではなくフォルダーを渡します。 - 現在の作業ディレクトリから
.uipath/を探して移動し、プロジェクト フォルダーがユーザーのホームに触れることなく独自のセッションを実行できるようにします。 ~/.uipath/— 既定のフォールバックです。
ウォークアップ チェーンのどこにも .uipath/ が存在しない場合、 uip login は ~/.uipath/に 1 つを作成します。フォルダーの内容は不透明として扱います。 uip login、 uip login tenant set、および uip logoutで管理されます。
セッションの途中でテナントを管理する
このセッションには、一度に 1 つのアクティブなテナントが格納されます。完全なログイン フローを再実行せずに切り替えます。
uip login tenant list # show all tenants available to your account
uip login tenant set MyTenant # switch the active tenant
uip login tenant list # show all tenants available to your account
uip login tenant set MyTenant # switch the active tenant
uip login status には、現在の組織、テナント、およびトークンの有効期限が表示されます。
更新は自動的に行われます
uip は、アクセス トークンの有効期限が近づくと、バックグラウンドで更新されます。更新トークン自体の有効期限が切れるか取り消された場合、またはテナント/組織を変更した場合を除き、 uip login を再実行する必要はありません。
ヘッドレス対話型ログイン (--no-browser)
uip login 通常はシステム ブラウザーを開きます。ヘッドレス環境 (外部アプリではなく実際のユーザー ID (更新トークンを含む) を必要としているが、表示のない CI ドライバー) では、 --no-browserを渡します (または を設定しますUIPATH_CLI_NO_BROWSER=true
uip login --no-browser --tenant DefaultTenant
uip login --no-browser --tenant DefaultTenant
これにより、対話型フロー (PKCE、ステート、ローカル コールバック、トークンの保存) 全体は維持されますが、ブラウザーは起動しません。代わりに、 stderr への authorize URL を安定したマーカー行として出力します。
UIPATH_AUTH_URL https://cloud.uipath.com/identity_/connect/authorize?...
UIPATH_AUTH_URL https://cloud.uipath.com/identity_/connect/authorize?...
外部オートメーション (Playwright スクリプトなど) がその行を読み取って、制御するブラウザーで URL を開いてサインインを完了すると、ID プロバイダーは通常どおり uipのローカル コールバックにリダイレクトします。人間がクリックスルーしたのと同じ方法でログインを完了します。
出力された URL は CI ログに表示しても問題ありません。公開される OAuth 値 (PKCE code_challenge、 state、 client_id、 redirect_uri、 scope) のみが含まれ、シークレットもトークンも含まれません。--no-browser フロー 2 またはフロー 3 には影響しません (クライアント資格情報とフェデレーション ログインでは関係なくブラウザーは開かれません)。 --client-secret または --client-assertionと一緒に渡すと警告がログに記録されます。
フロー 2 — 外部アプリケーション (クライアント資格情報)
UiPath で外部アプリケーション (Automation Cloud: 管理→外部アプリケーション) を作成します。
- アプリケーションの種類: 機密
- 付与タイプ: クライアント資格情報
- スコープ: パイプラインに必要なスコープ (
OR.Folders、OR.Jobs、OR.Execution、OR.Assets、OR.Usersなど) です。
生成された アプリ ID と アプリ シークレットをコピーし、パイプラインのシークレット ストア (GitHub Actions シークレット、Azure DevOps 変数グループ、Jenkins 資格情報、コンテナーなど) に格納します。
パイプラインからサインインします。
uip login \
--client-id env.UIPATH_CLIENT_ID \
--client-secret env.UIPATH_CLIENT_SECRET \
--tenant "$UIPATH_TENANT"
uip login \
--client-id env.UIPATH_CLIENT_ID \
--client-secret env.UIPATH_CLIENT_SECRET \
--tenant "$UIPATH_TENANT"
環境。VAR_NAMEプレフィックス
--client-id と --client-secret は、リテラル値、または実行時に環境変数に解決される特別なプレフィックス env. のいずれかを受け入れます。env.UIPATH_CLIENT_ID は、「 UIPATH_CLIENT_ID 環境変数から値を読み取る」という意味です。これにより、コマンド ラインで展開される --client-secret "$UIPATH_CLIENT_SECRET"とは異なり、シェルの履歴とプロセス リストからシークレット値が除外されます。
リテラル値は引き続き機能します。
uip login --client-id 3c7af0…-… --client-secret s3cr3t… # works, but the secret is visible in history
uip login --client-id 3c7af0…-… --client-secret s3cr3t… # works, but the secret is visible in history
UIPATH_CLIENT_ID/UIPATH_CLIENT_SECRET を環境変数として設定せずuip login自動的に取得されることを期待してください。UiPath CLI 1.0 より前のバージョンでは、 uip login --env および暗黙的な環境変数の読み取りがサポートされていました。それらは削除されました。フラグは、リテラル値または env. プレフィックスのいずれかを使用して明示的に渡す必要があります。
スコープの上書き
外部アプリに複数のスコープがあり、特定のスクリプトに対してより狭いセッションが必要な場合は、 --scope渡します。
uip login \
--client-id env.UIPATH_CLIENT_ID \
--client-secret env.UIPATH_CLIENT_SECRET \
--tenant "$UIPATH_TENANT" \
--scope "OR.Folders OR.Jobs"
uip login \
--client-id env.UIPATH_CLIENT_ID \
--client-secret env.UIPATH_CLIENT_SECRET \
--tenant "$UIPATH_TENANT" \
--scope "OR.Folders OR.Jobs"
フロー 3 — フェデレーション資格情報 (ワークロード ID)
独自の OIDC トークンを鋳造できる CI/CD プラットフォームの場合。作成、保存、ローテーションする外部アプリのクライアント シークレットはありません。
uip login \
--client-id "$UIPATH_CLIENT_ID" \
--client-assertion env.OIDC_TOKEN \
--tenant "$UIPATH_TENANT"
uip login \
--client-id "$UIPATH_CLIENT_ID" \
--client-assertion env.OIDC_TOKEN \
--tenant "$UIPATH_TENANT"
--client-assertion は --client-secretの代わりに OIDC JWT を受け取り、 --client-id/--client-secret と同様に、実行時に環境変数からトークンを読み取るための env. プレフィックスを受け入れます (推奨: 生の JWT をリテラル値として渡すと、シェル履歴やプロセス リストに表示されるため、警告が出力されます)。
uip loginによって適用されるルール:
--client-idが必要です。フェデレーション ログインでは、外部アプリは引き続きクライアント ID によって識別されます。シークレットのみが置換されます。--client-secretと相互に排他的です。両方を渡すと失敗します--client-secret cannot be combined with --client-assertion.--organizationは無視されます。組織は、クライアント資格情報のログインと同じクライアント ID によって固定されます。--no-browser効果はありません。クライアント資格情報によるログインと同様に、このフローではブラウザーが開かれません。
認証されると、セッションは外部アプリのセッションのように動作します。保持され、自動的に更新され、 uip logoutでクリアされます。
フロー 4 — 環境変数による認証 (アクセス トークンが既に手持ち)
一部の環境 (別のパイプラインで構築されたコンテナー、スケジュールされたジョブ、テスト フィクスチャ) には既に有効な UiPath アクセス トークンが保持されており、対話型サインインやクライアントと資格情報の交換は必要ありません。環境変数認証フローを有効にするには、次のように設定します。
export UIPATH_CLI_ENABLE_ENV_AUTH=true
export UIPATH_CLI_AUTH_TOKEN="$UIPATH_TOKEN" # JWT access token
export UIPATH_CLI_ORGANIZATION_NAME=my-org
export UIPATH_CLI_ORGANIZATION_ID="$UIPATH_ORG_ID"
export UIPATH_CLI_TENANT_NAME=DefaultTenant
export UIPATH_CLI_TENANT_ID="$UIPATH_TENANT_ID"
export UIPATH_CLI_ENABLE_ENV_AUTH=true
export UIPATH_CLI_AUTH_TOKEN="$UIPATH_TOKEN" # JWT access token
export UIPATH_CLI_ORGANIZATION_NAME=my-org
export UIPATH_CLI_ORGANIZATION_ID="$UIPATH_ORG_ID"
export UIPATH_CLI_TENANT_NAME=DefaultTenant
export UIPATH_CLI_TENANT_ID="$UIPATH_TENANT_ID"
UIPATH_CLI_ENABLE_ENV_AUTH=trueを使用すると、uip を呼び出すたびにこれらの変数から認証が行われ、.uipath/ フォルダーが完全にバイパスされます。uip loginステップはなく、ディスクには何も書き込まれません。
注意事項と制限事項
- 不透明なトークン。呼び出し元は、トークンの鮮度に対する責任を担います。更新フローはありません。トークンの有効期限が切れると、変数がローテーションされるまで、
uip login statusレポートExpiredとコマンドが失敗します。 - サーバー URL は JWT から派生します。
UIPATH_CLI_AUTH_TOKENが JWT アクセス トークンを保持している場合、そのissクレームは権限のあるものになります。UIPATH_URLは設定しません。これにより、パイプラインの設定がトークンと一致しない場合に、UIPATH_URL誤ったルーティングを防止できます。これは、個人用アクセス トークンには当てはまり ません 。以下をご覧ください。 - ゲートは重要です。
UIPATH_CLI_ENABLE_ENV_AUTHが未設定の場合、またはリテラル文字列true以外に設定されている場合は、ファイルベースのフローが使用されます。ゲートのスペルミスは静かにフォールバックします—uip login statusに確認してください。 - 欠損値は明示的に失敗します。必要な変数が空の場合、
uipは、一般的な「未認証」ではなく、問題のある変数の名前付けに関する明確なエラーを返します。
env-var authを使用したGitHub Actionsステップの例:
- name: Run uip against Orchestrator
env:
UIPATH_CLI_ENABLE_ENV_AUTH: "true"
UIPATH_CLI_AUTH_TOKEN: ${{ secrets.UIPATH_TOKEN }}
UIPATH_CLI_ORGANIZATION_NAME: contoso
UIPATH_CLI_ORGANIZATION_ID: ${{ secrets.UIPATH_ORG_ID }}
UIPATH_CLI_TENANT_NAME: Default
UIPATH_CLI_TENANT_ID: ${{ secrets.UIPATH_TENANT_ID }}
run: uip or folders list --output json
- name: Run uip against Orchestrator
env:
UIPATH_CLI_ENABLE_ENV_AUTH: "true"
UIPATH_CLI_AUTH_TOKEN: ${{ secrets.UIPATH_TOKEN }}
UIPATH_CLI_ORGANIZATION_NAME: contoso
UIPATH_CLI_ORGANIZATION_ID: ${{ secrets.UIPATH_ORG_ID }}
UIPATH_CLI_TENANT_NAME: Default
UIPATH_CLI_TENANT_ID: ${{ secrets.UIPATH_TENANT_ID }}
run: uip or folders list --output json
JWT の代わりに個人用アクセス トークンを使用する
UIPATH_CLI_AUTH_TOKEN は、 uip admin pat create で鋳造され、 uip admin pat list/revoke/regenerateで管理される UiPath 個人用アクセス トークン (PAT — 不透明な「参照トークン」) も受け入れます。PAT は JWT ではないため、 iss クレームは含まれません。これにより、上記のルールが 1 つ変更されます。
UIPATH_URL必須になります。CLI は不透明なトークンからサーバー URL を取得できないためUIPATH_URL、 (例:https://cloud.uipath.com) を明示的に指定します。トークンが JWT の場合は無視されますが、PAT の場合は必須です。- 有効期限は報告されません。
uip login statusには、有効期限と ID フィールドのないLogged inが表示されます。トークンは不透明であるため、CLI にも知る方法がありません。PAT が取り消されたか有効期限が切れると、コマンドは401で失敗し、事前にローカルで警告が送信されません。有効期限は自分で追跡してください。 - このフローのその他の変数 (ゲート、テナント/組織名、ID) はすべて JWT と同じように機能します。
フロー 5 — ロボットの資格情報 (ローカルの UiPath Robot)
ローカルの UiPath Robot (デスクトップ版の Studio とその他のロボットがホストするコンテキスト) とともに実行されるプロセスの場合、認証では、CLI がそれ自体で管理するトークンではなく、ローカルの IPC チャネル経由でロボット自身の ID に完全に従うことができます。
export UIPATH_CLI_ENFORCE_ROBOT_AUTH=true
uip or folders list
export UIPATH_CLI_ENFORCE_ROBOT_AUTH=true
uip or folders list
ゲートを設定すると、 uip は、アクセス トークンとリソース ベース URL の両方についてロボットの IPC エンドポイントと通信し、 .uipath/ 資格情報フォルダーと env-var フローを完全にバイパスします。UIPATH_CLI_ENFORCE_ROBOT_AUTH と UIPATH_CLI_ENABLE_ENV_AUTH は相互に排他的です。両方を設定してもエラーであり、サイレント オーバーライドではありません。uip loginステップも、管理すべき更新も、uip logoutクリアすべきものもありません。
サインアウトする
uip logout # clear the default credentials folder
uip logout --file /path/to/creds # clear a non-default credentials folder
uip logout # clear the default credentials folder
uip logout --file /path/to/creds # clear a non-default credentials folder
logout 内部に保存されているセッションをクリア .uipath/。env-varフローには、変数の設定を解除して削除するものは何もありません。
トラブルシューティング
❌ ログインしていない
ウォークアップ チェーンに .uipath/ フォルダーが見つからなかったか、保存されたセッションが読み取れません。uip loginを実行 (または env-var フローを設定) して、再試行します。
トークンの有効期限が切れています
対話型アプリのセッションと外部アプリのセッションは、有効期限が近づくと自動的に更新されます。「 Expired」と表示される場合は、更新トークン自体の有効期限が切れているか、取り消されています。 uip loginを再実行してください。env-var 認証の場合は、 UIPATH_CLI_AUTH_TOKENをローテーションします。
複数の組織メンバー、間違った組織の選択
uip login に --organization <logical-name> を渡して組織の選択をバイパスするか、事後にuip login tenant listしてセッションが実際に何にバインドされているかを確認します。
企業プロキシがブラウザのコールバックをブロックする
対話型フローが でローカル コールバック ポート 127.0.0.1開きます。ほとんどのプロキシはループバックをそのままにしますが、一部の積極的な設定ではループバックがブロックされます。フロー 2 (外部アプリ)、フロー 3 (フェデレーション資格情報)、またはフロー 4 (環境変数認証) を使用して回避します。この 3 つとも、ブラウザーのコールバックを完全に回避します。
参照
- UiPath CLI のインストール — 認証前の 1 回限りの設定。
- 構成 — 環境変数とフラグの優先順位。
- セッションと資格情報 — 資格情報フォルダーのディスク上のレイアウト。
- uip login reference、 uip logout reference。
- フローを選択する
- フロー 1 — 対話型 OAuth2
- 資格情報の保存場所
- セッションの途中でテナントを管理する
- 更新は自動的に行われます
- ヘッドレス対話型ログイン (
--no-browser) - フロー 2 — 外部アプリケーション (クライアント資格情報)
- 環境。VAR_NAMEプレフィックス
- スコープの上書き
- フロー 3 — フェデレーション資格情報 (ワークロード ID)
- フロー 4 — 環境変数による認証 (アクセス トークンが既に手持ち)
- 注意事項と制限事項
- JWT の代わりに個人用アクセス トークンを使用する
- フロー 5 — ロボットの資格情報 (ローカルの UiPath Robot)
- サインアウトする
- トラブルシューティング
- ❌ ログインしていない
- トークンの有効期限が切れています
- 複数の組織メンバー、間違った組織の選択
- 企業プロキシがブラウザのコールバックをブロックする
- 参照