- Vue d'ensemble (Overview)
- Démarrer
- Concepts
- Utilisation de la UiPath CLI
- Guides pratiques
- Revenus CI/CD
- Référence de commande
- Vue d'ensemble (Overview)
- Codes de sortie
- Options globales
- agent codé uip
- encodeur UIP
- uip ancrage dans le contexte
- UiPath Docsai
- Fonction UiP
- garde-fous UiP
- configuration llm uip
- uip llm-passerelle
- uip model-hub
- Tâches (Jobs)
- Dossiers
- Processus
- Paquets
- Machines
- Utilisateurs
- Rôles
- Licences
- Flux
- Pièces jointes (Attachments)
- Sessions
- Calendriers
- magasins d'informations d’identification
- journaux-audit
- paramètres
- Actifs
- Compartiments
- Compartiment-fichiers
- Bibliothèques
- Files d'attente (Queues)
- éléments de la file d'attente
- Déclencheurs (Triggers)
- Webhooks
- add-test-data-entity
- ajouter une file d'attente de données de test
- add-test-data-variation
- Analyser
- Construire
- créer-projet
- Différence
- recherche-activités
- Obtenir les règles de l'analyse
- récupérer-activité-xaml par défaut
- Récupérer les erreurs
- obtenir des cas de test manuels
- Obtenir les étapes de test manuelles
- Get-Library-Object-Repository
- Récupérer le référentiel d'objets
- Obtenir les versions
- exemple de workflow
- indiquer l'application
- indiquer l'élément
- inspecter-package
- install-data-fabric-entities
- installer-ou-Update-packages
- list-data-fabric-entités
- instances-liste
- listes-exemples-workflow
- Créer un package
- Publier
- Distant
- restore
- exécuter, déboguer et amp; Exécution
- Exécuter le fichier
- modèles-recherche
- Démarrer-Studio
- arrêter l'exécution
- TM
- UIA
- tâches UIP
- Traçages UIP
- Commentaires sur les traces UIP
- Migration
- Référence et assistance
Authentification
Authentifiez la CLI UiPath à l’aide d’OAuth2 interactif, d’informations d’identification d’application externe ou de flux de jetons variables d’environnement.
UiPath CLI prend en charge cinq flux d'authentification: un développeur sur un ordinateur portable, un pipeline CI/CD appelant Orchestrator avec une application externe, une plate-forme CI/CD qui peut émettre ses propres jetons OIDC au lieu de conserver un secret longue durée, un conteneur ou un conteneur éphémère qui détient déjà un jeton d'accès et un processus s'exécutant avec un robot UiPath local. Les trois premiers se terminent au même endroit - une session authentifiée est conservée dans un dossier d'informations d'identification que chaque commande uip suivante réutilise - mais elles diffèrent dans la façon dont elles obtiennent le jeton et dont la CLI l'actualise. Le quatrième contourne entièrement l’état sur disque. Le deuxième modèle se rapporte à l’identité propre du Robot sur un canal IPC local.
Choisir un flux
| Vous êtes… | L'utiliser | Comment |
|---|---|---|
| Un développeur sur un ordinateur portable ou une station de travail | OAuth interactif2 | uip login ouvre un navigateur, vous vous connectez une fois, et les jetons sont stockés et actualisés automatiquement. |
| Un pipeline ou un serveur CI/CD | Application externe (informations d’identification du client) | Créez une application externe dans UiPath et transmettez son ID et sa clé secrète à uip login --client-id … --client-secret …. Les jetons sont stockés et actualisés. |
| Une plate-forme CI/CD pouvant extraire ses propres jetons OIDC (identité de la charge de travail) | Informations d’identification fédérées | uip login --client-id <app-id> --client-assertion env.OIDC_TOKEN — un JWT OIDC remplace la clé secrète du client, il n’y a donc pas de clé secrète de longue durée à stocker ou à faire pivoter. Nécessite --client-id; mutuellement exclusif avec --client-secret. |
| Un conteneur, un exécuteur éphémère ou tout processus qui contient déjà un jeton | Authentification variable d'environnement | Définissez UIPATH_CLI_ENABLE_ENV_AUTH=true et indiquez le jeton + organisation/locataire via des variables d’environnement. Aucun fichier n’est écrit; aucune actualisation. |
| Un processus s'exécutant sur une machine avec un robot UiPath local | Identifiants de connexion du Robot | Définissez UIPATH_CLI_ENFORCE_ROBOT_AUTH=true. uip s’authentifie via le canal IPC local du Robot au lieu de l’un des éléments ci-dessus. |
uip logout efface toutes les informations d'identification sur le disque des trois premiers flux. Le flux env-var n'a rien à effacer — désélectionnez les variables env. Les informations d'identification du Robot n'ont rien à effacer non plus — le Robot est propriétaire de l'identité.
--profile <name> est un indicateur global (voir Options globales) qui nomme une session de sorte que plusieurs connexions — sur l'un des trois premiers flux — peuvent coexister côte à côte. Transmettez le même --profile sur chaque commande qui doit réutiliser une session nommée donnée; il s’exclut mutuellement avec --file/-f sur uip login et uip logout.
Flux 1 — OAuth interactif2
Exécutez uip login sans argument:
uip login
uip login
uip ouvre votre navigateur par défaut sur la page de connexion d'UiPath. Une fois authentifié, UiPath redirige vers un rappel local sur lequel uip écoute, et la CLI vous invite à choisir un locataire. Lorsque le locataire est sélectionné, la session est enregistrée et vous avez terminé.
Indicateurs utiles:
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
L'emplacement où sont stockées les informations d'identification
Par défaut, la session est stockée dans un dossier .uipath/ . uip recherche ce dossier à trois endroits, dans l’ordre:
- Dossier explicite — si vous avez transmis
--file <folder>, la CLI utilise ce dossier. Indiquez le dossier, pas un chemin de fichier. - Remontez du répertoire de travail actuel à la recherche de
.uipath/— afin qu'un dossier de projet puisse effectuer sa propre session sans affecter la page d'accueil de l'utilisateur. ~/.uipath/— la solution de secours par défaut.
Lorsqu’il n’existe aucun .uipath/ sur la chaîne de runtime, uip login en crée un au niveau de ~/.uipath/. Traitez le contenu du dossier comme Op manière - il est géré par uip login, uip login tenant set et uip logout.
Gérer les locataires à la mi-session
La session stocke un seul locataire actif à la fois. Basculer sans réexécuter le flux de connexion complet:
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 affiche l'organisation actuelle, le locataire et l'expiration du jeton.
L’actualisation est automatique
uip actualise les jetons d’accès en arrière-plan lorsqu’ils approchent de leur expiration. Vous n'avez pas besoin de réexécuter uip login sauf si le jeton d'actualisation expire ou est révoqué, ou si vous modifiez les locataires/organisations.
Connexion interactive sans affichage (--no-browser)
uip login ouvre normalement votre navigateur système. Dans un environnement sans affichage — un pilote CI qui a besoin d'une identité d'utilisateur réelle (avec un jeton d'actualisation) plutôt qu'une application externe, mais n'a pas d'affichage — passez --no-browser (ou définissez UIPATH_CLI_NO_BROWSER=true):
uip login --no-browser --tenant DefaultTenant
uip login --no-browser --tenant DefaultTenant
Cela conserve l’intégralité du flux interactif (PKCE, état, rappel local, sauvegarde de jetons), mais ne lance pas de navigateur. Au lieu de cela, il imprime l'URL d'autorisation à stderr sous la forme d'une ligne de marqueur stable:
UIPATH_AUTH_URL https://cloud.uipath.com/identity_/connect/authorize?...
UIPATH_AUTH_URL https://cloud.uipath.com/identity_/connect/authorize?...
Une automatisation externe (par exemple, un script Playground) va lire cette ligne, ouvrir l’URL dans un navigateur qu’elle contrôle, terminer la connexion et rediriger le fournisseur d’identité vers le rappel local de uip comme d’habitude — en complétant la connexion de la même manière comme si un humain avait cliqué.
L’URL imprimée est en sécurité dans les journaux CI: elle ne transporte que les valeurs OAuth publiques (PKCE code_challenge, state, client_id, redirect_uri, scope), sans clé secrète et sans jeton. --no-browser n'a aucun effet sur le flux 2 ou le flux 3 (les informations d'identification du client et la connexion fédérée n'ouvrent jamais un navigateur, quel que soit) — un avertissement est consigné si vous le transmettez à côté de --client-secret ou --client-assertion.
Flux 2 — Application externe (informations d'identification du client)
Créez une application externe dans UiPath (Automation Cloud: Admin → Applications externes) avec:
- Type d’application: confidentiel
- Type d'accord: informations d'identification du client
- Étendues: les étendues dont votre pipeline a besoin (par exemple,
OR.Folders,OR.Jobs,OR.Execution,OR.Assets,OR.Users)
Copiez l' ID d'application et le secret d'application générés et stockez-les dans le magasin secret du pipeline (clés secrètes GitHub Actions, groupes de variables Azure DevOps, informations d'identification Jenkins, coffre, etc.).
Connectez-vous depuis le pipeline:
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"
Le préfixe env.var_NAME
--client-id et --client-secret acceptent soit une valeur littérale, soit le préfixe spécial env. qui se résout vers une variable d'environnement au moment du runtime. env.UIPATH_CLIENT_ID signifie « lire la valeur de la variable d'environnement UIPATH_CLIENT_ID ». Cela maintient les valeurs secrètes en dehors des listes de l’historique et des processus, contrairement à --client-secret "$UIPATH_CLIENT_SECRET", qui se développe sur la ligne de commande.
Les valeurs littérales fonctionnent toujours:
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
Ne définissez pas UIPATH_CLIENT_ID / UIPATH_CLIENT_SECRET comme variables d'environnement et attendez-vous à ce que uip login les récupère automatiquement. Avant la version UiPath CLI 1.0, uip login --env et la lecture implicite d'Env-var étaient prises en charge; elles ont été supprimées. Vous devez transmettre l'indicateur explicitement, soit avec une valeur littérale, soit avec le préfixe env. .
Remplacements d’étendue
Si l’application externe a plusieurs étendues et que vous souhaitez une session plus restreinte pour un script spécifique, saisissez --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"
Flux 3 — Informations d'identification fédérées (identité de la charge de travail)
Pour les plates-formes CI/CD qui peuvent extraire leur propre jeton OIDC — aucun secret client d'application externe ne peut créer, stocker ou faire pivoter:
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 prend un JWT OIDC à la place de --client-secret, et — comme --client-id/--client-secret — accepte le préfixe env. pour lire le jeton à partir d'une variable d'environnement au moment du runtime (recommandé: transmettre le JWT brut comme la valeur littérale imprime un avertissement, car elle serait autrement visible dans l'historique du shell et les listes de processus).
Règles appliquées par uip login:
- Nécessite
--client-id. La connexion alimentée identifie toujours l'application externe par son ID de client; seul le secret est remplacé. - Capture mutuellement exclusive avec
--client-secretLa transmission des deux échoue avec--client-secret cannot be combined with --client-assertion. --organizationest ignorée — l'organisation est fixée par l'ID client, de la même manière que pour la connexion par informations d'identification du client.--no-browsern'a aucun effet - comme la connexion par informations d'identification du client, aucun navigateur n'est ouvert pour ce flux indépendamment.
Une fois authentifiée, la session se comporte comme une session d'application externe: elle est conservée, actualisée automatiquement et effacée avec uip logout.
Flux 4 — Authentification variable d'environnement (jeton d'accès déjà en main)
Certains environnements — les conteneurs créés par un autre pipeline, les tâches planifiées, les installations de test — détiennent déjà un jeton d'accès UiPath valide et n'ont pas besoin de la connexion interactive ou de l'échange d'informations d'identification du client. Activez le flux d'authentification env-var en définissant:
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"
Avec UIPATH_CLI_ENABLE_ENV_AUTH=true, chaque invocation de uip s’authentifie à partir de ces variables et contourne entièrement le dossier .uipath/ . Il n’y a pas d’étape uip login et rien n’est écrit sur le disque.
Remarques et limitations
- Jeton transparente. L'appelant est responsable de la fraîcheur du jeton. Il n’y a pas de flux d’actualisation. À l'expiration du jeton,
uip login statussignaleExpiredet les commandes échouent jusqu'à ce que la variable soit mise en rotation. - L'URL du serveur est dérivée d'un JWT. Lorsque
UIPATH_CLI_AUTH_TOKENdétient un jeton d'accès JWT, sa revendicationissfait foi — vous ne définissez pasUIPATH_URL. Cela évite les erreurs d'acheminement lorsqu'un pipeline définitUIPATH_URLde manière incohérente avec le jeton. Cela ne tient pas pour un jeton d'accès personnel - voir ci-dessous. - La passerelle compte. Si
UIPATH_CLI_ENABLE_ENV_AUTHn’est pas défini ou défini sur quelque chose d’autre que la chaîne littéraletrue, le flux basé sur des fichiers est utilisé. L'orthographe de la passerelle est silencieuse - vérifiez avecuip login status. - Les valeurs manquantes échouent explicitement. Si une variable requise est vide,
uiprenvoie une erreur claire en nommant la variable incriminée, et non un message générique « non authentifié».
Exemple d'étape d'actions GitHub utilisant l'authentification env-var:
- 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
Utiliser un jeton d'accès personnel au lieu d'un jeton JWT
UIPATH_CLI_AUTH_TOKEN accepte également un jeton d’accès personnel UiPath (PAT — un « jeton de référence» transparente), miné avec uip admin pat create et géré avec uip admin pat list/revoke/regenerate. Un PAT n’est pas un JWT, il ne porte donc aucune revendication iss, ce qui modifie une règle comme ci-dessus:
UIPATH_URLdevient nécessaire. Étant donné que la CLI ne peut pas dériver une URL de serveur à partir d'un jeton transparente, définissezUIPATH_URL(par exemplehttps://cloud.uipath.com). Il est ignoré lorsque le jeton est un JWT, mais requis lorsqu’il s’agit d’un PAT.- Aucune expiration n'est signalée.
uip login statusafficheLogged insans date d'expiration et sans champs d'identité — le jeton est Opaque, la CLI n'a donc aucun moyen de le savoir. Les commandes échouent avec401une fois que le jeton d’accès personnel est révoqué ou expire, sans avertissement local au préalable. Suivez vous-même la date d’expiration. - Toutes les autres variables de ce flux (la passerelle, les noms de locataire/organisation et les ID) fonctionnent de la même manière qu’avec un JWT.
Flux 5 — Identifiants du Robot (Robot UiPath local)
Pour les processus s'exécutant avec un Robot UiPath local — Studio Desktop et d'autres contextes hébergés par le Robot — l'authentification peut dépendre entièrement de la propre identité du Robot sur un canal IPC local, au lieu de tout jeton que la CLI gère elle-même:
export UIPATH_CLI_ENFORCE_ROBOT_AUTH=true
uip or folders list
export UIPATH_CLI_ENFORCE_ROBOT_AUTH=true
uip or folders list
Une fois la passerelle définie, uip communique avec le point de terminaison IPC du Robot pour le jeton d’accès et l’URL de base de ressources, en contournant entièrement le dossier d’informations d’identification .uipath/ et le flux env-var. UIPATH_CLI_ENFORCE_ROBOT_AUTH et UIPATH_CLI_ENABLE_ENV_AUTH sont mutuellement exclusifs - la définition des deux est une erreur, et non un remplacement silencieux. Il n'y a pas d'étape uip login, d'actualisation à gérer et de rien à effacer pour uip logout.
Déconnexion
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 efface la session stockée à l’intérieur de .uipath/. Dans le flux env-var, il n'y a rien à supprimer — vous ne définissez pas les variables.
Résolution des problèmes
❌ Non connecté
Soit aucun dossier .uipath/ n’a été trouvé sur la chaîne de runtime, soit la session stockée n’est pas lisible. Exécutez uip login (ou définissez le flux env-var) et réessayez.
Jeton expiré
Les sessions d’application interactives et externes sont automatiquement actualisées à l’approche de leur expiration. Si vous voyez Expired, le jeton d'actualisation a expiré ou a été révoqué, réexécutez uip login. Pour l'authentification env-var, faites pivoter UIPATH_CLI_AUTH_TOKEN.
Plusieurs membres de l'organisation, mauvaise organisation sélectionnée
Transmettez --organization <logical-name> sur uip login pour contourner le sélecteur d’organisation, ou uip login tenant list après pour voir ce à quoi la session est réellement liée.
Le proxy d’entreprise bloque le rappel du navigateur
Le flux interactif ouvre un port de rappel local sur 127.0.0.1. La plupart des proxys laissent le bouclage seul, mais certaines configurations amusantes le bloquent. Solution en utilisant le Flux 2 (application externe), le Flux 3 (informations d’identification fédérées) ou le Flux 4 (env-var auth) — les trois évitent entièrement le rappel du navigateur.
Voir également
- Installation de la UiPath CLI — configuration unique avant l'authentification.
- Configuration — Variables d'environnement et priorité des indicateurs.
- Sessions et informations d'identification — mise en page sur disque du dossier des informations d'identification.
- référence de connexion uip, référence de déconnexion uip.
- Choisir un flux
- Flux 1 — OAuth interactif2
- L'emplacement où sont stockées les informations d'identification
- Gérer les locataires à la mi-session
- L’actualisation est automatique
- Connexion interactive sans affichage (
--no-browser) - Flux 2 — Application externe (informations d'identification du client)
- Le préfixe env.var_NAME
- Remplacements d’étendue
- Flux 3 — Informations d'identification fédérées (identité de la charge de travail)
- Flux 4 — Authentification variable d'environnement (jeton d'accès déjà en main)
- Remarques et limitations
- Utiliser un jeton d'accès personnel au lieu d'un jeton JWT
- Flux 5 — Identifiants du Robot (Robot UiPath local)
- Déconnexion
- Résolution des problèmes
- ❌ Non connecté
- Jeton expiré
- Plusieurs membres de l'organisation, mauvaise organisation sélectionnée
- Le proxy d’entreprise bloque le rappel du navigateur
- Voir également