UiPath Documentation
uipath-cli
latest
false
Importante :
Este contenido se ha traducido mediante traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Guía del usuario de UiPath CLI

Autenticación

UiPath CLI admite tres flujos de autenticación que se asignan a los tres casos de uso comunes: un desarrollador en un portátil, un proceso de CI/CD que llama a Orchestrator con una aplicación externa y un contenedor o ejecutor efímero que ya tiene un token de acceso. Los tres terminan en el mismo lugar: una sesión autenticada que cada comando uip posterior reutiliza, pero difieren en la forma en que obtienen el token y en cómo la CLI lo actualiza.

Elija un flujo

Usted es...Usar estoCómo
Un desarrollador en un portátil o estación de trabajoOAuth2 interactivouip login abre un navegador, inicias sesión una vez, los tokens se almacenan y se actualizan automáticamente.
Un proceso o servidor CI/CDAplicación externa (credenciales de cliente)Crea una aplicación externa en UiPath, pasa su ID y secreto a uip login --client-id … --client-secret …. Los tokens se almacenan y se actualizan.
Un contenedor, un ejecutor efímero o cualquier proceso que ya contenga un tokenAutenticación de variables de entornoEstablezca UIPATH_CLI_ENABLE_ENV_AUTH=true y proporcione el token + organización/tenant a través de env vars. No se escribe ningún archivo; sin actualizar.

uip logout borra cualquier credencial en disco de los dos primeros flujos. El flujo env-var no tiene nada que borrar: desactive las variables de entorno.

Flujo 1: OAuth2 interactivo

Ejecuta uip login sin argumentos:

uip login
uip login

uip abre tu navegador predeterminado en la página de inicio de sesión de UiPath. Después de autenticarte, UiPath redirige a una devolución de llamada local que uip está escuchando, y la CLI te solicita que elijas un tenant. Cuando se selecciona el tenant, la sesión se guarda y ya está.

Marcadores útiles:

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

Dónde se almacenan las credenciales

De forma predeterminada, la sesión se almacena dentro de una carpeta .uipath/ . uip busca esta carpeta en tres lugares, en orden:

  1. Carpeta explícita: si pasaste --file <folder>, la CLI utiliza esa carpeta. Pasa la carpeta, no una ruta de archivo.
  2. Sube desde el directorio de trabajo actual buscando .uipath/ , para que una carpeta de proyecto pueda llevar su propia sesión sin tocar la página de inicio del usuario.
  3. ~/.uipath/ : el recurso alternativo predeterminado.

Cuando no existe .uipath/ en ningún lugar de la cadena de acceso, uip login crea uno en ~/.uipath/. Trata el contenido de la carpeta como opaco: son administrados por uip login, uip login tenant set y uip logout.

Gestionar tenants a mitad de sesión

La sesión almacena un solo tenant activo a la vez. Cambia sin volver a ejecutar el flujo de inicio de sesión completo:

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 la organización actual, el tenant y la caducidad del token.

Consejo:

Cada comando uip or … también acepta --tenant <name> para anular el tenant de sesión para una sola llamada, lo que es útil cuando necesitas ejecutar contra dos tenants en el mismo script sin volver a iniciar sesión.

La actualización es automática

uip los tokens de acceso en segundo plano cuando están a punto de caducar. No es necesario volver a ejecutar uip login a menos que el propio token de actualización caduque o se revoque, o cambies los tenants/organizaciones.

Flujo 2: aplicación externa (credenciales de cliente)

Crea una aplicación externa en UiPath (Automation Cloud: Admin → Aplicaciones externas) con:

  • Tipo de aplicación: confidencial
  • Tipo de concesión: credenciales de cliente
  • Ámbitos: los ámbitos que necesita tu proceso (por ejemplo, OR.Folders, OR.Jobs, OR.Execution, OR.Assets, OR.Users)

Copia el ID de aplicación y el Secreto de aplicación generados, y guárdalos en el almacén de secretos del proceso (secretos de GitHub Actions, grupos de variables de Azure DevOps, credenciales de Jenkins, Vault, etc.).

Inicia sesión desde el proceso:

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"

El prefijo env.VAR_NAME

--client-id y --client-secret aceptan un valor literal o el prefijo especial env. que se resuelve en una variable de entorno en tiempo de ejecución. env.UIPATH_CLIENT_ID significa "leer el valor de la variable de entorno UIPATH_CLIENT_ID ". Esto mantiene los valores secretos fuera del historial del shell y de los listados de procesos, a diferencia de --client-secret "$UIPATH_CLIENT_SECRET", que se expande en la línea de comandos.

Los valores literales siguen funcionando:

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

No establezcas UIPATH_CLIENT_ID / UIPATH_CLIENT_SECRET como variables de entorno y esperes que uip login las recoja automáticamente. Antes de UiPath CLI 1.0, se admitían uip login --env y la lectura implícita de env-var; fueron eliminados. Debes pasar el marcador explícitamente, ya sea con un valor literal o con el prefijo env. .

Anulaciones de ámbito

Si la aplicación externa tiene varios ámbitos y quieres una sesión más estrecha para un script específico, pasa --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"

Flujo 3: autenticación de variable de entorno (token de acceso ya disponible)

Algunos entornos (contenedores creados por otro proceso, trabajos programados, accesorios de prueba) ya tienen un token de acceso a UiPath válido y no necesitan un inicio de sesión interactivo o un intercambio de credenciales de cliente. Habilita el flujo de autenticación env-var configurando:

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"

Con UIPATH_CLI_ENABLE_ENV_AUTH=true, cada invocación uip se autentica a partir de estas variables y omite la carpeta .uipath/ por completo. No hay ningún paso uip login y no se escribe nada en el disco.

Notas y limitaciones

  • Token opaco. La persona que llama es responsable de la actualización del token. No hay flujo de actualización. Cuando el token caduca, uip login status los informes Expired y los comandos fallan hasta que se rota la variable.
  • La URL del servidor se deriva del token. La reclamación iss en el JWT tiene autoridad: no se establece UIPATH_URL. Esto evita el enrutamiento incorrecto cuando un proceso se establece UIPATH_URL de forma inconsistente con el token.
  • La puerta importa. Si UIPATH_CLI_ENABLE_ENV_AUTH no se establece o se establece en cualquier cosa que no sea la cadena literal true, se utiliza el flujo basado en archivos. Si se escribe mal, la puerta retrocede silenciosamente: compruébalo con uip login status.
  • Los valores faltantes fallan explícitamente. Si alguna variable requerida está vacía, uip devuelve un error claro al nombrar la variable infractora, no un genérico "no autenticado".

Ejemplo de paso de acciones de GitHub utilizando env-var auth:

- 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

Cierre de sesión

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 borra la sesión almacenada dentro de .uipath/. En el flujo env-var no hay nada que eliminar: desmarca las variables.

Solución de problemas

❌ No ha iniciado sesión

No se encontró ninguna carpeta .uipath/ en la cadena de acceso o la sesión almacenada es ilegible. Ejecuta uip login (o establece el flujo env-var) y vuelve a intentarlo.

Token caducado

Las sesiones de aplicación interactiva y externa se actualizan automáticamente cuando están a punto de caducar. Si ves Expired, el propio token de actualización ha caducado o se ha revocado: vuelve a ejecutar uip login. Para la autenticación env-var, rota UIPATH_CLI_AUTH_TOKEN.

Varios miembros de la organización, organización incorrecta elegida

Pase --organization <logical-name> en uip login para omitir el selector de la organización, o uip login tenant list después para ver a qué está vinculada realmente la sesión.

El proxy corporativo bloquea la devolución de llamada del navegador

El flujo interactivo abre un puerto de devolución de llamada local en 127.0.0.1. La mayoría de los proxies dejan solo el bucle invertido, pero algunas configuraciones agresivas lo bloquean. Utiliza el Flujo 2 (aplicación externa) o el Flujo 3 (env-var auth): ambos evitan por completo la devolución de llamada del navegador.

Ver también

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado