Backend Connections

In den Backend Connections verwalten Sie die Verbindungen des BPC zu externen Systemen und Diensten. Diese Verbindungen ermöglichen den Datenaustausch, die Authentifizierung gegenüber Drittanbietern oder den Zugriff auf Cloud-Speicher. Im Folgenden werden die verschiedenen Konfigurationsmöglichkeiten der Backend Connections vorgestellt und beschrieben.

Voraussetzungen

Um Backend Connections verwalten zu können, müssen folgende Voraussetzungen erfüllt sein:

  • Sie verfügen über die notwendigen Administrationsrechte im BPC.

  • Das entsprechende Modul für den gewünschten Verbindungstyp ist installiert (z. B. File-Storage-Module für Cloud-Speicher).

Backend Connection anlegen

In diesem Abschnitt wird beschrieben, wie Sie eine neue Backend Connection erstellen und konfigurieren.

  1. Navigieren Sie zum Reiter Backend Connections.

  2. Klicken Sie auf das Plus-Icon, um eine neue Komponente hinzuzufügen.

  3. Wählen Sie im Eingabefeld Typ die gewünschte Art der Backend Connection aus.

    Je nach Auswahl des Typs werden die spezifischen Konfigurationsoptionen angezeigt.

create backend connection 1
  1. Füllen Sie die angezeigten Felder gemäß der Konfiguration Ihres externen Systems aus.

  2. Klicken Sie auf Speichern (), um die neue Backend Connection zu erstellen.

    Die neue Backend Connection wurde erfolgreich angelegt und erscheint in der Komponenten-Übersicht.

UI-Beschreibung der Toolbar

Zum erstmaligen und späteren Bearbeiten der einzelnen Felder und Einstellungen stehen in der Toolbar der Modulkomponenten verschiedene Hilfe-Tools zur Verfügung.

Toolbar für Modulkomponenten
  • Hilfetexte
    Blendet Hilfstexte zu den einzelnen Feldern ein bzw. aus.

  • Validieren
    Validiert den Code der betreffenden Felder. Es zeigt die Anzahl eventueller Fehler und eine entsprechende Fehlermeldung an.

  • Nicht Default
    Beim Aktivieren dieser Funktion werden ausschließlich die Einstellungen angezeigt, die vom Standardwert 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 auf den Default-Zustand zurückgesetzt.

  • Speichern
    Speichert die Backend Connection mit allen Eintragungen und Einstellungen. Diese Komponente erscheint anschließend in der Komponenten-Übersicht unterhalb der entsprechenden Gruppe.

Verbindungstypen

Es gibt verschiedene Verbindungstypen für Backend Connections, die jeweils unterschiedliche Anforderungen und Anwendungsfälle abdecken.

HTTP Proxy

Dieser Typ ermöglicht die Einrichtung eines internen Proxys für HTTP-Verbindungen durch das BPC hindurch. Dadurch kann beispielsweise über die External Content Modulkomponente auf einen Server zugegriffen werden, der eine Anmeldung per BasicAuth erfordert oder ausschließlich via Proxy erreichbar ist.

Modul

Allgemeine Moduleinstellungen

Name (ID) Beschreibung

Icon
(module_iconCls)

Individuell auswählbares Icon, das vor dem Titel angezeigt wird.
Falls kein Symbol angezeigt werden soll, kann z.B. "none" eingetragen werden. Bei leerem Feld wird ein Standard-Icon gewählt.

Ziel

Einstellungen zum Zielsystems

Name (ID) Beschreibung

URL
(connectionBaseUrl)

Dieser Parameter definiert die Basis-URL zum Zielsystem. Wird beim Aufruf der HTTP-Proxy API ein ergänzender Pfad angegeben, so wird der Pfad der URL hinzugefügt.

Proxy

Einstellungen zum Proxy

Name (ID) Beschreibung

Hostname
(proxyServer)

