- Introdução
- Requisitos
- Melhores práticas
- Instalação
- Atualizando
- Servidor de Identidade
- Requisitos de hardware e software
- Pré-requisitos para a instalação
- Instalação
- Considerações de Manutenção
- Solução de problemas do servidor de identidade
- Complemento de alta disponibilidade
- Solução de problemas de erros de inicialização
Solução de problemas do servidor de identidade
Pode haver situações nas quais o Identity Server gera mensagens de erro que contêm informações confidenciais. Por exemplo, se o certificado usado para assinar os tokens de acesso gerados pelo Identity Server for uma chave pública em 1024 bits, ao invés de 2048 bits, você receberá a seguinte mensagem de erro ao tentar fazer login em um tenant do Orchestrator recém-instalado ou atualizado:
InternalServerError - IDX10630 The '[PII is hidden. For more details, see https://aka.ms/IdentityModel/PII.]'
appsettings.Production.json
arquivo do Identity Server, dentro de sua seção existente do AppSettings:
"AppSettings": {
"EnablePII": true
},
"AppSettings": {
"EnablePII": true
},
EnablePII
no Arquivo appsettings.Production.json
do Identity Server, algumas informações ainda podem estar ocultas. Para exibir o PII do Orchestrator, adicione a configuração ExternalAuth.ShowPII ao UiPath.Orchestrator.dll.config
do Orchestrator.
Com essa nova configuração, a mensagem de erro revela mais informações úteis:
The 'Microsoft.IdentityModel.Tokens.X509SecurityKey, KeyId: 'F9B1F6C18B728C02C8853470C71C365F000C86B5', InternalId: 'd3dadcac-e5aa-48e6-a20a-9232a3c3d16f'.'
for signing cannot be smaller than '2048' bits. KeySize: '1024'. (Parameter 'key.KeySize')
Pode haver situações nas quais o Pacote de hospedagem do .NET Core não foi instalado corretamente. Isso pode ter os seguintes efeitos:
- Aplicativos .NET Core que estejam em execução no IIS (como o Identity Server) não iniciam. Em vez disso, o erro
System.IO.IOException: IDX20807: Unable to retrieve document
é exibido. - Um erro aparece quando você acessa os Mapeamentos do Handler para o Identity Server no IIS.
- O erro
500.19 Error Code: 0x8007000d
ocorre ao visitar a URL https://localhost/identity em um navegador.
A solução óbvia para esse problema é reinstalar o Pacote de Hospedagem .NET Core.
Quando você atualizar seu Orchestrator para a 2020.4+, o Identity Server migrará suas configurações anteriores. Se você habilitou anteriormente a autenticação do Windows ao configurar o logon automático para usuários do Windows AD, então após executar a atualização, os usuários não poderão acessar a página Provedores externos, se eles tiverem se conectado anteriormente no Identity Server. Os usuários estão conectados aos tenants diretamente após inserir suas credenciais do Windows.
Sem poder acessar a página Logon, o administrador do host não pode fazer logon no tenant do Host e não poderá acessar o portal de gerenciamento de identidades.
https://<OrchestratorURL>/identity/configuration
.
/api/account/authenticate Chamadas com falha para usuários que alteraram as senhas no primeiro login
Invalid credentials, failed to login
.
Os usuários nesta situação devem alterar sua senha na página Perfil do Orchestrator.
Keyset does not exist
pode ocorrer se o certificado usado para o Identity Server não possuir as permissões apropriadas definidas.
Execute o seguinte script do PowerShell como Administrador para conceder permissões para o certificado:
import-module WebAdministration
$siteName = 'UiPath Orchestrator'
$binding = (Get-ChildItem -Path IIS:\SSLBindings | Where Sites -eq $siteName)[0]
$certLoc = "cert:\LocalMachine\MY\$($binding.Thumbprint)"
$cert = Get-Item $certLoc
$keyPath = $env:ProgramData + "\Microsoft\Crypto\RSA\MachineKeys\"
$keyName = $cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
$keyFullPath = $keyPath + $keyName
$acl = (Get-Item $keyFullPath).GetAccessControl('Access')
$permission="IIS_IUSRS","Full","Allow"
$accessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permission
$acl.AddAccessRule($accessRule)
Set-Acl -Path $keyFullPath -AclObject $acl
import-module WebAdministration
$siteName = 'UiPath Orchestrator'
$binding = (Get-ChildItem -Path IIS:\SSLBindings | Where Sites -eq $siteName)[0]
$certLoc = "cert:\LocalMachine\MY\$($binding.Thumbprint)"
$cert = Get-Item $certLoc
$keyPath = $env:ProgramData + "\Microsoft\Crypto\RSA\MachineKeys\"
$keyName = $cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
$keyFullPath = $keyPath + $keyName
$acl = (Get-Item $keyFullPath).GetAccessControl('Access')
$permission="IIS_IUSRS","Full","Allow"
$accessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permission
$acl.AddAccessRule($accessRule)
Set-Acl -Path $keyFullPath -AclObject $acl
$siteName
de acordo com sua instalação do Orchestrator.
Reinicie o site do IIS após realizar qualquer alteração de configuração.
O serviço do Orchestrator deve ser interrompido antes de qualquer atualização/upgrade do serviço do Identity Server. Alterações feitas em robôs no Orchestrator durante a atualização do Identity Server resultam em uma atualização com falha.
Se isso ocorrer, interrompa o serviço do Orchestrator e execute a migração novamente.
Vários problemas foram vinculados a problemas de localização em idiomas que contêm caracteres não ASCII. Para suporte completo à localização, atualize para a versão 20.10+ Insights.
A solução a seguir aborda os cenários em que você instalou o Orchestrator v2020.4 ou posterior e precisa de configurações específicas para o seu provedor SAML funcionar.
Embora a Interface Gráfica do Identity Server deve atender à maioria das suas necessidades em termos de configuração do SAML, essa seção fornece uma maneira de controlar configurações adicionais do SAML que não estão expostas por padrão. Para obter uma lista completa das configurações disponíveis, consulte a documentação oficial do Sustainsys.Saml2.
Sustainsys.Saml2 é a biblioteca da qual o Identity Server depende para oferecer suporte ao SAML, e ela usa um arquivo de configuração XML. Para obter acesso aos campos que não estão disponíveis na Interface Gráfica do Identity Server, você precisa substituir esse arquivo XML. O seguinte procedimento descreve como você pode gerenciar isso:
- Certifique-se de ter ativado e configurado corretamente o provedor de identidade externo SAML na página Provedores Externos no Portal de Gerenciamento de Identidades.
-
Edite o arquivo
appsettings.json
ouappsettings.Production.json
para incluir a seguinte seção no nível raiz. Isso diz para o Identity Server procurar um arquivo chamadosaml2.xml
na mesma pasta que o aplicativo web e oappsettings.json
ouappsettings.Production.json
."Authentication": { "Saml2": { "ConfigFile": "saml2.xml" } },
"Authentication": { "Saml2": { "ConfigFile": "saml2.xml" } }, - Crie um arquivo XML chamado
saml2.xml
e adicione a configuração do SAML. -
Mapeie os campos na página Provedores Externos no Portal de Gerenciamento do Identity para os nós correspondentes no
saml2.xml
.<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="sustainsys.saml2" type="Sustainsys.Saml2.Configuration.SustainsysSaml2Section, Sustainsys.Saml2" /> </configSections> <sustainsys.saml2 entityId="--1--" returnUrl="--5--"> <identityProviders> <add entityId="--2--" signOnUrl="--3--" allowUnsolicitedAuthnResponse="--4--" binding="--6--"> <signingCertificate storeName="--7--" storeLocation="--8--" findValue="--9--" x509FindType="FindByThumbprint"/> </add> </identityProviders> <serviceCertificates> <add use="Both" storeName="--10--" storeLocation="--11--" findValue="--12--" x509FindType="FindByThumbprint"/> </serviceCertificates> </sustainsys.saml2> </configuration>
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="sustainsys.saml2" type="Sustainsys.Saml2.Configuration.SustainsysSaml2Section, Sustainsys.Saml2" /> </configSections> <sustainsys.saml2 entityId="--1--" returnUrl="--5--"> <identityProviders> <add entityId="--2--" signOnUrl="--3--" allowUnsolicitedAuthnResponse="--4--" binding="--6--"> <signingCertificate storeName="--7--" storeLocation="--8--" findValue="--9--" x509FindType="FindByThumbprint"/> </add> </identityProviders> <serviceCertificates> <add use="Both" storeName="--10--" storeLocation="--11--" findValue="--12--" x509FindType="FindByThumbprint"/> </serviceCertificates> </sustainsys.saml2> </configuration> - Adicione as configurações que você precisa. Por exemplo, use
publicOrigin
em cenários com balanceamento de carga ouminIncomingSigningAlgorithm
se você quiser alterar a opção SHA256 padrão. - Salve os arquivos e reinicie o aplicativo web do Identity Server no IIS. Se você encontrar qualquer erro com a configuração do SAML, os eventos de erro devem estar visíveis nos seus logs. Você pode usar o Visualizador de Eventos do Windows, a ferramenta padrão para esse propósito.
UiPath.Orchestrator.dll.config
do Orchestrator não oferece uma maneira para atualizar o tempo de expiração do bearer do token.
AccessTokenLifetime
do cliente Orchestrator.Ropc
no banco de dados Clients
do Identity Server.
No exemplo a seguir, o tempo de expiração do bearer do token do é definido para 86400 segundos (24 horas).
UPDATE [identity].[Clients]
SET AccessTokenLifetime = 86400
WHERE ClientName = 'Orchestrator.Ropc'
UPDATE [identity].[Clients]
SET AccessTokenLifetime = 86400
WHERE ClientName = 'Orchestrator.Ropc'
UiPath.Orchestrator.dll.config
do Orchestrator não oferece uma maneira de atualizar o período de expiração do token usado para autenticação nos portais de gerenciamento no nível de host e de organização. Portanto, as sessões do usuário não expiram.
accessTokenLifetime
seguindo as instruções abaixo:
- Obtenha um token de instalação do cliente para o host.
- Faça logout do usuário administrator do sistema.
- Navegue até a API do Swagger do Identity Server em
https://<server>/identity/swagger
. - Autorizar usando
Bearer <token>
, onde o valor<token>
é aquele obtido na etapa 1. - Recuperar detalhes do cliente usando GET
/api/Client/6654E78D-8490-4ABE-9C40-D28267C89F3A
. - Copie o corpo da resposta e altere o valor da propriedade
accessTokenLifetime
para o valor de expiração do token desejado (em segundos). - Use o corpo da resposta editado em uma solicitação PUT
/api/Client/6654E78D-8490-4ABE-9C40-D28267C89F3A
. - Verifique se corpo da resposta contém o valor atualizado para a propriedade
accessTokenLifetime
.
A solicitação de fazer logoff pode às vezes ter uma string de consulta de URL que excede o comprimento máximo padrão para strings de consulta permitido pelo IIS. Aqui estão duas maneiras de modificar essa configuração:
web.config
não são preservadas após a atualização a partir da versão 2021.10.
- Na árvore Conexões, navegue até Sites -> UiPath Orchestrator -> Identity.
- Dê um duplo clique no ícone Filtragem de solicitação.
- No painel do lado direito, clique em Editar configurações de recursos.
- Aumente o valor para String de consulta máxima (Bytes).
-
Encontre o arquivo
web.config
para o Identity.- Por padrão, isso é
C:\Program Files (x86)\UiPath\Orchestrator\Identity\web.config
para instalaçõesMSI
. - Para instalações do Serviço de Aplicativo do Azure, abra o Editor do Serviço de Aplicativo em Ferramentas de desenvolvimento e navegue até
wwwroot/Web/web.config
. Certifique-se de que você está modificando o Identity, não o Orchestrator.
- Por padrão, isso é
-
Abra com um editor de texto e encontre o nó requestFiltering, que está sob o nó security. Sob o requestFiltering, adicione um nó requestLimits conforme mostrado abaixo:
<configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <security> <requestFiltering> <requestLimits maxQueryString="4096" /> </requestFiltering> </security> </system.webServer> </location> </configuration>
<configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <security> <requestFiltering> <requestLimits maxQueryString="4096" /> </requestFiltering> </security> </system.webServer> </location> </configuration>
As atualizações para 2022.4 podem falhar com um erro de tempo limite esgotado devido a um problema no banco de dados do Identity Server. Para corrigir o problema, você deve executar o script a seguir e tentar novamente a operação.
DELETE [identity].[PersistedGrants] WHERE [Expiration] < GETUTCDATE()
DECLARE @ConsumedTime DATETIME = DATEADD(SECOND, -7200, GETUTCDATE())
DELETE [identity].[PersistedGrants] WHERE [ConsumedTime] IS NOT NULL AND [ConsumedTime] < @ConsumedTime
DELETE [identity].[PersistedGrants] WHERE [Expiration] < GETUTCDATE()
DECLARE @ConsumedTime DATETIME = DATEADD(SECOND, -7200, GETUTCDATE())
DELETE [identity].[PersistedGrants] WHERE [ConsumedTime] IS NOT NULL AND [ConsumedTime] < @ConsumedTime
Os usuários que fazem parte de vários tenants encontram um erro “Erro ao entrar em contato com o serviço de partição para validar a organização (#404)” durante a autenticação. Esse erro ocorre porque a solicitação de autenticação excede o limite de tamanho de string de consulta padrão no IIS (2048 caracteres), especialmente para usuários associados a um número significativo de tenants (normalmente mais de 30 tenants).
Para resolver esse problema, você pode ajustar o limite de tamanho da string de consulta no IIS.
- Na árvore Conexões, navegue até Sites -> UiPath Orchestrator -> Identity.
- Dê um duplo clique no ícone Filtragem de solicitação.
- No painel do lado direito, clique em Editar configurações de recursos.
- Aumente o valor para String de consulta máxima (Bytes).
-
Encontre o arquivo
web.config
para o Identity.- Por padrão, isso é
C:\Program Files (x86)\UiPath\Orchestrator\Identity\web.config
para instalaçõesMSI
. - Para instalações do Serviço de Aplicativo do Azure, abra o Editor do Serviço de Aplicativo em Ferramentas de desenvolvimento e navegue até
wwwroot/Web/web.config
. Certifique-se de que você está modificando o Identity, não o Orchestrator.
- Por padrão, isso é
-
Abra com um editor de texto e encontre o nó requestFiltering, que está sob o nó security. Sob o requestFiltering, adicione um nó requestLimits conforme mostrado abaixo:
<configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <security> <requestFiltering> <requestLimits maxQueryString="4096" /> </requestFiltering> </security> </system.webServer> </location> </configuration>
<configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <security> <requestFiltering> <requestLimits maxQueryString="4096" /> </requestFiltering> </security> </system.webServer> </location> </configuration>
- Visualizando informações adicionais em logs
- Instalação com falha do Pacote de Hospedagem .NET Core
- Não é possível acessar a página de provedores externos após atualizar para o Orchestrator 2020.4+
- /api/account/authenticate Chamadas com falha para usuários que alteraram as senhas no primeiro login
- Conjunto de chaves não existe erro após a instalação
- RobotKeyMigration falha durante a atualização
- Implantações que usam idiomas que contêm caracteres não ASCII
- Configurando as configurações do SAML não disponíveis na Interface Gráfica do Identity Server
- Atualizando a Expiração do Bearer do Token
- Configurando um intervalo de tempo limite para os portais de gerenciamento
- A. Via API
- Via SQL
- Erro 404 intermitente ao fazer logoff
- Como usar a ferramenta Gerenciador do IIS
- Modificando identidade Web.config
- Falha da atualização com tempo limite
- 404 quando o usuário em vários tenants tenta fazer a autenticação
- Como usar a ferramenta Gerenciador do IIS
- Modificando identidade Web.config
- As operações AD falham após a atualização para o Orchestrator 2021.10 ou superior