Backend Connections
Im Folgenden werden die verschiedenen Konfigurationsmöglichkeiten der Backend Connections vorgestellt und beschrieben.
Anlegen einer Backend Connection
Im Reiter Backend Connections fügen Sie eine neue Komponente hinzu.
Die Art der Backend Connection wird durch das Eingabefeld "Typ" ausgewählt. Je nach Auswahl des Typs werden die spezifischen Konfigurationsoptionen angezeigt.
Zum erstmaligen und späteren Bearbeiten der einzelnen Felder und Einstellungen stehen Hilfe-Tools zur Verfügung.
-
Blendet Hilfstexte ein bzw. aus. -
Validiert den Code der betreffenden Felder und zeigt die Anzahl eventueller Fehler und eine entsprechende Fehlermeldung an. -
Nicht Default
Beim Aktivieren dieser Funktion werden ausschließlich die Einstellungen angezeigt, die vom Default-Wert abweichen. -
Standardwerte
Setzt alle Felder und Einstellungen auf die Default-Werte zurück. -
Änderungen verwerfen
Setzt alle Werte auf den letzten Speicherstand zurück.
Beim Anlegen einer neuen Backend Connection werden die Werte also auf den Default-Zustand zurückgesetzt. -
Speichern
Speichert die neue Backend Connection mit allen eventuellen Eintragungen und Einstellungen. Diese Komponente taucht dann in der Komponenten-Übersicht unterhalb der entsprechenden Gruppe auf.
Allgemeine Modulkonfiguration
Dies sind die Konfigurationsparameter, die bei allen Backend Connections vorhanden sind.
| Setting (Key) | Gruppe | Typ | Beschreibung |
|---|---|---|---|
ModuleHeader |
Module |
bool |
Ermöglicht das De-/Aktivieren des ModuleHeaders |
Module_Description |
Module |
text |
Ermöglicht die Hinterlegung einer kurzen Beschreibung des Moduls. Kann z.B. im ModuleHeader angezeigt werden. |
Module_Icon |
Module |
text |
Angezeigtes FontAwesome-Icon der Backend Connection Instanz. |
Module_Name |
Module |
text |
Name des Moduls |
Verbindungstypen
Es gibt verschiedene Verbindungstypen, die im Folgenden beschrieben werden.
http_proxy
Dies ermöglicht die Einrichtung eines internen Proxies für HTTP Verbindungen durch das BPC hindurch. Dies ermöglicht beispielsweise, per External Content Modulkomponente auf einen Server zuzugreifen, der eine Anmeldung per BasicAuth erfordert oder nicht direkt, sondern ausschließlich via Proxy erreichbar ist.
| Setting (Key) | Gruppe | Typ | Beschreibung |
|---|---|---|---|
Connection_Password |
Module |
text |
Password für Authentifizierung der Connection (BasicAuth am Zielserver) |
Connection_Username |
Connection |
text |
Username für Authentifizierung der Connection |
Connection_Timeout |
Connection |
number |
Maximales Timeout der Connection. |
Security |
bool |
Ermöglicht das De-/Aktivieren des CSRF Token Checks. |
|
Connection_SendSessionId |
Security |
bool |
Wenn aktiv, wird eine Session Id (im Header |
Connection_InjectUserSessionJWT |
Security |
bool |
Es wird der OIDC ID-Token im Header ( |
Connection_UntrustedCertificates |
Security |
text |
Es wird allen Zertifikaten vertraut sowie der Common Name (CN) Check übersprungen. |
Http_Header_Filter |
Proxy |
json |
Liste der Header Namen, die herausgefiltert werden sollen.
Aus Sicherheitsgründen wird der BPC-API-Key-Header ( Default:
|
ProxyServer_Port |
Proxy |
number |
Der Port unter dem der Proxy-Server erreichbar ist. |
ProxyServer_URL |
Proxy |
text |
Die Adresse des zu verwendenden Proxy-Servers. Bleibt leer, wenn eine direkte Verbindung zum Zielserver möglich ist. |
Target_BaseURL |
Target |
text |
Dieser Parameter definiert die Basis-URL zum Zielsystem und wird bei jeder Verwendung vorangestellt. |
Der BPC-Session-Cookie wird bei jedem weitergeleiteten Aufruf über einen HTTP-Proxy gefiltert, damit ein Empfänger nicht im Kontext des Benutzers das BPC verwenden kann.
Sollte es notwendig sein, auf Empfängerseite die Identität und Validität des Benutzers zu prüfen, so ist das über die Optionen sendSessionId bzw. injectUserSessionJWT möglich.
Im Fall von sendSessionId wird über den Header X-Bpc-SessionId die Session-ID des Benutzers mitgeschickt.
Die Session kann dann über den GET-Endpunkt /cxf/bpc-core/authentication/session/{sessionid} geprüft werden (Siehe Authentication API).
Im Fall von injectUserSessionJWT wird im Header X-Bpc-Session der ID-Token des Open-ID-Connect-Providers mitgeschickt.
Die Signatur muss mit dem öffentlichen Schlüssel des OIDC-Providers validiert werden.
Muss man zusätzlich Berechtigungen durch Rollen, Rechte und Organisationen prüfen, ist es notwendig, den OIDC-Provider so zu konfigurieren, dass diese im ID-Token enthalten sind.
identity_provider
Dieser Verbindungstyp ermöglicht die Konfiguration des verwendeten Identity Providers.
Die genauen Konfigurationsparamter sind unter Konfiguration der Identity Provider beschrieben.
deployment_system
Dieser Verbindungstyp ermöglicht die Konfiguration der BPC-Systeme, die beim Deployment als Quelle und Ziel angesprochen werden sollen.
| Setting (Key) | Gruppe | Typ | Beschreibung |
|---|---|---|---|
DeploymentSystem_SortPriority |
Config |
number |
Anpassung der Sortierreihenfolge (Auswahlbox im Deployment Dialog). Default: 1000 |
DeploymentSystem_URL+
( |
Target |
text |
Basis URL zum Zielsystem und wird bei jeder Verwendung vorangestellt. |
DeploymentSystem_AllowUntrustedConnections |
Connection |
bool |
Unsichere Verbindungen zulassen. |
DeploymentSystem_ApiKey |
Connection |
text |
API Key des Zielsystems |
data_source
Dieser Verbindungstyp wird für die Konfiguration von Datenbankverbindungen verwendet. Für diese Verbindungen ist es nötig, dass zuvor der passende Datenbanktreiber installiert wird.
| Setting (Key) | Gruppe | Typ | Beschreibung |
|---|---|---|---|
DataSource_Configuration |
Datasource |
json |
Zusätzliche Data Source Konfigurationsoptionen, die nicht durch die Allgemeinen (DataSource_User, …) abgedeckt sind. Default:
|
DataSource_DriverName |
Datasource |
text/combobox |
Datenbank-Treiber wie oracle, mysql, mariadb |
DataSource_Password |
Datasource |
text |
Passwort des Datenbankbenutzers |
DataSource_URL |
Datasource |
text |
JDBC Verbindungs-URL zur Datenbank. |
DataSource_User |
Datasource |
text |
Name des Datenbankbenutzers |
|
Für die Verbindung zur Datenbank wird in den meisten Fällen nur eine lesende Verbindung benötigt. Um Sicherheitsproblemen vorzubeugen, empfiehlt es sich nach dem Least Privilege Prinzip einen Datenbankbenutzer zu verwenden, der nur Leserecht hat. |
DataSource_Configuration
Im Konfigurationsparameter "DataSource_Configuration" wird hauptsächlich der verwendete Pool mit den Datenverbindungen konfiguriert. Eine Datenquelle (Data Source) hält einen Pool mit n-Verbindungen zur Datenbank vor. Die einzelnen Replikationsjobs holen sich jeweils eine solche Verbindung und geben sie nach getaner Arbeit wieder an den Pool zurück. Die Größe ist deshalb sinnvoll zu wählen. Diesen Wert zu hoch (>8 oder >16) anzusetzen ist nicht unbedingt von Vorteil bzw. kann sogar zu Fehlern führen, wenn zum Beispiel die Oracle-Datenbank nicht so viele gleichzeitige Verbindungen zulässt (= DB Admin nach der sinnvollen Anzahl fragen). Weitere Pool-Einstellungen sind HIER zu finden.
| Setting | Typ | Beispiel | Beschreibung |
|---|---|---|---|
pool |
String |
dbcp2 |
der zu verwendende Pool |
xa |
String |
true |
als XA Resource festlegen. Aktiviert die Möglichkeit für verteilte Transaktionen (JDBC XA). Es wird hier true als Einstellung empfohlen. |
pool.minIdle |
String |
2 |
The minimum number of connections that can remain idle in the pool, without extra ones being created, or zero to create none. |
pool.maxIdle |
String |
5 |
The maximum number of connections that can remain idle in the pool, without extra ones being released, or negative for no limit. |
pool.maxTotal |
String |
10 |
Max. Anzahl der Datenbank-Verbindungen im Pool |
Kommt es bei Oracle immer wieder zu Closed Connection Fehlern, dann folgende Einstellungen noch mit aufnehmen.
| Setting | Typ | Beispiel | Beschreibung |
|---|---|---|---|
pool.testOnBorrow |
String |
true |
Validierung der DB-Verbindung bei Entnahme aus dem Pool. |
pool.testOnReturn |
String |
true |
Validierung der DB-Verbindung beim Zurücklegen in den Pool. |
factory.validationQuery |
String |
select 1 from dual |
SQL Query die genau einen Treffer zurückgibt.
Dies wird zum Testen der Verbindung genutzt. |
factory.validationQueryTimeout |
String |
15 |
Ausführungs-Timeout in Sekunden für die festgelegte Validation Query. |
{
"pool.testOnBorrow": "true",
"pool.testOnReturn": "true",
"factory.validationQuery": "select 1 from dual",
"factory.validationQueryTimeout": "15"
}
Dokumentation zu den Parametern: BasicDataSource Configuration Parameters
|
|
file_storage
Dieser Verbindungstyp wird für die Konfiguration von AWS-S3 und S3-kompatiblen Dateispeicherverbindungen verwendet.
| Setting (Key) | Gruppe | Typ | Beschreibung |
|---|---|---|---|
Endpunkt-URL |
config |
String |
Die vollständige URL des S3-kompatiblen Storage-Endpunkts. Kann bei AWS S3 Verbindungen leer gelassen werden. |
Region |
config |
String |
Die Region des S3-Dienstes (z.B. us-east-1). Bei S3-kompatiblen Anbietern ggf. leer lassen (default 'us-east-1') oder einen benutzerdefinierten Wert eintragen. |
Access-Key |
config |
String |
Der Access-Key zur Authentifizierung beim S3-Dienst. Entspricht der Benutzerkennung für den Zugriff. |
Secret-Key |
config |
String |
Der geheime Schlüssel (Secret-Key) zum Access-Key. Wird zur sicheren Authentifizierung benötigt. |