Verbindungen: Cloud Connector-Verbindung auf SAP BTP (Connect 2024)
Diese Seite beschreibt, wie eine Verbindung zu einem On-Premise-System mit dem SAP Cloud Connector konfiguriert wird, wenn Conigma Connect in einer SAP BTP Cloud Foundry-Umgebung gehostet wird. Die Grundidee ist, dass HTTP-Requests an eine virtuelle URL, die innerhalb des SAP Cloud Connectors ausgesetzt ist, an einen Proxy des SAP BTP Connectivity Service senden. Im folgenden Beispiel wird OAuth für die Proxy-Authentifizierung und die Basis-Authentifizierung für das On-Premise-System verwendet.
On-Premise-System in SAP Cloud Connector konfigurieren
Sie können jedes SAP- oder Non-SAP-System im SAP Cloud Connector freigeben, wenn das System eine API bietet, auf die mit HTTP-Requests zugegriffen werden kann. Als Beispiel wird ein On-Premise Jira System verwendet, auf das über den SAP Cloud Connector zugegriffen werden soll. Als virtueller Host wurde die URL http://jira.galileo-group.local:8080 definiert. Der Cloud Connector ist dabei mit einem SAP BTP-Subaccount verbunden, auf dem eine Instanz von Conigma Connect läuft.
Die zulässigen Ressourcen des freigegebenen Systems können auf den Basispfad der zugehörigen REST-API beschränkt werden.
Die eingesetzte Conigma Connect Anwendung an den Connectivity Service binden
Um eine Verbindung zu Systemen herzustellen, die von SAP Cloud Connector bereitgestellt werden, muss der Connectivity Service in SAP BTP mit der Conigma Connect Anwendung verbunden werden.
Um zu überprüfen, ob der Connectivity Service an die Conigma Connect Anwendung gebunden ist, navigieren Sie zur Anwendungsübersicht und klicken Sie in der linken Navigationsleiste auf den Eintrag "Environment Variables".
In den Umgebungsvariablen sollten die folgenden Eigenschaften in einem Abschnitt mit der Bezeichnung "connectivity" gefunden werden können:
clientid: Client-ID für die OAuth-Authentifizierung.
clientsecret: Client-Secret für die OAuth-Authentifizierung.
onpremise_proxy_host: Proxy-Host für die Verbindung.
onpremise_proxy_port: Proxy-Port für die Verbindung.
url: Teil der URL zum Abrufen eines OAuth-Tokens.
Die oben genannten Eigenschaftswerte sind erforderlich, wenn die Verbindung in Conigma Connect eingerichtet wird.
Conigma Connect Service Definition
In Conigma Connect wird eine Service-Definition benötigt, die beschreibt, wie eine Verbindung zu einem System hergestellt werden kann und welche Informationen benötigt werden. Diese Definitionen werden in der Regel von der Galileo Group bereitgestellt, können aber auch vom Kunden angepasst werden. Die folgende Definition beschreibt, wie eine Verbindung zu Jira über den SAP Cloud Connector hergestellt werden kann.
Die obige Service-Definition beschreibt, dass eine Basis-Authentifizierung für das Jira-Backend-System und OAuth für die Proxy-Authentifizierung verwendet wird. Der HttpOAuthHandler sendet das OAuth-Token normalerweise mit dem Header "Authorization", aber mit dem Parameter "headerName" können wir ihn in "Proxy-Authorization" ändern, was ein spezieller Header für die Authentifizierung am Proxy ist.
Da der Cloud Connector mit einer Standort-ID identifiziert wird, fügen wir den zusätzlichen Header "SAP-Connectivity-SCC-Location_ID" mit dem HttpRequestUpdateHandler hinzu, der den Wert für unsere Standort-ID enthält.
Definition des OAuth-Autorisierungsanbieters
Da wir uns am Proxy des Connectivity Service über OAuth authentifizieren müssen, muss in Conigma Connect ein Provider angelegt werden, der definiert, wie ein Access Token angefordert werden kann.
Die Dokumentation des zu verwendenden Autorisierungsanbieters kann hier gefunden werden: Consuming the Destination Service | SAP Help Portal
Die folgenden Werte müssen im Authorization Provider eingestellt werden:
Typ = Immer OAuth 2.0.
Supported authentication flows = Client Credentials
Authorization Endpoint URI = Der Wert für die Umgebungsvariable "url" des Connectivity Service + "/oath/token".
Token Endpoint URL = Identisch mit der Authorization Endpoint URI.
OAuth Credentials
Zusätzlich zum OAuth-Autorisierungsanbieters, müssen auch OAuth Anmeldedaten angegeben werden, die die Client-ID und das Client-Secret aus den entsprechenden Umgebungsvariablen des SAP BTP Connectivity Service enthalten.
Die folgenden Parameter müssen für die Anmeldeinformationen angegeben werden:
Autorisierungsanbieter = Der Anbieter, der im vorherigen Abschnitt erstellt wurde.
Client ID = Der Wert für die Umgebungsvariable "clientid" des Connectivity Service.
Client Secret = Der Wert für die Umgebungsvariable "clientsecret" des Connectivity Service.
Authentification Flow = Client Credentials.
Beim Speichern der Anmeldeinformationen wird ein Popup-Fenster angezeigt, in dem Sie gefragt werden, ob ein neues Anfrage-Token angefordert werden soll. Bitte bestätigen Sie die Anforderung mit der Schaltfläche Ja.
Verbindung an das On-Premise-System über Cloud Connector
Nachdem alle Vorarbeiten erledigt wurden, kann nun die eigentliche Verbindung zum On-Premise-System erstellt werden.
Die Verbindung zeigt alle Parameter an, die in der entsprechenden Service Definition definiert sind. In unserem Jira-Beispiel werden die folgenden Parameter angezeigt.
baseUri = Die virtuelle URL, die im Cloud Connector angezeigt wird.
securityStoreItemNameProxy = Der Name der Anmeldeinformationen, die für den SAP BTP-Connectivity Service erstellt wurden.
jiraUser = Jira-Benutzer-ID für die Authentifizierung.
jiraPassword = Passwort der Benutzer-ID, die für die Authentifizierung verwendet wird.
proxyUri = Proxy-Host und Proxy-Port, getrennt durch das Zeichen ":" des Connectivity Service. Die Namen der Umgebungsvariablen lauten "onpremise_proxy_host" und "onpremise_proxy_host".
Mit der Schaltfläche "Validieren" können Sie prüfen, ob die Konfiguration mit der entsprechenden Service Definition übereinstimmt. Um zu prüfen, ob die Verbindung zum On-Premise-System hergestellt werden kann, kann die Schaltfläche "Verbindung testen" verwendet werden.
Bitte beachten Sie, dass der Verbindungstest nur durchgeführt werden kann, wenn die Eigenschaft "httpPerformanceTestMethodName" in der entsprechenden Service Definition definiert wurde. Für Jira wird die API-Methode "getServerInfo" verwendet.