- Introdução
- Leia-me
- Sobre OData e referências
- URL do Orchestrator
- Referências de API
- Recursos lógicos e metadados
- Operações disponíveis
- Tipos enumerados
- Autenticando
- Criação de solicitações de API
- Acesso a recursos da UiPath usando aplicativos externos
- Permissões por endpoint
- Códigos de resposta
- Pontos de extremidade de verificação de integridade
- Definição do Swagger
- Exemplos usando a API 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 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
Acesso a recursos da UiPath usando aplicativos externos
Estas instruções destinam-se a desenvolvedores que mantêm a integração entre produtos UiPath e aplicativos externos em um ambiente com uma instalação local do Orchestrator ou uma instalação auto-hospedada do Orchestrator.
Antes de você começar:
- O aplicativo externo já deve estar registrado em Aplicativos externos pelo administrator da organização.
- Obtenha os detalhes do registro do administrador da organização.
Após o aplicativo externo ser registrado, você deve implementar o mecanismo de autorização adequado para o aplicativo externo, com um tipo adequado de concessão para o escopo registrado, para que o aplicativo externo possa recuperar um token de acesso.
Qual tipo de concessão de autorização usar:
Tipo de Aplicativo |
Escopo |
Tipo de concessão necessário |
---|---|---|
Confidencial |
Usuário |
Código de autorização (instruções) |
Confidencial |
Aplicativo |
Credenciais do cliente (instruções) |
não confidencial |
Usuário |
Código de autorização com PKCE (instruções) |
Se um aplicativo confidential foi concedido tanto para usuários quanto para aplicativos, você deve implementar ambos os tipos de concessão.
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.
O servidor de autorização para acesso dos recursos da UiPath é o UiPath Identity Server, o qual é compatível com a framework do OAuth 2.0.
Use esse tipo de concessão quando o aplicativo registrado for do tipo confidencial e a solicitação for para o escopo do usuário.
Com esse tipo de concessão, o fluxo é o seguinte:
Agora, o aplicativo pode usar o token de acesso para acessar recursos de usuário até que o token expire (uma hora). Consulte Uso do Token de Acesso e Obtenção de um token de atualização para mais informações.
Use esse tipo de concessão se o aplicativo registrado for do tipo não confidencial e a solicitação for para escopo do usuário.
O fluxo é o mesmo ao usar o código de autorização, exceto que na solicitação de autorização é preciso incluir os seguintes parâmetros de consulta de solicitação:
code_challenge_method
, que deve serS256
code_challenge
, uma cadeia criptográfica 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.
{BaseURL}/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
{BaseURL}/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
{BaseURL}/identity/connect/token
, você precisa incluir code_verifier
(uma cadeia original usada para gerar code_challenge
) no corpo da solicitação.
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}"
}
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). Consulte Uso do Token de Acesso e Obtenção de um token de atualização para mais informações.
client_id
e o client_secret
para o endpoint do token do Identity Server: {BaseURL}/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}"
}
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 de autorização, onde o token de acesso contém o escopo OR.Machines na declaração do escopo.
curl -X GET "{OrchestratorURL}/odata/Machines"
-H "Authorization: Bearer {access_token}" -H "accept: application/json"l
curl -X GET "{OrchestratorURL}/odata/Machines"
-H "Authorization: Bearer {access_token}" -H "accept: application/json"l
{OrchestratorURL}/swagger/index.html
para obter informações sobre as API disponíveis.
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 atualização por ele.
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 do token para obter um token de atualização.
Para obter um token de atualização, envie uma solicitação POST com o código de autorização para o endpoint do token
{BaseURL}/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"
}
{BaseURL}/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}"
}
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.
{BaseURL}/identity/.well-known/openid-configuration
{BaseURL}/identity/connect/authorize
{BaseURL}/identity/connect/token