Der Hostname des zu verwendenden Netzwerk-Proxy-Servers.

Port
(proxyServerPort)

Der Port unter dem der Proxy-Server erreichbar ist.

Verbindung

Einstellungen zur Herstellung einer Verbindung zu einer Backend Connection

Name (ID) Beschreibung

Benutzername
(connectionUsername)

Username für Authentifizierung der Connection

Passwort
(connectionPassword)

Password für Authentifizierung der Connection (BasicAuth am Zielserver)

Timeout
(connectionTimeout)

Timeout der Verbindung in Sekunden.

HTTP-Header-Filter
(httpHeaderFilter)

Liste der HTTP-Header Namen, die aus Requests Richtung Zielsystem gefiltert werden sollen. Aus Sicherheitsgründen wird der BPC-API-Key-Header ("X-APIKey") stets gefiltert.

HTTP-Header
(additionalHttpHeaders)

Zusätzliche HTTP-Header, die beim Aufruf des Zielsystems mitgesendet werden. In den Werten ist es möglich Platzhalter wie z.Bsp "${license.KeyID}" oder "${config.de.virtimo.bpc.core.karaf.uuid}" zu nutzen.

Sicherheit

Modulspezifische Einstellungen

Name (ID) Beschreibung

OIDC ID-Token hinzufügen
(injectSessionJwt)

Es wird der OIDC ID-Token im Header ("X-Bpc-Session") gesetzt, der die Nutzerinformationen enthält.

BPC Session-ID mitsenden
(sendSessionId)

Wenn aktiv, wird eine Session Id (im Header "X-Bpc-SessionId") mitgeschickt, mit der man den Nutzer und dessen Rollen und Rechte abfragen kann, ohne jedoch API-Calls in seiner Identität durchführen zu können.

TLS-Zertifikatsprüfung deaktivieren
(allowUntrustedConnections)

Beim Aufbau der TLS-Verbindung wird das Zertifikat des Servers nicht geprüft.

CSRF-Token Prüfung
(checkCsrfToken)

Ermöglicht das De-/Aktivieren des CSRF-Token-Checks.

Der BPC-Session-Cookie wird bei jedem weitergeleiteten Aufruf über einen HTTP-Proxy gefiltert. Dies verhindert, dass ein Empfänger das BPC im Kontext des Benutzers verwenden kann. Sollte es notwendig sein, auf Empfängerseite die Identität und Validität des Benutzers zu prüfen, ist dies über die Optionen sendSessionId bzw. injectUserSessionJWT möglich.

Im Fall von sendSessionId wird die Session-ID des Benutzers über den Header X-Bpc-SessionId 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. Wenn zusätzliche Berechtigungen durch Rollen, Rechte und Organisationen geprüft werden müssen, muss der OIDC-Provider so konfiguriert sein, dass diese im ID-Token enthalten sind.

Identity Provider

Dieser Verbindungstyp ermöglicht die Konfiguration des verwendeten Identity Providers. Die Konfigurationsparameter für die verschiedenen IdP-Typen sind unter Konfiguration der Identity Provider beschrieben.

Dies ist die Liste aller verfügbaren Optionen ohne Differenzierung der einzelnen Typen:

Modul

Allgemeine Moduleinstellungen

Name (ID) Beschreibung

Icon
(module_iconCls)

Individuell auswählbares Icon, das vor dem Titel angezeigt wird.
Falls kein Symbol angezeigt werden soll, kann z.B. "none" eingetragen werden. Bei leerem Feld wird ein Standard-Icon gewählt.

Konfiguration

Modulspezifische Einstellungen

Name (ID) Beschreibung

Typ
(identityProvider)

Identity Provider Typ
Mögliche Werte: Datenbank (JDBC), Karaf, Keycloak, OpenID Connect (OIDC)

Zusätzliche Berechtigungssteuerung
(identityProvider_mappings)

