- Introdução
- Autenticação
- Métodos de autenticação do SQL
- Aplicativos externos (OAuth)
- ROPC (não recomendado)
- Definição do Swagger
- APIs do Orchestrator
- Solicitações de alertas
- Solicitações de ativos
- Solicitações de calendários
- Solicitações de ambientes
- Solicitações de pastas
- Solicitações de Tarefas Genéricas
- Solicitações de trabalhos
- Solicitações de bibliotecas
- Solicitações de licenças
- Solicitações de pacotes
- Solicitações de permissões
- Solicitações de processos
- Solicitações de robôs
- Solicitações de funções
- Solicitações de agendamentos
- Solicitações de configurações
- Solicitações de tarefas
- Solicitações de catálogos de tarefas
- Solicitações de formulários de tarefas
- Solicitações de tenants
- Solicitações de Transações
- Solicitações de usuários
- Solicitações de webhooks
- APIs de gestão de plataforma

Guia da API do Orchestrator
Como desenvolvedor que trabalha na integração de produtos UiPath com aplicativos externos, você é responsável por tarefas como gerenciar alterações de escopo, gerenciar tokens de acesso e atualizar tokens e manter a integração entre o aplicativo externo e os recursos da UiPath. O guia a seguir orienta você por essas operações.
O OAuth oferece uma seleção de bibliotecas que você pode aproveitar para simplificar a autenticação, autorização, delegação e segurança de chamadas de API. Você pode acessar esses recursos diretamente do site oficial do OAuth.
Como desenvolvedor, assim que o administrador da organização registrar seu aplicativo externo na UiPath, você precisará obter os detalhes de registro para autenticar seu aplicativo externo com recursos da UiPath.
-
O Tipo de aplicativo e o ID do aplicativo. Se você estiver trabalhando com um aplicativo confidencial, você também precisará do Segredo do aplicativo. Eles são usados para autenticar seu aplicativo com o Identity Server da UiPath, o servidor de autorização para acessar recursos da UiPath, que é compatível com a estrutura do OAuth 2.0.
-
Além disso, você precisa saber os escopos de aplicativos externos, que definem quais recursos seu aplicativo externo pode acessar na UiPath. Isso inclui a especificação do recurso (como Ativos, Processos etc.) e o nível de permissão (ler, gravar, editar etc.).
Depois que o aplicativo externo for registrado, você deve implementar o mecanismo de autorização apropriado para o aplicativo externo, com o tipo de concessão apropriado, para que o aplicativo externo possa recuperar um token de acesso.
Durante esse processo, solicite um token de acesso fornecendo o escopo do aplicativo externo e as credenciais do aplicativo registrado - o ID do aplicativo (e o Segredo do aplicativo no caso de aplicativos confidenciais) - para o Identity Server. Se as credenciais forem válidas, o Identity Server responderá emitindo um código de autorização, que será usado para gerar o token de acesso.
Qual tipo de concessão de autorização usar
|
Tipo de Aplicativo |
Escopo |
Tipo de concessão necessário |
|---|---|---|
|
Confidencial |
Aplicativo |
Client Credentials |
|
Confidencial |
Usuário |
Authorization Code |
|
Confidencial |
aplicativo e usuário |
Credenciais do cliente e código de autorização |
|
não confidencial |
Usuário |
Código de autorização com o PKCE |
Quando o nome de escopo é o mesmo tanto sob o escopo do usuário quanto o do aplicativo, como no caso do Orchestrator, o tipo de concessão que você usa determina se o recurso é chamado sob o escopo do usuário ou do aplicativo.
Declaração de escopos
O escopo definido pelo administrador para um aplicativo determina o nível máximo de acesso que o aplicativo pode atingir. Como desenvolvedor, se você solicitar acesso além desse escopo predefinido, sua solicitação falhará. Portanto, é importante garantir que suas solicitações estejam dentro do escopo definido pelo administrador.
No nível de administrador, as permissões do aplicativo podem ser:
-
Permissões com escopo de organização: por padrão, quando um aplicativo externo é registrado, ele tem acesso em toda a organização aos recursos de acordo com os escopos definidos.
-
Permissões refinadas: para configurações de permissões mais granulares, o administrador da organização pode atribuir uma função no nível do tenant ou da pasta dentro do Orchestrator ao aplicativo externo, embora isso seja aplicável apenas a aplicativos confidenciais.
No nível do desenvolvedor, a declaração de escopos é feita da seguinte forma:
-
Permissões com escopo de organização: quando você declara um escopo explicitamente especificado, como
OR.Machines.Viewna solicitação de token, implica que o aplicativo está solicitando uma permissão de acesso em toda a organização. -
Permissões refinadas: para fornecer ao seu aplicativo acesso refinado, você deve declarar
OR.Defaultna solicitação de token.OR.Defaultatua como um escopo de curinga, fornecendo ao seu aplicativo acesso refinado que depende da função atribuída em tenants ou pastas específicos.
OR.Machines.View e OR.Default. Essa declaração combinada permite que seu aplicativo externo opere tanto em um nível de toda a organização quanto em tenants ou pastas específicos do Orchestrator.
Verifique o ponto de extremidade na documentação de API do recurso para obter os valores de escopo de que você precisa. Por exemplo:
Aplicativos confidenciais com escopos de aplicativos (fluxo de credenciais do cliente)
Com esse tipo de concessão, o fluxo é o seguinte:
-
O aplicativo externo solicita um token de acesso enviando uma solicitação POST, que inclui o
client_ideclient_secretpara o ponto de extremidade do token do Identity Server::https://{yourDomain}/identity/connect/tokengrant_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}Campo
Description
client_idEspecifica o identificador exclusivo atribuído ao aplicativo durante seu registro.
Deve conter o ID do aplicativo (fornecido pelo administrador).
client_secretEspecifica informações confidenciais, como uma senha, que são fornecidas a aplicativos confidenciais após o registro. Esse campo é usado junto com oclient_idpara autenticar o aplicativo quando emite solicitações para o Identity Server.Deve conter o Segredo do Aplicativo (fornecido pelo administrador).
scopeEspecifica os escopos solicitados pelo aplicativo, delimitados por um espaço; por exemplo:OR.Machines.View OR.Default.-
Use
OR.Defaultpara conceder acesso controlado e personalizado dentro de tenants ou pastas específicos. As permissões reais que o aplicativo obtém são determinadas com base em onde o aplicativo é atribuído dentro de tenants ou pastas pelo administrador. -
Use escopos explícitos, como
OR.Machines.View, para conceder acesso amplo e em toda a organização a certos recursos.
-
-
O aplicativo externo recebe uma resposta contendo o token de acesso:O aplicativo pode usar o token de acesso para acessar recursos de usuários até que o token expire (uma hora).
{ "access_token":"{access_token}", "expires_in":3600, "token_type":"Bearer", "scope":"{scopes}" }{ "access_token":"{access_token}", "expires_in":3600, "token_type":"Bearer", "scope":"{scopes}" }
Aplicativos confidenciais com escopos de usuário (fluxo de código de autorização)
Para obter uma compreensão detalhada do fluxo do OAuth que utiliza códigos de autorização, consulte o documento RFC 6749.
application/x-www-form-urlencodedO aplicativo pode usar o token de acesso para acessar recursos de usuários até que o token expire (uma hora).
Aplicativos não confidenciais com escopos de usuário (código de autorização com fluxo PKCE)
Para um aplicativo não confidencial com escopos de usuário, você executa o código de autorização com fluxo PKCE. Para obter uma compreensão detalhada do fluxo do OAuth que utiliza o código de autorização com PKCE, consulte o documento RFC 7636.
Com esse tipo de concessão, o fluxo é o seguinte:
-
O aplicativo externo envia uma solicitação de autorização para obter o código de autorização para o ponto de extremidade
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=S256response_type=code&client_id={app_id}&scope={scopes}&redirect_uri={redirect_url}&code_challenge={cryptographically-random string from code_verifier}&code_challenge_method=S256Opção
Description
client_idEspecifica o identificador exclusivo atribuído ao aplicativo durante seu registro.
Deve conter o ID do aplicativo (conforme fornecido pelo administrador).
scopeEspecifica os escopos solicitados pelo aplicativo, delimitados por um espaço; por exemplo:OR.Machines.View.redirect_uriEspecifica a URL para onde o UiPath Identity Server redireciona a solicitação de autorização após o código de autorização ser concedido.
code_challenge_methodEspecifica o método usado para codificar ocode_verifierpara ocode_challenge. O valor para esse campo deve ser S256, o que significa que ocode_verifierdeve ter hash usando SHA256 e codificado com base64url para criar ocode_challenge.code_challengeUma string criptograficamente aleatória derivada docode_verifier, usada para conectar a solicitação de autorização à solicitação de token.Você deve usar um algoritmo verificador de código para gerar o desafio do código. Você também pode criar o seu, desde que ele esteja em conformidade com o padrão rfc763666.
-
Na solicitação POST de token para
https://{identity_baseURL}/connect/token, você precisa incluircode_verifier(uma cadeia original usada para gerarcode_challenge) no corpo da solicitação.A resposta inclui um token de acesso que o aplicativo pode usar para acessar recursos de usuários até que o token expire (uma hora).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}
Depois que o aplicativo tiver um token de acesso, ele pode usar o token para acessar recursos permitidos, limitado aos escopos selecionados, até que o token expire (uma hora).
odata/Machines que usa um token de acesso no cabeçalho Autorização, onde o token de acesso contém o escopo OR.Machines na declaração de escopo.
curl -X GET "https://{yourDomain}/odata/Machines"
-H "Authorization: Bearer {access_token}" -H "accept: application/json"curl -X GET "https://{yourDomain}/odata/Machines"
-H "Authorization: Bearer {access_token}" -H "accept: application/json"Os tokens de acesso expiram em uma hora. O aplicativo externo pode obter um novo token de acesso sem interação do usuário trocando um token de atualização por ele. Tanto os aplicativos confidenciais e não confidenciais externos podem solicitar um token de atualização. No entanto, o fluxo de credenciais do cliente não é compatível com tokens de atualização. No fluxo de credenciais do cliente, os tokens de acesso são concedidos diretamente sem tokens de atualização. Quando os clientes precisam de um novo token, eles devem se autenticar novamente usando suas credenciais.
Os tokens de atualização também são válidos para um único uso e eles expiram após 60 dias.
offline_access no parâmetro scope da solicitação de autorização para que o código de autorização possa ser usado em uma solicitação de token para obter um token de atualização.
Obtendo um token de atualização
POST com o código de autorização para o endpoint do token
https://{yourDomain}/identity/connect/token.
application/x-www-form-urlencoded.
A solicitação devolve um novo token de acesso e um token de atualização:
{
"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"
}Obtendo um novo token de atualização e um novo token de acesso
POST para o endpoint do token https://{yourDomain}/identity/connect/token usando o tipo de concessão 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 do corpo da solicitação.
A resposta devolve um novo token de acesso e um novo token de atualização.
O token de atualização existente não é mais válido após o uso, portanto, certifique-se de usar o novo token de atualização que você recebeu.
application/x-www-form-urlencoded para qualquer solicitação para os endpoints do Identity Server. Se você estiver fazendo solicitações programáticas, isso não será necessário.
| Camada do servidor de identidade | Endpoint | Description |
|---|---|---|
| Discovery | https://{yourDomain}/identity/.well-known/openid-configuration | Use este endpoint para recuperar metadados sobre sua instância do Identity Server. |
| Autorização | https://{yourDomain}/identity/connect/authorize | Use este terminal para solicitar tokens ou códigos de autorização por meio do navegador. Este processo inclui autenticação do usuário final e, opcionalmente, consentimento. |
| Token | https://{yourDomain}/identity/connect/token | Use esse ponto de extremidade para solicitar tokens de forma programática.
Observe que, para esse endpoint, o tipo de conteúdo deve ser
application/x-www-form-urlencoded.
|
- Pré-requisitos
- Autenticação e autorização de aplicativos externos
- Qual tipo de concessão de autorização usar
- Declaração de escopos
- Aplicativos confidenciais com escopos de aplicativos (fluxo de credenciais do cliente)
- Aplicativos confidenciais com escopos de usuário (fluxo de código de autorização)
- Aplicativos não confidenciais com escopos de usuário (código de autorização com fluxo PKCE)
- Usando o Token de Acesso
- Obtendo um token de atualização
- Obtendo um token de atualização
- Obtendo um novo token de atualização e um novo token de acesso
- Endpoints do UiPath® Identity Server