- 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 espaços de trabalho pessoais
- Solicitações de processos
- Solicitações de itens de fila
- Solicitações da política de retenção de filas
- Solicitações de robôs
- Solicitações de funções
- Solicitações de agendamentos
- Solicitações de configurações
- Solicitações de bucket de armazenamento
- 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
Aplicativos externos (OAuth)
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.
Pré-requisitos
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.).
Autenticação e autorização de aplicativos externos
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ão 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.
Por exemplo, suponha que você queira que seu aplicativo tenha acesso em toda a organização para visualizar todas as máquinas, bem como permissões exclusivas em um nível mais granular dentro de tenants e pastas definidos. Nesse caso, você pode declarar os escopos como 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)
Os aplicativos confidenciais com escopos de aplicativos executam o fluxo de credenciais do cliente no UiPath Identity Server.
O diagrama mostra o fluxo de credenciais do cliente do OAuth. O cliente envia a credencial para o Identity Server e recebe o token de acesso. Com o token verificado, o acesso é fornecido aos recursos de API.
Para obter uma compreensão detalhada do fluxo do OAuth que utiliza Credenciais do Cliente, consulte o documento RFC 6749.
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
client_ideclient_secretpara o ponto de extremidadedo do token do Identity Server:https://{yourDomain}/{organizationName}/identity/connect/token: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}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 o client_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.
- Use
-
O aplicativo externo recebe uma resposta contendo o token de acesso:
{ "access_token":"{access_token}", "expires_in":3600, "token_type":"Bearer", "scope":"{scopes}" }{ "access_token":"{access_token}", "expires_in":3600, "token_type":"Bearer", "scope":"{scopes}" }
O aplicativo pode usar o token de acesso para acessar recursos de usuários até que o token expire (uma hora).
Aplicativos confidenciais com escopos de usuário (fluxo de código de autorização)
Para aplicativos externos confidenciais com escopos de usuário, você realiza o fluxo de código de autorização no Identity Server.
O diagrama mostra o fluxo de Código de Autorização do OAuth. Cliente solicita autorização do Identity Server. O usuário é solicitado a fazer logon. Após o sucesso, o Identity Server fornece o código de autorização. O cliente usa esse código e segredo do cliente para recuperar um token de acesso. Com o token verificado, o acesso aos recursos de API é fornecido.
Para obter uma compreensão detalhada do fluxo do OAuth que utiliza códigos de autorização, consulte o documento RFC 6749.
Se você estiver usando o Postman ou uma ferramenta semelhante, use o tipo de conteúdo application/x-www-form-urlencoded
-
O aplicativo externo envia uma solicitação de autorização para obter o código de autorização para o ponto de extremidade de autorização do Identity Server
https://{yourDomain}/{organizationName}/identity/connect/authorize?:response_type=code&acr_values={value}&client_id={app_id}&scope={scopes}&redirect_uri={redirect_url}response_type=code&acr_values={value}&client_id={app_id}&scope={scopes}&redirect_uri={redirect_url}Opção
Description
acr_valuesPermite que o Identity Server aplique uma política de autenticação com base na organização à qual o usuário pertence. Pode adotar diferentes valores:
-
acr_values=tenant:{target organization GlobalId} - o ID da organização serve como um valor de ACR.
-
acr_values=tenantName:{target organization name} - o nome da organização atua como um valor de ACR.
client_idEspecifica o identificador exclusivo atribuído ao aplicativo durante seu registro.
Deve conter o ID do aplicativo (conforme fornecido pelo administrador).
client_secretEspecifica uma informação confidencial, como uma senha, que é fornecida a aplicativos confidenciais após o registro. Esse campo é usado junto com o client_id para autenticar o aplicativo quando emite solicitações para o Identity Server.
Deve conter o Segredo do aplicativo (conforme fornecido pelo administrador).
scopeEspecifica os escopos solicitados pelo aplicativo, delimitados por um espaço; por exemplo: OR.Machines.View OR.Default.
-
Use OR.Default para conceder acesso controlado e personalizado dentro de tenants ou pastas específicos. As permissões que o aplicativo obtém são determinadas com base nos tenants ou pastas em que o aplicativo é atribuído pelo administrador.
-
Use escopos explícitos, como OR.Machines.View, para conceder acesso amplo e em toda a organização a certos recursos.
redirect_uriEspecifica a URL para onde o Identity Server redireciona a solicitação de autorização após o código de autorização ser concedido
-
-
Um usuário deve fazer login para autenticar a solicitação de autorização.
A solicitação falha se:
- o usuário não estiver na organização onde o aplicativo externo foi registrado
- para alguns recursos, o usuário logado não tem as permissões necessárias para o escopo da solicitação.
-
O aplicativo externo recebe o código de autorização. Você só pode usar o código de autorização uma vez.
Exemplo de redirecionamento de solicitação de autorização:
{redirect_url}?code={authorization_code}&scope={scopes} -
O aplicativo externo solicita um token de acesso do UiPath® Identity Server usando o código de autorização e os detalhes de autenticação (
client_ideclient_secret). Esses estão incluídos no corpo de uma solicitação POST para o endpoint do tokenhttps://{yourDomain}/{organizationName}/identity/connect/token.grant_type=authorization_code&code={authorization_code}&redirect_uri={redirect_url}&client_id={app_id}&client_secret={app_secret}grant_type=authorization_code&code={authorization_code}&redirect_uri={redirect_url}&client_id={app_id}&client_secret={app_secret} -
O aplicativo externo recebe uma resposta contendo o token de acesso, por exemplo:
{ "access_token":"{access_token}", "expires_in":3600, "token_type":"Bearer", "scope":"{scopes}" }{ "access_token":"{access_token}", "expires_in":3600, "token_type":"Bearer", "scope":"{scopes}" }
O 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}/{organizationName}/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 o code_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 do code_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.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}
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).
Usando o Token de Acesso
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).
Aqui está um exemplo de solicitação para a API 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"
Obtendo um token de atualização
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.
Para solicitar um token de atualização, você deve incluir 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
Envie uma solicitação POST com o código de autorização para o endpoint do token
https://{yourDomain}/{organizationName}/identity/connect/token.
Se você estiver usando o Postman ou uma ferramenta semelhante, use o tipo de conteúdo 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
Envie uma solicitação POST para o endpoint do token https://{yourDomain}/{organizationName}/identity/connect/token usando o tipo de concessão refresh_token .
Se você estiver usando o Postman ou uma ferramenta semelhante, use o tipo de conteúdo 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}"
}
Se o aplicativo externo não for confidencial e estiver usando o código de autorização com o tipo de concessão PKCE, remova o parâmetro 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.
Endpoints do UiPath® Identity Server
Se você estiver usando o Postman ou uma ferramenta semelhante, use o tipo de conteúdo 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}/{organizationName}/identity/.well-known/openid-configuration | Use este endpoint para recuperar metadados sobre sua instância do Identity Server. |
| Autorização | https://{yourDomain}/{organizationName}/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}/{organizationName}/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