Über diese Einstellung können einzelnen Organisationen, Rollen oder Rechten weitere Organisationen, Rollen oder Rechten zugewiesen werden. Damit können die Informationen, die vom Identity Provider kommen weiter angereichert werden.

Health-Check-Endpunkt
(identityProvider_healthEndpoint)

Optionaler Health-Check-Endpunkt des Identity Providers. Wenn dieser gesetzt ist, wird der Status über die BPC Status-API bereitgestellt.

Maximale Sessiondauer
(identityProvider_sessionExpirationMinutes)

Die maximale Dauer (in Minuten), die ein Benutzer angemeldet bleibt. Der Anwender wird nach dieser Zeit automatisch abgemeldet.
Ist die Dauer länger als die vom Identity Provider, so wird der Benutzer durch die Sessionprüfung abgemeldet, wenn die Session am Identity Provider beendet wird.

Passwort-Regel
(identityProvider_pwdValidationRegExp)

Regular Expression zur Validierung von Passwörtern. Zum Beispiel muss bei .{8,} das Passwort mindestens 8 Zeichen lang sein.
Diese Regel wird nicht bei OIDC basierten Identity Providern angewendet.

Datenbank(JDBC) Konfiguration

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.

Name (ID) Beschreibung

Datenbankverbindung
(identityProvider_jdbc_dataSource)

Datenbankverbindung (Backend Connection vom Typ Data Source) die für den Identity Provider genutzt wird.

OIDC Konfiguration

Einstellungen zur Open Id Connect Schnittstelle

Name (ID) Beschreibung

Client ID
(identityProvider_oidc_clientId)

ID des im OIDC Provider konfigurierten Clients, über den das BPC auf den Identity Provider zugreift.

Client Secret
(identityProvider_oidc_clientSecret)

Secret des im OIDC Provider konfigurierten Clients, über den das BPC auf den Identity Provider zugreift.

Scopes
(identityProvider_oidc_scope)

OIDC Scopes die bei der Authentisierung beim OIDC Provider angefragt werden. Werden Scopes angefragt, die es nicht gibt oder für die der Client nicht berechtigt ist, kann es zu Fehlern bei der Authentifizierung kommen.

Claim-Namen für Rollen
(identityProvider_oidc_claimNameRoles)

Komma separierte Liste aller Claim-Namen, anhand derer aus dem OIDC Token die Rollen des Benutzers extrahiert werden.

Claim-Namen für Organisationen
(identityProvider_oidc_claimNameOrganisations)

Komma separierte Liste aller Claim-Namen, anhand derer aus dem OIDC Token die Organisationen des Benutzers extrahiert werden.

Claim-Namen für Rechte
(identityProvider_oidc_claimNameRights)

Komma separierte Liste aller Claim-Namen, anhand derer aus dem OIDC Token die Rechte des Benutzers extrahiert werden.

Metadata URL
(identityProvider_oidc_metadataDiscoveryUri)

Die URL, unter der die OpenID-Connect-Metadaten abgerufen werden können.
Endet typischerweise auf /.well-known/openid-configuration.
Wird verwendet, um Endpunkte wie Autorisierung, Token und Benutzerinformationen automatisch zu ermitteln.

Redirect URL
(identityProvider_oidc_postAuthenticationRedirectUri)

An diese Adresse wird der Benutzer weitergeleitet, nachdem ein Login ausgeführt wurde.
Diese URL muss im Identity Provider erlaubt sein und sollte auf das BPC zeigen.

Logout Redirect URL
(identityProvider_oidc_postLogoutRedirectUri)

An diese Adresse wird der Benutzer weitergeleitet, nachdem ein Logout ausgeführt wurde.
Diese URL muss im Identity Provider erlaubt sein.

PKCE-Methode
(identityProvider_oidc_pkceMethod)

