- Démarrage
- Lisez-moi
- À propos d'OData et des références
- URL d'Orchestrator
- Références d'API
- Rate limits and large data fields usage optimization
- Ressources logiques et métadonnées
- Opérations disponibles
- Fichiers énumérés (Enumerated Files)
- Utilisation de l'API de cloud
- Création des requêtes d'API
- Applications externes (OAuth)
- Autorisations par point de terminaison
- Codes de réponse
- Définition Swagger
- Exemples d'utilisation de l'API Orchestrator
- Demandes d'alertes
- Requêtes relatives aux actifs
- Requêtes de calendriers
- Requêtes relatives aux environnements
- Requêtes de dossiers
- Requêtes de tâches génériques
- Requêtes relatives aux tâches
- Requêtes relatives aux bibliothèques
- Requêtes relatives aux licences
- Requêtes relatives aux paquets (Packages Requests)
- Requêtes relatives aux autorisations
- Demandes d'espaces de travail personnels
- Requêtes relatives aux processus
- Traiter les requêtes liées à la stratégie de conservation des données
- Demandes d'éléments de la file d'attente
- Requêtes en matière de stratégie de rétention des files d’attente
- Requêtes relatives aux Robots
- Requêtes relatives aux rôles (Roles Requests)
- Requêtes relatives aux planifications
- Requêtes relatives aux paramètres
- Requêtes de compartiments de stockage
- Requêtes de tâches
- Demandes de catalogues de tâches
- Demandes de formulaires de tâches
- Requêtes relatives aux locataires
- Requêtes relatives aux transactions
- Requêtes relatives aux utilisateurs
- Requêtes relatives aux Webhooks
Applications externes (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.
Avant de commencer :
- L'application externe doit déjà être enregistrée par un administrateur de l'organisation.
- Obtenez les détails d'enregistrement auprès de l'administrateur de l'organisation.
Une fois l'application externe enregistrée, vous devez implémenter le mécanisme d'autorisation approprié pour l'application externe, avec le type d'accord approprié pour l'étendue autorisée, afin que l'application externe puisse récupérer un jeton d'accès.
Quel type d'accord d'autorisation utiliser :
Type de demande (Application Type) |
Portée |
Type d'accord requis |
---|---|---|
confidentiel |
Utilisateur (User) |
Code d'autorisation |
confidentiel |
Application |
Informations d’identification du client |
non confidentiel |
Utilisateur (User) |
Code d'autorisation avec PKCE |
Si une application confidentielle s'est vu accorder à la fois des étendues d'utilisateur et d'application, vous devez implémenter les deux types d'accord.
Lorsque le nom de l'étendue est le même dans l'étendue de l'utilisateur et de l'application, comme dans le cas d'Orchestrator, le type d'octroi que vous utilisez détermine si la ressource est appelée dans l'étendue de l'utilisateur ou dans l'étendue de l'application.
The authorization server for accessing UiPath® resources is the UiPath® Identity Server, which supports the OAuth 2.0 framework.
OR.Default
, qui permet à l'application de vérifier les affectations effectuées dans Orchestrator, aux niveaux du locataire et du dossier. L'application peut ensuite accéder aux ressources auxquelles l'accès lui a été accordé dans ces locataires et dossiers.
Par exemple, vous souhaitez qu'une application externe affiche les tâches et les machines de tous les locataires de l'organisation. En tirant parti de la fonctionnalité accès affiné, vous pouvez également configurer l'application pour qu'elle affiche les files d'attente dans un dossier.
OR.Jobs.Read, OR.Machines.Read, OR.Default
. Cela accorde à votre application les autorisations Afficher (View) sur les tâches et les machines pour tous les locataires de l'organisation, ainsi que les autorisations Afficher (View) sur les files d'attente dans le dossier, sous réserve que l'application externe lui ait été attribuée et que les autorisations requises aient été accordées à cette application externe via un rôle.
Utilisez ce type d'accord lorsque l'application enregistrée est de type confidentiel et que la demande concerne l' étendue de l'utilisateur.
Avec ce type d'accord, le flux est le suivant :
L'application peut désormais utiliser le jeton d'accès pour accéder aux ressources utilisateur jusqu'à l'expiration du jeton (une heure).
Utilisez ce type d'accord si l'application enregistrée est de type non confidentielle et que la demande concerne l'étendue de l'utilisateur.
Le flux est le même que lors de l'utilisation du code d'autorisation, mais dans la demande d'autorisation, vous devez inclure les paramètres de requête suivants :
-
code_challenge_method
, qui doit êtreS256
-
code_challenge
, une string à la cryptographie aléatoire dérivée de code_verifier, utilisée pour connecter la demande d'autorisation à la demande de jeton.
Vous devez utiliser un algorithme de vérification de code pour générer le défi de code. Vous pouvez également créer le vôtre, à condition qu'il soit conforme à la norme rfc7636 .
https://cloud.uipath.com/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://cloud.uipath.com/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://cloud.uipath.com/identity_/connect/token
, vous devez inclure code_verifier
(la chaîne d'origine utilisée pour générer code_challenge
) dans le corps de la demande.
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 réponse comprend un jeton d'accès que l'application peut utiliser pour accéder aux ressources utilisateur jusqu'à l'expiration du jeton (une heure). Voir Utilisation du jeton d'accès et Obtention d'un jeton de réactualisation pour plus d'informations.
client_id
et le client_secret
au point de terminaison du jeton Identity Server :
https://cloud.uipath.com/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}"
}
Une fois que l'application dispose d'un jeton d'accès, elle peut utiliser le jeton pour accéder aux ressources autorisées, limitées aux étendues sélectionnées, jusqu'à l'expiration du jeton (une heure).
Voici un exemple de demande à l'API OData/Machines qui utilise un jeton d'accès dans l'en-tête d'autorisation, où le jeton d'accès contient l'étendue OR.Machines dans la demande d'étendue.
curl -X GET "https://cloud.uipath.com/{organizationName}/{tenantName}/orchestrator_/odata/Machines"
-H "Authorization: Bearer {access_token}" -H "accept: application/json"
curl -X GET "https://cloud.uipath.com/{organizationName}/{tenantName}/orchestrator_/odata/Machines"
-H "Authorization: Bearer {access_token}" -H "accept: application/json"
https://cloud.uipath.com/{organizationName}/{tenantName}/orchestrator_/swagger/index.html
pour plus d'informations sur les API disponibles.
Les jetons d'accès expirent dans une heure. L'application externe peut obtenir un nouveau jeton d'accès sans interaction de l'utilisateur en lui échangeant un jeton de réactualisation. Les applications externes confidentielles et non confidentielles peuvent demander toutes deux un jeton d'actualisation.
Les jetons de réactualisation sont également valables pour une seule utilisation et ils expirent après 60 jours.
offline_access
dans le paramètre scope
de la demande d'autorisation afin que le code d'autorisation puisse être utilisé dans une demande de jeton afin d'obtenir un jeton de réactualisation.
Envoyer une requête POST avec le code d'autorisation au point de terminaison du jeton
https://cloud.uipath.com/identity_/connect/token
.
application/x-www-form-urlencoded
.
La requête renvoie un nouveau jeton d'accès et un jeton de réactualisation :
{
"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://cloud.uipath.com/identity_/connect/token
à l'aide du type d'accord 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
du corps de la demande.
La réponse renvoie un nouveau jeton d'accès et un nouveau jeton de réactualisation.
Le jeton de réactualisation existant n'est plus valide après utilisation, alors assurez-vous d'utiliser le nouveau jeton de réactualisation que vous avez reçu.
application/x-www-form-urlencoded
pour toutes les demandes faites aux points de terminaison d'Identity Server. Si vous effectuez des demandes par programmation, cela n'est pas nécessaire.
Couche Identity Server | Endpoint | Description |
---|---|---|
Découverte | https://cloud.uipath.com/identity_/.well-known/openid-configuration | Utilisez ce point de terminaison pour récupérer des métadonnées sur votre instance d'Identity Server. |
Autorisation | https://cloud.uipath.com/identity_/connect/authorize | Utilisez ce point de terminaison pour demander des jetons ou des codes d'autorisation via le navigateur. Ce processus comprend l'authentification de l'utilisateur final et éventuellement le consentement. |
Jeton | https://cloud.uipath.com/identity_/connect/token | Utilisez ce point de terminaison pour demander des jetons par programmation.
Veuillez noter que pour ce point de terminaison, le type de contenu doit être
application/x-www-form-urlencoded .
|
- Utilisation des différents types d'accord
- Accès précis
- Code d'autorisation
- Code d'autorisation avec PKCE
- Client Credentials
- Utilisation du jeton d'accès
- Obtention d'un jeton de réactualisation
- Obtenir un jeton d'actualisation
- Obtenir un nouveau jeton de réactualisation et un nouveau jeton d'accès
- UiPath® Identity Server Endpoints