- Erste Schritte
- Anforderungen
- Best Practices
- Installation
- Wird aktualisiert
- Identity Server
- High Availability Add-on
- Fehlerbehebung bei Startfehlern
Identity Server AppSettings.json
appsettings.json
(C:\Program Files (x86)\UiPath\Orchestrator\Identity
) enthält die sofort einsatzbereiten Konfigurationseinstellungen für Identity Server. Eine zweite, identische Datei, appsettings.Production.json
, enthält ihre spezifischen Identity Server-Einstellungen.
-
Um Identity Server nach Bedarf zu konfigurieren, müssen Sie die Datei
appsettings.Production.json
ändern. Diese Datei überschreibt nach jedem Installationsvorgang alle bereits vorhandenen Einstellungen innerhalb vonappsettings.json
. -
Wenn Sie Version 2023.4 und höher verwenden und
applicationhost.config
durch Hinzufügen vonX-Content-Type-Options
geändert haben, müssen Sie es aus derappsettings.Production.json
-Datei von Identity entfernen. Siehe folgendes Beispiel:<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> <!-- <add name="X-Content-Type-Options" value="nosniff" /> --> </customHeaders>
<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> <!-- <add name="X-Content-Type-Options" value="nosniff" /> --> </customHeaders>
Es empfiehlt sich, dass nur Administratoren die Werte dieser Parameter ändern.
appsettings.Production.json
-Einstellungen unter allen Umständen zu ändern.
Parameter, die nicht auf dieser Seite dokumentiert sind, dürfen nicht geändert werden.
Bei allen Parametern wird Groß-/Kleinschreibung berücksichtigt.
Einstellungen können an mehreren Stellen konfiguriert werden. Hier sind die Prioritäten, die von Identity Server bei der Bestimmung des Werts einer Einstellung verwendet werden, geordnet von hoch (1) nach niedrig (3):
- Wert in der Datei
appsettings.Production.json
- Wert in der Datei
appsettings.json
- Standardwert im Code festgelegt. Wird nur verwendet, wenn eine bestimmte Einstellung nicht in
appsettings.Production.json
oderappsettings.json
gefunden werden kann.
appsettings.json
hat eine interne Struktur, die aus mehreren JSON-Abschnitten besteht, die durch ein Komma getrennt sind.
ConnectionStrings
wird zum Speichern der Identity Server-Datenbankverbindungszeichenfolge verwendet. Dieser Wert wird vom Installationsprogramm aufgefüllt.
appsettings.Production.json
und appsettings.json
.
"ConnectionStrings": { "DefaultConnection": "Server=.\\sqlexpress;Database=IdentityServer;User ID=<username>;Password=<password>;" }
"ConnectionStrings": { "DefaultConnection": "Server=.\\sqlexpress;Database=IdentityServer;User ID=<username>;Password=<password>;" }
EncryptionSettings
wird zum Speichern von Mandantenverschlüsselungsschlüsseln verwendet. Die Werte werden während der Installation automatisch aus UiPath.Orchestrator.dll.config
von Orchestrator migriert.
appsettings.Production.json
und appsettings.json
.
"EncryptionSettings": {
"EncryptionKey": "3wkO1hkaXLwR9LZoRZIueIxG3GIEB/YMDZUWhD9AR8g="
}
"EncryptionSettings": {
"EncryptionKey": "3wkO1hkaXLwR9LZoRZIueIxG3GIEB/YMDZUWhD9AR8g="
}
Identity Server kann für die Verwendung eines lokalen Schlüssels (siehe oben) oder eines Azure-Schlüsseltresors (siehe unten) konfiguriert werden, genau wie Orchestrator.
"EncryptionSettings": {
"MultiTenantEncryptionKeyProvider": "AzureKeyVault",
"EncryptionKeyPerTenant": true,
"AzureKeyVaultAddress": "keyVaultAddress",
"AzureKeyVaultCertificateThumbprint": "keyvaultCertificateThumbprint",
"AzureKeyVaultClientId" : "azureClientId"
},
"EncryptionSettings": {
"MultiTenantEncryptionKeyProvider": "AzureKeyVault",
"EncryptionKeyPerTenant": true,
"AzureKeyVaultAddress": "keyVaultAddress",
"AzureKeyVaultCertificateThumbprint": "keyvaultCertificateThumbprint",
"AzureKeyVaultClientId" : "azureClientId"
},
MultiTenantEncryptionKeyProvider
- gibt an, in welcher Schlüsselverwaltungsanwendung die von Orchestrator pro Mandant generierten Verschlüsselungsschlüssel gespeichert werden sollen. Standardmäßig hat die Einstellung den WertConfigFileKey
innerhalb des Codes. Die akzeptierten Werte sindAzureKeyVault
undConfigFileKey
. Während der Identity Server-Installation wird der Wert aus derEncryptionKeyPerTenant.KeyProvider
-Einstellung von UiPath.Orchestrator.dll.config kopiert.
UiPath.Orchestrator.dll.config
überein:
Identity Server-Schlüssel |
Orchestrator-Schlüssel |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
UiPath.Orchestrator.dll.config
auf LocalMachine
festgelegt ist, stellen Sie sicher, dass AzureKeyVaultCertificateStoreLocation
in appsettings.Production.json
den gleichen Wert hat.
UiPath.Orchestrator.dll.config
von Orchestrator ändern, müssen Sie auch appsettings.Production.json
von Identity Server mit denselben Werten aktualisieren.
Logging
wird die Protokollebene für jede von Identity Server verwendete Komponente konfiguriert. Dies ist eine generische Protokollierungskonfiguration. Weitere Informationen finden Sie hier.
appsettings.json
.
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
Microsoft
und Microsoft.Hosting.Lifetime
bereit.
NLog
wird definiert, wie Informationen in Identity Server über NLog-Ziele protokolliert werden, genau wie in Orchestrator.
appsettings.json
.
json
"NLog": {
"IncludeScopes": true,
"throwConfigExceptions": false,
"targets": {
"EventLog": {
"type": "EventLog",
"source": "IdentityService",
"layout": "${longdate} ${logger} ${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:format=shortType,message,stacktrace:separator=*:innerExceptionSeparator=
	}}"
}
},
"rules": [
{
"logger": "*",
"minLevel": "Info",
"writeTo": "EventLog"
}
]
},
json
"NLog": {
"IncludeScopes": true,
"throwConfigExceptions": false,
"targets": {
"EventLog": {
"type": "EventLog",
"source": "IdentityService",
"layout": "${longdate} ${logger} ${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:format=shortType,message,stacktrace:separator=*:innerExceptionSeparator=
	}}"
}
},
"rules": [
{
"logger": "*",
"minLevel": "Info",
"writeTo": "EventLog"
}
]
},
Standardmäßig ist NLog so konfiguriert, dass Protokolle in ApplicationEvents geschrieben werden. Lesen Sie hier weitere Informationen zum Konfigurieren von NLog mithilfe eines json-Abschnitts.
AppSettings
ist der Hauptkonfigurationsabschnitt von Identity Server. Dieser Abschnitt hat Werte in appsettings.Production.json
und appsettings.json
.
-
IdentityServerAddress
- stellt die Zielgruppe dar, die Identity Server bei der Validierung des Token prüft, das zum Aufruf der Identity Server-API verwendet wird. Während der Installation wird dieses Feld innerhalb vonappsettings.Production.json
automatisch mit der Adresse von Identity Server ausgefüllt. Ändern Sie diesen Wert nicht, da dies die Orchestrator-Datenweitergabe unterbricht.Diese Einstellung hat Werte inappsettings.Production.json
undappsettings.json
.Hinweis: Stellen Sie sicher, dass Sie als Wert fürIdentityServerAddress
eine URL aus Kleinbuchstaben angeben; andernfalls tritt ein Fehler auf. -
Saml2ValidCertificateOnly
- Wenn auftrue
festgelegt, ist die Verwendung ungültiger Zertifikate beim Konfigurieren von SAML2 nicht zulässig.Standardmäßig hat die Einstellung den Werttrue
innerhalb des Codes. -
EnablePII
- Wenn auftrue
festgelegt, enthalten die Ausnahmen vertrauliche Informationen (z. B. die URL-Adresse des externen Identitätsanbieters oder die Adresse von Identity Server usw.).Standardmäßig hat die Einstellung den Wertfalse
inappsettings.json
und im Code. HideErrorCodesInUi
- Steuern Sie, ob Anmeldefehlercodes auf der Benutzeroberfläche angezeigt werden. Dieser Parameter wird standardmäßig nicht angezeigt. Der Standardwert istfalse
. Legen Sietrue
fest, um Anmeldefehlercodes auf der Benutzeroberfläche auszublenden. Beispiel:"HideErrorCodesInUi": true
.-
CookieValidationInterval
- stellt das Zeitintervall (in Sekunden) dar, nach dem das Cookie überprüft wird, um festzustellen, ob der Benutzer und der Mandant noch aktiv sind und ob sich der Benutzer nicht in einem anderen Browser angemeldet hat. Der Wert inappsetttings.Production.json
wird automatisch von Orchestrator migriert, das dieselbe Einstellung hat.Standardmäßig wird der Wert inappsettings.Production.json
und des Codes auf60
Sekunden festgelegt. -
CookieExpireMinutes
- stellt das Zeitintervall (in Minuten) dar, nach dem das Identity Server-Cookie abläuft. Der Wert inappsetttings.Production.json
wird automatisch von Orchestrator migriert, das dieselbe Einstellung hat.Standardmäßig wird der Wert inappsettings.Production.json
und im Code auf30
Minuten festgelegt. -
OrchestratorUrl
– Stellt die URL des Orchestrators dar. Hierhin werden Sie von Identity Server umgeleitet, wenn Sie auf das Orchestrator-Symbol im Hub-Menü des Identity Management Portalsklicken.Der Wert wird während der Installation inappsettings.Production.json
festgelegt.Hinweis: Stellen Sie sicher, dass Sie als Wert fürOrchestratorUrl
eine URL aus Kleinbuchstaben angeben; andernfalls tritt ein Fehler auf."AppSettings": { "IdentityServerAddress": "https://myIdentity.domain.local/identity", "EnablePII": false, "HideErrorCodesInUi": true, "CookieExpireMinutes": 30, "OrchestratorUrl": "https://myOrchestratorURL.domain.local" } }
"AppSettings": { "IdentityServerAddress": "https://myIdentity.domain.local/identity", "EnablePII": false, "HideErrorCodesInUi": true, "CookieExpireMinutes": 30, "OrchestratorUrl": "https://myOrchestratorURL.domain.local" } }
LocalizationSettings
enthält die folgenden Standardwerte im Code:
"LocalizationSettings": {
"EnabledLanguages": "en,ja,de,es,es-MX,fr,ko,pt,pt-BR,ru,tr,zh-CN"
}
"LocalizationSettings": {
"EnabledLanguages": "en,ja,de,es,es-MX,fr,ko,pt,pt-BR,ru,tr,zh-CN"
}
EnabledLanguages
- listet die in Identity Server verfügbaren Sprachen auf. Wird verwendet, um die Anzahl der verfügbaren Sprachen zu begrenzen.
LoadBalancerSettings
enthält die folgenden Standardwerte in appsettings.Production.json
und im Code:
"LoadBalancerSettings": {
"RedisConnectionString": "",
"SlidingExpirationTimeInSeconds": 600
}
"LoadBalancerSettings": {
"RedisConnectionString": "",
"SlidingExpirationTimeInSeconds": 600
}
appsetttings.Production.json
werden im Falle eines Upgrades mehrerer Knoten automatisch aus UiPath.Orchestrator.dll.config
von Orchestrator migriert. Wenn Redis nicht innerhalb von Orchestrator konfiguriert ist, enthält appsettings.Production.json
diese Einstellung.
-
RedisConnectionString
– Kann nur verwendet werden, wennLoadBalancer.UseRedis
auftrue
festgelegt ist. Eine Verbindungszeichenfolge, die Ihnen ermöglicht, Ihren Redis-Server einzurichten, der die URL des Servers, das Kennwort und den mit Redis verwendeten Port enthält. Überdies besteht die Möglichkeit, mit SSL verschlüsselte Verbindungen zwischen den Orchestrator-Knoten und dem Redis-Dienst zu aktivieren. Weitere Informationen finden Sie hier. Beispiele:- mit aktiviertem SSL -
"RedisConnectionString": A"DOCWREDIS02:6379,password=12345678,ssl=true"
- ohne aktiviertes SSL -
"RedisConnectionString": "DOCWREDIS02:6379,password=12345678"
- mit aktiviertem SSL -
SlidingExpirationTimeInSeconds
- steuert die gleitende Ablaufzeit eines Elements im Cache. Diese Ablaufzeit gilt sowohl für Redis Cache als auch für InMemory Cache (dies ist die Standardeinstellung, wenn Redis nicht verfügbar ist).
RedisSettings
steuert, welche Caches aktiviert sind.
UseRedisStoreCache
– Legen Sie den Wert auftrue
fest, um das Redid-Caching von OAuth-Clientdaten zu aktivieren. Dies verhindert Leistungsprobleme bei der Verwendung der interaktiven Anmeldung, um eine große Anzahl von Robotern in kurzer Zeit zu verbinden. Dieser Cache verwendet dieselbe Redis-Verbindungszeichenfolge, die inLoadBalancerSettings
angegeben ist. Die EinstellungUseRedisStoreCache
wird nicht standardmäßig angezeigt.
UseRedisStoreClientCache
– Legen Sie den Wert auftrue
fest, um Redis-Caching für Erstanbieter-Clients (UiPath-Anwendungen) oder Drittanbieter-Clients (externe Anwendungen) zu aktivieren. Wenn Sie eine umfangreiche Bereitstellung haben, wird empfohlen, dieses Flag zu aktivieren.
SigningCredentialSettings
wird der Speicherort des Zertifikats beschrieben, das zum Signieren der von Identity Server generierten Token verwendet wird. Die Werte der Einstellungen in diesem Abschnitt werden vom Installationsprogramm basierend auf Ihrer Eingabe aufgefüllt. Die Einstellungen können so konfiguriert werden, dass das Zertifikat aus einem Zertifikatspeicher oder aus Azure Key Vault gelesen werden kann.
Einstellungen zur Zertifikatsrotation
ValidationKeys
– Geben Sie Name
, Location
und NameType
Ihres zweiten Zertifikats an. Dies ist für die Zertifikatsrotation erforderlich.
Aus Sicherheitsgründen muss das Signaturzertifikat über einen öffentlichen 2048-Bit-Schlüssel verfügen. Stellen Sie sicher, dass das Zertifikat gültig und nicht abgelaufen ist, und dass Identity Server Zugriff auf den privaten Schlüssel hat.
SigningCredentialSettings
vornehmen müssen, um sicherzustellen, dass Sie immer ein Zertifikat innerhalb seiner Gültigkeitsdauer verwenden, finden Sie unter Zertifikatsrotation.
Beispiel für Pfadeinstellungen für den Zertifikatspeicher
Hier ist eine klassische Konfiguration zum Suchen eines Zertifikats im Zertifikatspeicher:
"SigningCredentialSettings": {
"StoreLocation": {
"Name": "30f3c11e676fc8eb1f9dd4e330f3ce668d796796",
"Location": "LocalMachine",
"NameType": "Thumbprint"
}
"SigningCredentialSettings": {
"StoreLocation": {
"Name": "30f3c11e676fc8eb1f9dd4e330f3ce668d796796",
"Location": "LocalMachine",
"NameType": "Thumbprint"
}
Name
einen Fingerabdruckwert dar.
Location
und NameType
zu verwenden.
Beispiel für Azure Key Vault-Pfadeinstellungen
"SigningCredentialSettings": {
"AzureKeyVaultLocation": {
"KeyName": "key_name_534553553"
}
"SigningCredentialSettings": {
"AzureKeyVaultLocation": {
"KeyName": "key_name_534553553"
}
KeyName
den Schlüssel dar, nach dem in Azure Key Vault gesucht werden soll.
-
RestrictBasicAuthentication
: Ermöglicht die Steuerung, ob sich Benutzer mit grundlegenden Authentifizierungsanmeldeinformationen bei einer Orchestrator-Instanz anmelden können. Diese Einstellung wird nicht standardmäßig in der Dateiappsettings.Production.json
angezeigt. Die folgenden Werte sind verfügbar:true
: Benutzer können sich nicht mit Standard-Authentifizierungsanmeldeinformationen anmelden.false
: Benutzer können sich mit Standard-Authentifizierungsanmeldeinformationen anmelden. Dies ist der Standardwert.
-
EnableBasicAuthenticationForHostTenant
: Ermöglicht die Steuerung, ob sich ein Hostadministrator mit Standard-Authentifizierungsanmeldeinformationen beim Hostmandanten einer Orchestrator-Instanz anmelden kann. Diese Einstellung wird nicht standardmäßig in der Dateiappsettings.Production.json
angezeigt. Die folgenden Werte sind verfügbar:true
- Der Hostadministrator kann sich mit Standard-Authentifizierungsanmeldeinformationen anmelden. Dies ist der Standardwert.false
- Der Hostadministrator kann sich nicht mit Standard-Authentifizierungsanmeldeinformationen anmelden.
RestrictBasicAuthentication
-Parameter, d. h. wenn Sie EnableBasicAuthenticationForHostTenant
auf true
und RestrictBasicAuthentication
auf true
setzen, können Sie sich nur mit Standard-Authentifizierungsanmeldeinformationen auf Host-Ebene anmelden.