Die PKCE-Methode (Proof Key for Code Exchange) des OIDC Providers. Falls der Identity Provider kein PKCE konfiguriert hat, ist "none" zu wählen. Es wird "S256" empfohlen.

API-Authentifizierung durch Access-Tokens
(identityProvider_oidc_allowAccessTokenAuthentication)

Ermöglicht die Authentifizierung an der API über Access-Token, die vom OIDC-Provider ausgestellt wurden.

Prüfe Access-Token am Introspection-Endpunkt
(identityProvider_oidc_verifyAccessTokenAtIDP)

Falls aktiviert, wird der Access-Token am Introspection-Endpunkt des OIDC-Provider geprüft. Damit kann geprüft werden, ob die Session beim OIDC-Provider beendet wurde. Andernfalls wird nur die Signatur des Tokens validiert, was in den meisten Fällen bei kurzer Gültigkeit eines Tokens ausreichend ist.

Frontend

Einstellungen zum Anpassen des BPC Frontends

Name (ID) Beschreibung

Passwort ändern
(identityProvider_ussChangePasswordEnabled)

Ermöglicht das Ändern des Passwortes. Muss vom jeweiligen Identity Provider unterstützt werden.

Organisation wechseln
(identityProvider_ussChangeOrganisationEnabled)

Ermöglicht das Wechseln der aktiven Organisation.

Zusätzliche Information

Einstellungen zum Additional Info Endpunkt

Name (ID) Beschreibung

Session zusätzlich anreichern
(identityProvider.additionalInfoEnabled)

Ist diese Option aktiviert, so werden über die hinterlegte URL zusätzliche Informationen bei der Anmeldung eines Benutzers abgerufen und in der Session hinterlegt.

URL
(identityProvider.additionalInfoUrl)

Über diese URL werden die zusätzlichen Daten für die Session abgerufen werden.

Benutzername
(identityProvider.additionalInfoUrlBasicAuthUsername)

Benutzername, falls der Additional-Info-Endpunkt per Basic Auth abgesichert ist

Passwort
(identityProvider.additionalInfoUrlBasicAuthPassword)

Das Passwort, wenn der Additional-Info-Endpunkt per Basic Auth gesichert ist.

Prefix
(identityProvider.additionalInfoEntriesPrefix)

Prefix für die Daten des Additional-Info-Endpunktes.

Deployment System

Dieser Verbindungstyp ermöglicht die Konfiguration der BPC-Systeme, die beim Deployment als Quelle und Ziel angesprochen werden sollen.

Modul

Allgemeine Moduleinstellungen

Name (ID) Beschreibung

Icon
(module_iconCls)

Individuell auswählbares Icon, das vor dem Titel angezeigt wird.
Falls kein Symbol angezeigt werden soll, kann z.B. "none" eingetragen werden. Bei leerem Feld wird ein Standard-Icon gewählt.

Ziel

Einstellungen zum Zielsystems

Name (ID) Beschreibung

Deployment-System-URL
(url)

Komplette URL zum Zielsystem.
Beispiel: https://example.com:8181/bpc/

TLS-Zertifikatsprüfung deaktivieren
(allowUntrustedConnections)

Beim Aufbau der TLS-Verbindung wird das Zertifikat des Servers nicht geprüft.

API-Key
(api_key)

Der API-Key, der zur Authentifizierung mit dem Deployment-System verwendet wird. Dieser API-Key muss auf dem Zielsystem konfiguriert sein.

Konfiguration

Modulspezifische Einstellungen

Name (ID) Beschreibung

Sortierpriorität
(sortPriority)

Anpassung der Sortierreihenfolge (Auswahlbox im Deployment Dialog).

Data Source

Dieser Verbindungstyp wird für die Konfiguration von Datenbankverbindungen verwendet. Für diese Verbindungen muss zuvor der passende Datenbanktreiber installiert werden.

Modul

Allgemeine Moduleinstellungen

Name (ID) Beschreibung

Icon
(module_iconCls)

Individuell auswählbares Icon, das vor dem Titel angezeigt wird.
Falls kein Symbol angezeigt werden soll, kann z.B. "none" eingetragen werden. Bei leerem Feld wird ein Standard-Icon gewählt.

Datenquelle

Einstellungen zur Datenquelle

Name (ID) Beschreibung

Datenbank-Treiber
(driverName)

Der Name des Treibers, der für die Datenbank verwendet wird, z. B. oracle, mysql, mariadb.

JDBC-URL
(url)

JDBC Verbindungs-URL zur Datenbank.

Benutzername
(user)

Name des Datenbankbenutzers

Passwort
(password)

Passwort des Datenbankbenutzers

Zusätzliche Konfiguration
(configuration)

Zusätzliche Konfigurationsoptionen, die nicht durch die anderen Parameter abgedeckt sind.

Für die Verbindung zur Datenbank wird in den meisten Fällen nur eine lesende Verbindung benötigt. Um Sicherheitsproblemen vorzubeugen, empfiehlt es sich, gemäß dem Principle of Least Privilege einen Datenbankbenutzer zu verwenden, der ausschließlich Leserechte besitzt.

DataSource-Konfiguration

Im Konfigurationsparameter Zusätzliche Konfiguration wird primär der verwendete Pool mit den Datenverbindungen konfiguriert. Eine Datenquelle (Data Source) hält einen Pool mit n Verbindungen zur Datenbank vor. Die einzelnen Replikationsjobs beziehen jeweils eine solche Verbindung und geben sie nach Abschluss der Arbeit wieder an den Pool zurück.

Die Pool-Größe sollte sinnvoll gewählt werden. Ein zu hoher Wert (> 8 oder > 16) ist oft nicht vorteilhaft und kann zu Fehlern führen, wenn die Datenbank (z. B. Oracle) nicht so viele gleichzeitige Verbindungen zulässt. Fragen Sie im Zweifelsfall Ihren Datenbank-Administrator nach der optimalen Anzahl. Weitere Pool-Einstellungen finden Sie unter PAX-JDBC Documentation.

Einstellung Typ Beispiel Beschreibung

pool

String

dbcp2

Der zu verwendende Pool.

xa

String

true

Legt die Ressource als XA-Ressource fest. Dies ermöglicht verteilte Transaktionen (JDBC XA). Der Wert true wird hier empfohlen.

pool.minIdle

String

2

Die minimale Anzahl an Verbindungen, die ungenutzt im Pool verbleiben können.

pool.maxIdle

String

5

Die maximale Anzahl an Verbindungen, die ungenutzt im Pool verbleiben können.

pool.maxTotal

String

10

Die maximale Anzahl der Datenbank-Verbindungen im Pool.

Wenn bei Oracle-Datenbanken wiederholt Closed Connection-Fehler auftreten, sollten zusätzlich die folgenden Einstellungen konfiguriert werden.

Einstellung Typ Beispiel Beschreibung

pool.testOnBorrow

String

true

Validiert die Datenbankverbindung bei der Entnahme aus dem Pool.
Standardwert: false

pool.testOnReturn

String

true

Validiert die Datenbankverbindung beim Zurücklegen in den Pool.
Standardwert: false

factory.validationQuery

String

select 1 from dual

SQL-Abfrage, die genau einen Datensatz zurückgibt. Diese wird zum Testen der Verbindung verwendet.
Standardwert: -

factory.validationQueryTimeout

String

15

Timeout in Sekunden für die Ausführung der festgelegten Validierungsabfrage.
Standardwert: kein Timeout

Beispielkonfiguration (JSON)
{
    "pool.testOnBorrow": "true",
    "pool.testOnReturn": "true",
    "factory.validationQuery": "select 1 from dual",
    "factory.validationQueryTimeout": "15"
}

Weitere Informationen zu den Parametern finden Sie in der Dokumentation zu den BasicDataSource Configuration Parameters.

