UiPath Documentation
uipath-cli
latest
false
Guide de l'utilisateur de UiPath CLI
Important :
Ce contenu a été traduit à l'aide d'une traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

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'utiliserComment
Un développeur sur un ordinateur portable ou une station de travailOAuth interactif2uip 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/CDApplication 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éesuip 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 jetonAuthentification variable d'environnementDé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 localIdentifiants de connexion du RobotDé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é.

Astuce :

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

  1. Dossier explicite — si vous avez transmis --file <folder>, la CLI utilise ce dossier. Indiquez le dossier, pas un chemin de fichier.
  2. 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.
  3. ~/.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
Avertissement :

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-secret La transmission des deux échoue avec --client-secret cannot be combined with --client-assertion.
  • --organization est 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-browser n'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 status signale Expired et 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_TOKEN détient un jeton d'accès JWT, sa revendication iss fait foi — vous ne définissez pas UIPATH_URL. Cela évite les erreurs d'acheminement lorsqu'un pipeline définit UIPATH_URL de 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_AUTH n’est pas défini ou défini sur quelque chose d’autre que la chaîne littérale true, le flux basé sur des fichiers est utilisé. L'orthographe de la passerelle est silencieuse - vérifiez avec uip login status.
  • Les valeurs manquantes échouent explicitement. Si une variable requise est vide, uip renvoie 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_URL devient nécessaire. Étant donné que la CLI ne peut pas dériver une URL de serveur à partir d'un jeton transparente, définissez UIPATH_URL (par exemple https://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 status affiche Logged in sans 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 avec 401 une 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​

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour