- Información general
- Comience ya
- Conceptos
- Uso de UiPath CLI
- Guías prácticas
- Recetas de CI/CD
- Referencia de los comandos
- Información general
- Códigos de salida
- Opciones globales
- agente de código UIP
- codificador UIP
- Contextualización de UIP
- UIP Docsai
- Función uip
- barreras de seguridad de UIP
- Configuración de UIP llm
- puerta de enlace llm de uip
- UIP model-hub
- añadir-entidad-de-datos-de-prueba
- añadir-cola-de-datos-de-prueba
- añadir-variación-de-datos-de-prueba
- Analizar
- Crear
- Crear proyecto
- Diferencia
- Buscar actividades
- obtener-reglas-del-analizador
- obtener-predeterminado-actividad-xaml
- obtener-errores
- obtener-casos-de-prueba-manual
- obtener-pasos-de-prueba-manual
- obtener-repositorio-de-objetos-de-biblioteca
- obtener-objeto-repositorio
- obtener versiones
- get-workflow-example
- indicar-aplicación
- indicar-elemento
- inspeccionar-paquete
- install-data-fabric-entities
- instalar-o-actualizar-paquetes
- enumerar-data-fabric-entities
- lista-instancias
- ejemplos-de-flujo-de-trabajo-de-lista
- Paquete
- Publicar
- Remoto
- restore
- ejecutar, depurar & Ejecución
- archivo de ejecución
- plantillas-de-búsqueda
- iniciar-studio
- detener la ejecución
- TM
- UIA
- Tareas de UIP
- Archivo adjunto
- Campo personalizado
- Ejecuciones
- EtiquetaDeObjeto
- Paquete
- escenario de rendimiento
- grupos de carga de escenarios de rendimiento
- datos de ejecución de perf-scenario
- informe de escenario de rendimiento
- Proyecto
- Informar
- Requisitos
- Resultado
- Casos de prueba
- Conjuntos de prueba
- registro de pasos de prueba
- Usuario
- Esperar
- Seguimientos de UIP
- Comentarios de seguimientos de UIP
- Migración
- Referencia y soporte
Autenticación
Autentica UiPath CLI utilizando OAuth2 interactivo, credenciales de aplicación externa o flujos de token de variable de entorno.
UiPath CLI admite cinco flujos de autenticación: un desarrollador en un portátil, un proceso de CI/CD que llama a Orchestrator con una aplicación externa, una plataforma CI/CD que puede emitir sus propios tokens OIDC en lugar de mantener un secreto de larga duración, un contenedor o efímero runner que ya tiene un token de acceso y un proceso que se ejecuta junto con un UiPath Robot local. Los tres primeros terminan en el mismo lugar: una sesión autenticada persistente en una carpeta de credenciales que cada comando uip posterior reutiliza, pero difieren en la forma en que obtienen el token y en cómo la CLI lo actualiza. El cuarto omite el estado en disco por completo. El quinto se refiere a la propia identidad del robot a través de un canal IPC local.
Elija un flujo
| Usted es... | Usar esto | Cómo |
|---|---|---|
| Un desarrollador en un portátil o estación de trabajo | OAuth2 interactivo | uip login abre un navegador, inicias sesión una vez, los tokens se almacenan y se actualizan automáticamente. |
| Un proceso o servidor CI/CD | Aplicació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. |
| Una plataforma CI/CD que puede acuñar sus propios tokens OIDC (identidad de carga de trabajo) | Credenciales federadas | uip login --client-id <app-id> --client-assertion env.OIDC_TOKEN — un OIDC JWT representa el secreto del cliente, por lo que no hay secreto de larga duración para almacenar o rotar. Requiere --client-id; mutuamente excluyentes con --client-secret. |
| Un contenedor, un ejecutor efímero o cualquier proceso que ya contenga un token | Autenticación de variables de entorno | Establezca 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. |
| Un proceso que se ejecuta en una máquina con un UiPath Robot local | Credenciales de robot | Establece UIPATH_CLI_ENFORCE_ROBOT_AUTH=true. uip se autentica a través del canal IPC local del Robot en lugar de cualquiera de los anteriores. |
uip logout borra cualquier credencial en disco de los primeros tres flujos. El flujo env-var no tiene nada que borrar: desactive las variables de entorno. Las credenciales del robot tampoco tienen nada que borrar: el robot es el propietario de la identidad.
--profile <name> es un marcador global (consulta Opciones globales) que nombra una sesión para que varios inicios de sesión, en cualquiera de los tres primeros flujos, puedan coexistir uno al lado del otro. Pasa el mismo --profile en cada comando que deba reutilizar una sesión con nombre determinada; es mutuamente excluyente con --file/-f en uip login y uip logout.
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:
- Carpeta explícita: si pasaste
--file <folder>, la CLI utiliza esa carpeta. Pasa la carpeta, no una ruta de archivo. - 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. ~/.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.
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.
Inicio de sesión interactivo sin encabezado (--no-browser)
uip login normalmente abre el navegador de tu sistema. En un entorno headless: un controlador de CI que necesita una identidad de usuario real (con un token de actualización) en lugar de una aplicación externa, pero no tiene visualización: pase --no-browser (o establezca UIPATH_CLI_NO_BROWSER=true):
uip login --no-browser --tenant DefaultTenant
uip login --no-browser --tenant DefaultTenant
Esto mantiene todo el flujo interactivo (PKCE, estado, devolución de llamada local, guardado de token) pero no inicia un navegador. En su lugar, imprime la URL de autorización a stderr como una línea de marcador estable:
UIPATH_AUTH_URL https://cloud.uipath.com/identity_/connect/authorize?...
UIPATH_AUTH_URL https://cloud.uipath.com/identity_/connect/authorize?...
Una automatización externa (por ejemplo, un script de Playwright) lee esa línea, abre la URL en un navegador que controla, completa el inicio de sesión y el proveedor de identidad redirige a la devolución de llamada local de uip como de costumbre, completando el inicio de sesión de la misma manera como si un humano hubiera hecho clic.
La URL impresa puede aparecer de forma segura en los registros de CI: solo contiene valores OAuth públicos (PKCE code_challenge, state, client_id, redirect_uri, scope), sin secreto ni token. --no-browser no tiene efecto en el Flujo 2 o el Flujo 3 (las credenciales de cliente y el inicio de sesión federado nunca abren un navegador independientemente): se registra una advertencia si lo pasas junto con --client-secret o --client-assertion.
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
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: credenciales federadas (identidad de carga de trabajo)
Para las plataformas CI/CD que pueden acuñar su propio token OIDC: no hay secreto de cliente de aplicación externa para crear, almacenar o rotar:
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 toma un OIDC JWT en lugar de --client-secret y, como --client-id/--client-secret, acepta el prefijo env. para leer el token de una variable de entorno en tiempo de ejecución (recomendado: pasar el JWT sin formato como un valor literal imprime una advertencia, ya que de lo contrario sería visible en el historial del shell y en los listados de procesos).
Reglas aplicadas por uip login:
- Requiere
--client-id. El inicio de sesión federado sigue identificando la aplicación externa por su ID de cliente; solo se reemplaza el secreto. - Mutuamente excluyente con
--client-secret. Pasar ambos falla con--client-secret cannot be combined with --client-assertion. --organizationse ignora : la organización se fija por el ID de cliente, igual que el inicio de sesión de credenciales de cliente.--no-browserno tiene ningún efecto : como el inicio de sesión con credenciales de cliente, no se abre ningún navegador para este flujo independientemente.
Una vez autenticada, la sesión se comporta como una sesión de aplicación externa: se mantiene, se actualiza automáticamente y se borra con uip logout.
Flujo 4: 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 statuslos informesExpiredy los comandos fallan hasta que se rota la variable. - La URL del servidor se deriva de un JWT. Cuando
UIPATH_CLI_AUTH_TOKENtiene un token de acceso JWT, su reclamaciónisstiene autoridad: no se estableceUIPATH_URL. Esto evita el enrutamiento incorrecto cuando un proceso se estableceUIPATH_URLde forma inconsistente con el token. Esto no se aplica a un token de acceso personal: consulta a continuación. - La puerta importa. Si
UIPATH_CLI_ENABLE_ENV_AUTHno se establece o se establece en cualquier cosa que no sea la cadena literaltrue, se utiliza el flujo basado en archivos. Si se escribe mal, la puerta retrocede silenciosamente: compruébalo conuip login status. - Los valores faltantes fallan explícitamente. Si alguna variable requerida está vacía,
uipdevuelve 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
Utilizar un token de acceso personal en lugar de un JWT
UIPATH_CLI_AUTH_TOKEN también acepta un token de acceso personal de UiPath (PAT, un "token de referencia" opaco), acuñado con uip admin pat create y gestionado con uip admin pat list/revoke/regenerate. Un PAT no es un JWT, por lo que no lleva ninguna reclamación iss, lo que cambia una regla de la anterior:
UIPATH_URLpasa a ser obligatorio. Dado que CLI no puede derivar una URL de servidor de un token opaco, estableceUIPATH_URL(por ejemplohttps://cloud.uipath.com) explícitamente. Se ignora cuando el token es un JWT, pero se requiere cuando es un PAT.- No se informa de la caducidad.
uip login statusmuestraLogged insin fecha de vencimiento y sin campos de identidad: el token es opaco, por lo que CLI tampoco tiene forma de saberlo. Los comandos fallan con401una vez que se revoca la PAT o caduca, sin advertencia local de antemano: realiza un seguimiento de la fecha de caducidad tú mismo. - Todas las demás variables de este flujo (la puerta, los nombres e ID de tenant/organización) funcionan igual que con un JWT.
Flujo 5: credenciales de robot (UiPath Robot local)
Para los procesos que se ejecutan junto con un UiPath Robot local (Studio Desktop y otros contextos alojados en Robot), la autenticación puede diferir completamente en la propia identidad del Robot a través de un canal IPC local, en lugar de cualquier token que la CLI gestione por sí misma:
export UIPATH_CLI_ENFORCE_ROBOT_AUTH=true
uip or folders list
export UIPATH_CLI_ENFORCE_ROBOT_AUTH=true
uip or folders list
Con la puerta establecida, uip se comunica con el punto final IPC del robot tanto para el token de acceso como para la URL base del recurso, omitiendo la carpeta de credenciales .uipath/ y el flujo env-var por completo. UIPATH_CLI_ENFORCE_ROBOT_AUTH y UIPATH_CLI_ENABLE_ENV_AUTH son mutuamente excluyentes: establecer ambos es un error, no una anulación silenciosa. No hay ningún paso uip login, ninguna actualización que gestionar y nada que uip logout deba borrar.
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), el Flujo 3 (credenciales federadas) o el Flujo 4 (env-var auth): los tres evitan por completo la devolución de llamada del navegador.
Ver también
- Instalar UiPath CLI : configuración única antes de la autenticación.
- Configuración : variables de entorno y prioridad de banderas.
- Sesiones y credenciales : diseño en disco de la carpeta de credenciales.
- referencia de inicio de sesión de uip, referencia de cierre de sesión de uip.
- Elija un flujo
- Flujo 1: OAuth2 interactivo
- Dónde se almacenan las credenciales
- Gestionar tenants a mitad de sesión
- La actualización es automática
- Inicio de sesión interactivo sin encabezado (
--no-browser) - Flujo 2: aplicación externa (credenciales de cliente)
- El prefijo env.VAR_NAME
- Anulaciones de ámbito
- Flujo 3: credenciales federadas (identidad de carga de trabajo)
- Flujo 4: autenticación de variable de entorno (token de acceso ya disponible)
- Notas y limitaciones
- Utilizar un token de acceso personal en lugar de un JWT
- Flujo 5: credenciales de robot (UiPath Robot local)
- Cierre de sesión
- Solución de problemas
- ❌ No ha iniciado sesión
- Token caducado
- Varios miembros de la organización, organización incorrecta elegida
- El proxy corporativo bloquea la devolución de llamada del navegador
- Ver también