Der Parameter pool.testOnBorrow ist abweichend von der Apache-Dokumentation standardmäßig deaktiviert.

File Storage

Dieser Verbindungstyp dient der Konfiguration von Verbindungen zu Cloud-Storage-Anbietern. Voraussetzung hierfür ist die vorherige Installation der entsprechenden File-Storage-Module für die gewünschten Cloud-Dienste.

Unterstützt werden AWS S3 (inklusive API-kompatibler Dienste wie MinIO), Azure Blob Storage und Google Cloud Storage. Der Typ des Cloud-Storage-Anbieters wird über die Einstellung File-Storage Typ festgelegt. Zur Auswahl stehen AWS S3, Azure Blob Storage und Google Cloud Storage.

Je nach Anbieter müssen unterschiedliche Einstellungen konfiguriert werden. Stellen Sie sicher, dass die verwendeten Zugangsdaten (Access-Keys, Account-Keys oder Service-Accounts) über die erforderlichen Lese-, Schreib- und Löschrechte verfügen.

Das Ändern oder Löschen von File-Storage-Backend-Connections kann laufende Downloads oder Uploads abbrechen. Dies kann beispielsweise beim Austausch von Zugangsschlüsseln im laufenden Betrieb auftreten.

Modul

Allgemeine Moduleinstellungen

Name (ID) Beschreibung

Icon
(module_iconCls)

Individuell auswählbares Icon, das vor dem Titel angezeigt wird.
Falls kein Symbol angezeigt werden soll, kann z.B. "none" eingetragen werden. Bei leerem Feld wird ein Standard-Icon gewählt.

Konfiguration

Modulspezifische Einstellungen

Name (ID) Beschreibung

File-Storage Typ
(fileStorageType)

Der Typ des File Storages. Aktuell werden AWS S3 (inkl. API-kompatible Services), Azure Blob Storage (inkl. API-kompatible Services) und Google Cloud Storage unterstützt.

Downloads via BPC
(fileStorageDownloadThroughBpc)

Leitet Dateien über das BPC. Aktivieren Sie diese Option, wenn direkte Links zum Cloud-Speicher durch Firewalls blockiert werden.

AWS S3

Verbindungseinstellungen zu dem S3-Dienst.

Name (ID) Beschreibung

Endpunkt-URL
(fileStorageAwsEndpointUrl)

Die vollständige URL des S3-kompatiblen Storage-Endpunkts. Kann bei AWS S3 Verbindungen leer gelassen werden.

Region
(fileStorageAwsCloudRegion)

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
(fileStorageAwsCredentialsKey)

Der Access-Key zur Authentifizierung beim S3-Dienst. Entspricht der Benutzerkennung für den Zugriff.

Secret-Key
(fileStorageAwsCredentialsSecret)

Der geheime Schlüssel (Secret-Key) zum Access-Key. Wird zur sicheren Authentifizierung benötigt.

Azure Blob Storage

Verbindungseinstellungen zu dem Azure Blob Storage-Dienst.

Name (ID) Beschreibung

Endpunkt-URL
(fileStorageAzureEndpointUrl)

Die vollständige URL des Azure-Services.

Account-Name
(fileStorageAzureAccountName)

Der Azure Account-Name.

Account-Key
(fileStorageAzureAccountKey)

Der Account-Key um auf das Azure Blob Storage zuzugreifen.

Google Cloud Storage

Verbindungseinstellungen zu dem Google Cloud Storage-Dienst.

Name (ID) Beschreibung

Project-ID
(fileStorageGoogleCloudProjectId)

Die Project-ID des Google Cloud Accounts.

Service-Account
(fileStorageGoogleCloudServiceAccountJson)

Der Service-Account-JSON-Inhalt. Der Service-Account benötigt Lese-, Schreib- und Löschrechte auf dem Google-Cloud-Storage.


Keywords: