- Primeros pasos
- Autenticación
- Aplicaciones externas (OAuth)
- Claves API
- ROPC (no recomendado)
- Ámbitos y permisos
- API de gestión de plataformas
Aplicaciones externas (OAuth)
These instructions are intended for developers who maintain the integration between UiPath® products and external applications using the UiPath® functionality based on the OAuth framework.
Antes de comenzar:
- La aplicación externa ya debe estar registrada por los Administratorsde la organización.
- Obtén los datos de registro del administrador de la organización.
Después de registrar la aplicación externa, debes implementar el mecanismo de autorización adecuado para la aplicación externa, con el tipo de concesión apropiado para el ámbito permitido, de modo que la aplicación externa pueda recuperar un token de acceso.
Qué tipo de concesión de autorización utilizar:
Tipo de aplicación |
Ámbito |
Tipo de concesión requerida |
---|---|---|
Confidencial |
Usuario |
Código de autorización |
Confidencial |
Aplicación |
Credenciales de Cliente |
no confidenciales |
Usuario |
Código de autorización con PKCE |
Si a una aplicación confidencial se le concedió tanto el ámbito de usuario como el de aplicación, debes implementar ambos tipos de concesión.
Cuando el nombre del ámbito es el mismo tanto en el ámbito de usuario como en el de aplicación, como en el caso de Orchestrator, el tipo de concesión que se utiliza determina si el recurso se llama en el ámbito de usuario o en el de aplicación.
The authorization server for accessing UiPath® resources is the UiPath® Identity Server, which supports the OAuth 2.0 framework.
OR.Default
, lo que permite a la aplicación comprobar en busca de asignaciones realizadas en Orchestrator, a nivel de tenant y carpeta. La aplicación puede entonces acceder a los recursos a los que se les haya concedido acceso en esos tenants y carpetas.
Por ejemplo, si desea que una aplicación externa vea trabajos y máquinas en todos los tenants de la organización. Al aprovechar la funcionalidad de acceso detallado, también puede configurar la aplicación para ver las colas en una carpeta.
OR.Jobs.Read, OR.Machines.Read, OR.Default
. Esto le otorga permisos de Ver sobre trabajos y máquinas en todos los tenants en la organización, y también Ver en Colas en la carpeta, siempre que la aplicación externa haya sido asignada a ella y se le hayan otorgado los permisos necesarios mediante un rol.
Utiliza este tipo de concesión cuando la aplicación registrada es del tipo confidencial y la solicitud es de ámbito de usuario.
Con este tipo de concesión, el flujo es el siguiente:
Ahora la aplicación puede utilizar el token de acceso para acceder a los recursos del usuario hasta que el token expire (una hora).
Utiliza este tipo de concesión cuando la aplicación registrada es del tipo confidencial y la solicitud es de ámbito de usuario.
El flujo es el mismo que cuando se usa el código de autorización, excepto que en la solicitud de autorización debe incluir los siguientes parámetros de consulta de solicitud:
-
code_challenge_method
, que debe serS256
-
code_challenge
una cadena criptográficamente aleatoria derivada del verificador de código, utilizada para conectar la solicitud de autorización con la solicitud de token.
Debe utilizar un algoritmo verificador de código para generar el desafío de código. También puedes crear el tuyo propio, siempre que cumpla el estándar rfc7636 .
https://{yourDomain}/identity_/connect/authorize?
response_type=code
&client_id={app_id}
&scope={scopes}
&redirect_uri={redirect_url}
&code_challenge={cryptographically-random string from code_verifier}
&code_challenge_method=S256
https://{yourDomain}/identity_/connect/authorize?
response_type=code
&client_id={app_id}
&scope={scopes}
&redirect_uri={redirect_url}
&code_challenge={cryptographically-random string from code_verifier}
&code_challenge_method=S256
https://{yourDomain}/identity_/connect/token
, es necesario incluir code_verifier
(la cadena original utilizada para generar code_challenge
) en el cuerpo de la solicitud.
application/x-www-form-urlencoded
.
{
"grant_type": "authorization_code",
"code": "{authorization_code}",
"redirect_uri": "{redirect_url}",
"client_id": "{app_id}",
"code_verifier": "{code_verifier}"
}
{
"grant_type": "authorization_code",
"code": "{authorization_code}",
"redirect_uri": "{redirect_url}",
"client_id": "{app_id}",
"code_verifier": "{code_verifier}"
}
La respuesta incluye un token de acceso que la aplicación puede utilizar para acceder a los recursos del usuario hasta que el token caduque (una hora). Para más información, consulta la sección Uso del token de acceso y Obtención de un token de actualización.
client_id
y client_secret
al punto de conexión del Identity Server:
https://{yourDomain}/identity_/connect/token
.
application/x-www-form-urlencoded
.
{
"grant_type": "client_credentials",
"client_id": "{app_id}",
"client_secret": "{app_secret}",
"scope": "{scopes}"
}
{
"grant_type": "client_credentials",
"client_id": "{app_id}",
"client_secret": "{app_secret}",
"scope": "{scopes}"
}
Cuando la aplicación tiene un token de acceso, puede utilizarse para acceder a los recursos permitidos, limitados a los ámbitos seleccionados, hasta que el token caduque (una hora).
A continuación se muestra un ejemplo de solicitud a la API odata/Machines que utiliza un token de acceso en la cabecera Authorization, donde el token de acceso contiene el ámbito OR.Machines en la solicitud de ámbito.
curl -X GET "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Machines"
-H "Authorization: Bearer {access_token}" -H "accept: application/json"
curl -X GET "https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/odata/Machines"
-H "Authorization: Bearer {access_token}" -H "accept: application/json"
https://{yourDomain}/{organizationName}/{tenantName}/orchestrator_/swagger/index.html
para obtener información sobre las API disponibles.
Los tokens de acceso caducan en una hora. La aplicación externa puede obtener un nuevo token de acceso sin la interacción del usuario intercambiando un token de actualización por él. Tanto las aplicaciones externas confidenciales como las no confidenciales pueden solicitar un token de actualización.
Los tokens de actualización también son válidos para un solo uso y caducan a los 60 días.
offline_access
en el parámetro scope
de la solicitud de autorización para que el código de autorización pueda usarse en una solicitud de token para obtener un token de actualización.
Envía una petición POST con el código de autorización al punto de conexión del token
https://{yourDomain}/identity_/connect/token
.
application/x-www-form-urlencoded
.
La solicitud devuelve un nuevo token de acceso y un token de actualización:
{
"access_token": "{access_token}",
"expires_in": 3600,
"token_type": "Bearer",
"refresh_token": "{refresh_token}",
"scope": "OR.Machines OR.Robots offline_access"
}
{
"access_token": "{access_token}",
"expires_in": 3600,
"token_type": "Bearer",
"refresh_token": "{refresh_token}",
"scope": "OR.Machines OR.Robots offline_access"
}
https://{yourDomain}/identity_/connect/token
utilizando el tipo de concesión refresh_token
.
application/x-www-form-urlencoded
.
{
"grant_type": "refresh_token",
"client_id": "{app_id}",
"client_secret": "{app_secret}",
"refresh_token": "{existing_refresh_token}"
}
{
"grant_type": "refresh_token",
"client_id": "{app_id}",
"client_secret": "{app_secret}",
"refresh_token": "{existing_refresh_token}"
}
client_secret
del cuerpo de la solicitud.
La respuesta devuelve un nuevo token de acceso y un nuevo token de actualización.
El token de actualización existente ya no es válido después de su uso, así que asegúrate de utilizar el nuevo token de actualización que has recibido.
application/x-www-form-urlencoded
para cualquier petición a los puntos de conexión del Identity Server. Esto no es necesario si las solicitudes se realizan de forma programada.
Capa de servidor de identidad | PuntoFinal | Descripción |
---|---|---|
Discovery | https://{yourDomain}/identity_/.well-known/openid-configuration | Usa este punto final para recuperar metadatos sobre tu instancia de Identity Server. |
Autorización | https://{yourDomain}/identity_/connect/authorize | Utilice este punto final para solicitar tokens o códigos de autorización a través del navegador. Este proceso incluye la autenticación del usuario final y, de forma opcional, el consentimiento. |
Token | https://{yourDomain}/identity_/connect/token | Usa este extremo para solicitar tokens mediante programación.
Ten en cuenta que para este punto final, el tipo de contenido debe ser
application/x-www-form-urlencoded .
|
- Cómo utilizar los diferentes tipos de concesión
- Acceso detallado
- Código de autorización
- Código de autorización con PKCE
- Credenciales de Cliente
- Uso del token de acceso
- Obtener un token de actualización
- Obtener un token de actualización
- Obtener un nuevo token de actualización y un nuevo token de acceso
- UiPath® Identity Server Endpoints