Der Pareo Connector ist eine eigenständige Software, die Sie in Ihrem Netz betreiben. Er liest Daten aus Teamcenter und SAP und sendet sie an Pareo. Die Verbindung geht immer vom Connector aus, Pareo baut keine Verbindung in Ihr Netz auf. Mit dieser Seite prüfen Ihre IT und Informationssicherheit den Connector vor der Installation. Die Installation selbst beschreibt Installation des Connectors.
Aufbau
| Ort | Komponente | Aufgabe |
|---|---|---|
| Ihr Netz | Der Connector, ein Container auf einer virtuellen Maschine (VM) | Liest Teamcenter und SAP, legt die Daten in einem Zwischenspeicher auf der Festplatte ab und sendet sie an Pareo |
| Ihr Netz | Teamcenter und SAP | Werden nicht verändert. Die Zugangsdaten bleiben auf der VM. |
| Pareo | ingest.pareo.ai | Nimmt signierte Anfragen entgegen, prüft sie und speichert die Datensätze |
Der Connector baut ausschließlich ausgehende HTTPS-Verbindungen zu einem einzigen Host auf. Eingehende Verbindungen gibt es nicht. Sie brauchen also weder offene Ports noch ein VPN.
Übertragene Daten
| Verlässt Ihr Netz | Verlässt Ihr Netz nie |
|---|---|
|
|
|
|
Der Connector liest nur Felder, die einem Pareo-Feld zugeordnet sind. Die Zuordnung zeigt der Reiter
Feldzuordnung am Connector in Pareo, und dry-run zählt die Werte je Feld, ohne Daten zu senden
(siehe Feldzuordnung prüfen).
Pareo nimmt nur Daten aus den Systemen an, die beim Anlegen des Connectors erlaubt wurden, unabhängig davon, was der Connector sendet. Teamcenter liest der Connector nur über die Services Core und Query. Für jeden Lauf öffnet er eine Sitzung und meldet sich danach immer ab.
Signaturen und Schlüssel
- Beim ersten Start erzeugt der Connector ein eigenes Ed25519-Schlüsselpaar. Der private Schlüssel verlässt die VM nie.
- Jede Anfrage enthält die Connector-Kennung, einen Zeitstempel, einen Einmalwert (Nonce) und eine Signatur über Methode, Pfad, Zeitstempel, Nonce und einen Hash des Inhalts.
- Pareo lehnt Anfragen ab, deren Zeitstempel um mehr als 5 Minuten abweicht, und ebenso jede Nonce, die in den letzten 10 Minuten schon verwendet wurde. Eine abgefangene Anfrage lässt sich deshalb nicht erneut senden (Replay-Schutz).
- Der Schlüssel ist an die Organisation und die erlaubten Systeme gebunden. Mit dem Schlüssel einer Organisation lassen sich keine Daten in eine andere schreiben.
- Pareo signiert das Extraktionsprofil mit einem eigenen Schlüssel, und der Connector akzeptiert nur
signierte Profile. Mit
profile_pinned: truein der Konfigurationsdatei frieren Sie das aktuelle Profil ein. Der Connector lehnt dann jede Profiländerung von Pareo ab, auch den Versuch, das Einfrieren aufzuheben; das geht nur über die Konfigurationsdatei. Alternativ verweisen Sie mitprofile_fileauf eine lokale Profildatei, die Sie selbst pflegen. - Der Connector folgt keinen HTTP-Weiterleitungen.
teamcenter.url,sap.urlundsap.token_urlmüssenhttpsverwenden, unverschlüsselteshttpist nur für localhost zulässig.
Registrierung und Freigabe
- Der Pareo-Support legt den Connector in Ihrer Organisation an und übergibt Ihrer IT das Installationspaket auf vertraulichem Weg.
- Das Paket enthält einen Einrichtungsschlüssel. Er ist 30 Tage gültig, lässt sich nur einmal verwenden und erlaubt nur die Registrierung dieses einen Connectors. Pareo speichert nur seinen Hash.
- Der Connector erzeugt sein Schlüsselpaar und registriert sich mit dem Einrichtungsschlüssel. Bis zur Freigabe sendet er keine Daten und meldet sich nur einmal pro Minute.
- Ihre IT schickt den Fingerabdruck des Schlüssels auf einem zweiten Weg an den Pareo-Support, nicht auf dem, auf dem das Paket kam. Der Pareo-Support gibt den Connector nur frei, wenn er mit dem Fingerabdruck in Pareo übereinstimmt.
- Wird ein Einrichtungsschlüssel ein zweites Mal oder von einem anderen Host verwendet, lehnt Pareo ihn ab und benachrichtigt den Pareo-Support und Ihre Benachrichtigungsadresse. Pareo nimmt Daten nur vom freigegebenen Host an. Als Hostname gilt der Name der VM, den die Compose-Datei schreibgeschützt einbindet, sodass auch ein neu erstellter Container ihn trägt.
Der Ablauf im Einzelnen steht unter Schritt 3: Freigabe.
Der Pareo-Support oder ein Administrator Ihrer Organisation kann einen Connector jederzeit pausieren: Er sendet dann keine Daten mehr, meldet sich aber weiterhin. Widerrufen beendet die Datenübertragung sofort und endgültig. Bereits synchronisierte Daten bleiben mit dem Zeitpunkt ihrer letzten Synchronisation in Pareo.
Solange ein Connector nicht widerrufen ist, lässt sich sein Schlüssel ersetzen. Der alte Schlüssel ist sofort ungültig, und der Connector registriert sich mit einem neuen Einrichtungsschlüssel und einem neuen Schlüsselpaar erneut. Die synchronisierten Daten bleiben erhalten (siehe Schlüssel des Connectors ersetzen).
Aktualisierung und Prüfung des Images
Pareo-Mitarbeitende starten nie ein Update. Wie Updates starten, legt Ihre IT in der .env fest:
| Zeile | Bedeutung |
|---|---|
PAREO_UPDATE_MODE=automatic | Neue signierte Versionen installieren sich im Wartungsfenster selbst. Standard in einem neuen Installationspaket. |
PAREO_UPDATE_MODE=on_click | Nur der Klick eines Admins Ihrer Organisation auf der Connector-Seite startet ein Update. Gilt auch, wenn die Zeile fehlt. |
PAREO_UPDATE_WINDOW=Mon,Sat 02:00-05:00 | Wann automatische Updates laufen dürfen, in UTC. Leer heißt jederzeit. |
Updater. Das Update installiert ein zweiter Container aus demselben signierten Image. Er läuft nur,
wenn das Compose-Profil updates aktiv ist (COMPOSE_PROFILES=updates in der .env). Ohne ihn zeigt
die Connector-Seite statt der Schaltfläche die Schritte für ein Update von Hand.
- Modus und Wartungsfenster prüft der Updater selbst auf der VM. Pareo kann kein automatisches Update
außerhalb Ihres Fensters oder im Modus
on_clickauslösen. - Eine fehlgeschlagene oder zurückgerollte Version versucht Pareo nie von selbst erneut. Ein Admin kann sie per Klick erneut anstoßen.
- Der Updater hat Zugriff auf den Container-Socket (
/var/run/docker.sockoder den Podman-Socket), weil er den Connector neu anlegen muss. Er lädt nur das Pareo-Connector-Image per Digest, prüft die cosign-Signatur gegen den eingebauten Pareo-Schlüssel und lehnt jedes andere Image ab. - Der Updater läuft als Root, weil der Socket Root gehört. Er gibt alle Capabilities ab außer
CHOWNundDAC_OVERRIDE. Die braucht er, um die.envund das gemeinsame State-Volume zu schreiben. Er läuft ohne SELinux-Label (label=disable), weil SELinux einem Container das Schreiben auf den Socket nicht erlaubt. Der Zugriff auf den Socket reicht weiter als alle drei. Behandeln Sie den Updater deshalb wie jeden Prozess mit diesem Zugriff. - Meldet sich die neue Version nicht innerhalb von 5 Minuten mit bestandenen Prüfungen, startet der Updater die vorige wieder.
- Der Connector selbst führt keine Befehle von Pareo aus. Er schreibt nur die Zielversion in sein State-Volume, wo der Updater sie liest.
Mindestversion. Ein Connector unter der Mindestversion meldet weiter seinen Status, und die
Connector-Seite zeigt ihn als Nicht mehr unterstützt. Pareo nimmt keine Daten mehr von ihm an und
schickt ihm keine Aufträge; im Log steht unsupported_version. Nach dem Update synchronisiert er wieder
von selbst.
Image. Das Image ist über seinen Digest eindeutig festgelegt und baut auf einem minimalen
Basis-Image ohne Shell auf. Es läuft ohne Root-Rechte, mit schreibgeschütztem Dateisystem, ohne
zusätzliche Capabilities und mit no-new-privileges. Pareo signiert jedes Image mit einem eigenen
Schlüssel und hängt eine Software-Stückliste (SBOM) im SPDX-Format an. Prüfen Sie beides, bevor Sie das
Image starten. Die Image-Referenz steht in der .env unter PAREO_CONNECTOR_IMAGE.
cosign verify --key pareo-connector.pub <image>@sha256:<digest>
cosign verify-attestation --key pareo-connector.pub --type spdxjson <image>@sha256:<digest>
Speichern Sie diesen öffentlichen Schlüssel als pareo-connector.pub:
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr7Fj0KSVaqd5lZvOxYIA9h4XLD31
+TkqizG9KrSd4df2IJIC3RBViHU/wP+KO9XC7g1LkZIT6DkRHasJAWSbyA==
-----END PUBLIC KEY-----
Pareo veröffentlicht diesen Schlüssel nur in seiner öffentlichen Dokumentation. Verwenden Sie keinen Schlüssel aus einer anderen Quelle.
Protokolle ohne Datenwerte
- Auf der Konsole erscheint je Ereignis eine lesbare Zeile, zum Beispiel
ok approved by Pareooderfix sap login refused (401), check /run/secrets/sap_client. Die Log-Datei im State-Volume und die Zeilen, die der Connector an Pareo sendet, sind im JSON-Format. Mitlog: { format: json }in der Konfigurationsdatei schreibt auch die Konsole JSON. - In keinem der Formate gelangen Werte aus Teamcenter oder SAP ins Log.
- Das Log-Level
debugist standardmäßig ausgeschaltet. Der Pareo-Support kann es für kurze Zeit anfordern, aber auch dann enthalten die Zeilen nur Datensatz-Kennungen. - Eine Diagnoseanfrage liefert Anzahlen und Fehler, nie Inhalte von Datensätzen.
Verhalten bei Störungen
- Ist Pareo nicht erreichbar, liest der Connector weiter und legt die Daten im Zwischenspeicher ab. Sobald Pareo wieder antwortet, lädt er die Datenpakete in der richtigen Reihenfolge hoch. Der Zwischenspeicher fasst standardmäßig höchstens 5 GB beziehungsweise die Daten von 14 Tagen.
- Ist die Festplatte voll, liest der Connector nicht weiter, lädt aber bereits Gelesenes weiter hoch.
- Nach einem Neustart oder Absturz setzt der Connector dort fort, wo er aufgehört hat. Kommt ein Datenpaket doppelt an, speichert Pareo es nur einmal.
- Antwortet eine Quelle nicht rechtzeitig, liest der Connector kleinere Blöcke und versucht es erneut. Meldet Pareo „zu viele Anfragen“, legt er die verlangte Pause ein.
- Ein Lauf, der vorzeitig endet, gilt samt seiner Lücken als unvollständig oder fehlgeschlagen und löscht nie Zeilen in Pareo. Nur eine vollständige Synchronisation entfernt Zeilen, die in der Quelle fehlen, und auch das nur für Nummern, die diese Quelle früher geliefert hat. Zeilen aus Dateien, Dokumenten oder manueller Eingabe bleiben erhalten.
- Meldet sich ein Connector nicht mehr, schlägt ein Lauf oder eine Prüfung fehl oder ist die Festplatte voll, benachrichtigt Pareo den Pareo-Support und Ihre Benachrichtigungsadresse. Administratoren sehen dieselben Meldungen zusätzlich in Pareo.
Was die IT einrichtet
| Punkt | Ort | Hinweis |
|---|---|---|
| Proxy | proxy in der Konfigurationsdatei | Nur wenn die VM das Internet über einen Proxy erreicht, siehe Proxy |
| Root-Zertifikat des Unternehmens | ca_bundle in der Konfigurationsdatei | Nur wenn eine Firewall HTTPS-Verbindungen aufbricht (TLS-Inspektion) |
| Secret-Dateien | /run/secrets | Je eine Datei für den Einrichtungsschlüssel, die Teamcenter-Anmeldung und die SAP-Anmeldung, nie in der Konfigurationsdatei |
| Zeitplan | schedule in der Konfigurationsdatei | Standard: täglich um 02:00 eine Delta-Synchronisation, sonntags um 03:00 eine vollständige |
| Uhrzeit | Die VM | Per NTP synchronisieren, denn Pareo lehnt Anfragen mit mehr als 5 Minuten Abweichung ab |
Zum Testen gibt es zwei Befehle, die keine Daten senden: check prüft Konfiguration, Secrets, Netz,
TLS und Anmeldungen, dry-run zählt, was ein Lauf lesen würde. Die Compose-Datei legt einen
Health-Check (/connector health), mem_limit 2g, pids_limit 256 und begrenzte json-file-Logs
fest.
Netzwerk
| Richtung | Ziel | Port | Zweck |
|---|---|---|---|
| Ausgehend | ingest.pareo.ai | 443 | Gesamte Kommunikation mit Pareo |
| Ausgehend | europe-west1-docker.pkg.dev | 443 | Nur zum Herunterladen von Image und cosign-Signatur |
| Ausgehend | Ihre SAP- und Teamcenter-Hosts | 443, intern | Diese Verbindungen bleiben in Ihrem Netz. |
| Eingehend | Keines | Keiner | Es ist kein Port geöffnet. |
Geben Sie nach Möglichkeit die Hostnamen frei. ingest.pareo.ai verweist auf eine feste, reservierte
Adresse; arbeitet Ihre Firewall nur mit IP-Adressen, geben Sie diese Adresse frei. Connectors für eine
Staging-Umgebung verwenden ingest-staging.pareo.ai.
Proxy
- Die Einstellung
proxygilt nur für Verbindungen zu Pareo. Verbindungen zu SAP und Teamcenter laufen direkt. - Der Connector unterstützt Proxys ohne Anmeldung und mit Basic-Authentifizierung, aber keine NTLM-
oder Kerberos-Proxys. Benutzername und Passwort für Basic stehen in der
proxy-URL, und der Connector entfernt sie aus jedem Statusbericht. - Verändert ein Proxy den Inhalt einer Anfrage, wird ihre Signatur ungültig, und Pareo lehnt die
Anfrage ab. Nehmen Sie
ingest.pareo.aiin diesem Fall vom Proxy aus.
Einrichtung, NTLM-Hilfsdienste und TLS-Inspektion beschreibt Proxy in der Installationsanleitung.
Image aus der eigenen Registry
Statt das Image von Pareo zu beziehen, können Sie es auch aus Ihrer eigenen Registry (Harbor, Nexus, Artifactory) bereitstellen.
-
Kopieren Sie das Image mit seinem Digest.
--allübernimmt dabei alle Plattformen:skopeo copy --all docker://<image>@sha256:<digest> docker://your-registry.example/pareo/connector:<tag>Alternativ verwenden Sie
crane copy <image>@sha256:<digest> your-registry.example/pareo/connector:<tag>. -
Kopieren Sie auch Signatur und Software-Stückliste.
cosign copy <image>@sha256:<digest> your-registry.example/pareo/connector:<tag>kopiert Image, Signatur und Attestierungen in einem Schritt. -
Prüfen Sie die Kopie mit dem öffentlichen Schlüssel von dieser Seite. Der Digest muss übereinstimmen:
cosign verify --key pareo-connector.pub your-registry.example/pareo/connector@sha256:<digest> -
Tragen Sie in der
.envunterPAREO_CONNECTOR_IMAGEIhre Registry ein und behalten Sie den Digest bei.PAREO_IMAGE_DIGESTbleibt unverändert.
Technischer Benutzer in SAP
Der Connector greift über OData ausschließlich lesend auf SAP zu. Geben Sie dem Benutzer nur Anzeigerechte (Berechtigungsaktivität 03). Das Zurückschreiben nach SAP ist ein eigener Schritt: Es braucht eine eigene Zugangsberechtigung, getrennt von diesem Benutzer.
| OData-Service | Gelesene Entitätsmengen |
|---|---|
API_CLFN_PRODUCT_SRV | A_ClfnProduct, A_ProductCharcValue, A_ProductDescription |
API_CLFN_CHARACTERISTIC_SRV | A_ClfnCharacteristicForKeyDate, A_ClfnCharcValueForKeyDate |
API_BILL_OF_MATERIAL_SRV | A_BillOfMaterial, A_BillOfMaterialItem |
ZPareoCharcValueText (optional, eigener Service) | ZPareoCharcValueText |
Den Langtext-Service liest der Connector nur, wenn das Profil ihn nennt und die Merkmalswerte eine Langtext-Kennung haben. Fehlt er, sendet der Connector die Werte ohne Langtexte und zählt die Langtexte, die er nicht lesen konnte.
sap.auth | Anmeldung | Konfigurationsschlüssel |
|---|---|---|
oauth (Standard) | Client Credentials: Der Connector holt ein Token und verwendet es als Bearer-Token. | sap.url, sap.client_file, optional sap.token_url |
basic | HTTP-Basic-Authentifizierung bei jeder Anfrage | sap.url, sap.client_file |
In sap.client_file steht in Zeile 1 die Client-ID (oder der Benutzer), in Zeile 2 das Secret (oder
Passwort). Ohne sap.token_url verwendet der Connector <sap.url>/oauth/token. Beide URLs müssen
https verwenden.
Technischer Benutzer in Teamcenter
Der Connector ruft über die JSON-REST-Schnittstelle nur diese SOA-Operationen der Services Core und Query auf:
| Operation | Zweck |
|---|---|
Core-2011-06-Session/login | Öffnet pro Lauf eine Sitzung |
Query-2006-03-SavedQuery/getSavedQueries | Findet die gespeicherte Abfrage über ihren Namen |
Query-2008-06-SavedQuery/executeSavedQueries | Führt die gespeicherte Abfrage aus |
Core-2006-03-DataManagement/getProperties | Liest die erlaubten Eigenschaften |
Core-2007-01-DataManagement/getItemFromId | Findet ein Item über seine Kennung |
Core-2006-03-Session/logout | Schließt die Sitzung nach jedem Lesevorgang |
Der Benutzer braucht Leserechte auf die gespeicherte Abfrage und die Item-Revisionen, die sie liefert, aber keine Schreibrechte. Die gespeicherte Abfrage muss weniger als 250.000 Objekte liefern (den Grund nennt Technischer Benutzer in Teamcenter).
Installation
Schritte, Checkliste vor der Installation, Updates und Fehlermeldungen beschreibt Installation des Connectors. Die Fragen, die Ihre IT vorab klärt, stehen dort unter Checkliste vor der Installation.