Inhalte
Freischaltungsprozess beim Kunden
Im Folgenden wird der Freischaltungsprozess eines Services beschrieben. Um einen Marketplace-Service nutzen zu können, müssen Kunden diesen zunächst freischalten.
Wählt der Benutzer einen Anbieter über „Marketplace > Übersicht“ aus, der noch nicht freigeschaltet ist, öffnet sich ein Pop-up für die Freischaltung. Die Freischaltung ist nur für Administratoren des onOffice-Mandanten (d.h. der Kundenversion) möglich.
Dem Benutzer wird folgende Maske angezeigt:
- „Zum Anbieter“ zeigt eine Beschreibung Ihres Unternehmens und Ihrer Services. Unter „Beschreibung der freizugebenden Rechte“ werden die Rechte beschrieben, die der Benutzer Ihnen einräumen muss. Damit ist dem Benutzer bewusst, auf welche Daten zugegriffen wird.
- Unter „Bestätigungen“ bestätigt der Benutzer Ihre Auftragsverarbeitungsvereinbarung (AVV), allgemeinen Geschäftsbedingungen (AGB) und die Datenschutzerklärung.
- Unter „Benutzerrecht aktivieren“ muss der Benutzer bewusst entweder „alle Benutzer“ oder „alle Administratoren“ einstellen, damit die Freischaltung durchgeführt werden kann. Administratoren haben immer Zugriff. Bei Marketplace-Anbietern, die genau EINEN Service per Webhook anbieten, ist diese Auswahl deaktiviert und „alle Benutzer“ ist vorausgewählt.
- Abschließend klickt der Benutzer auf „Freischalten”. Mit dem Klick auf „Freischalten“ sendet onOffice enterprise im Hintergrund einen verschlüsselten POST-Request an die vom Anbieter hinterlegte URL (Remote Site). Dieser Request enthält alle notwendigen Daten inklusive des API-Keys (Secrets).
Aufbau der Iframe-URL zur Freischaltung
Der Ablauf bei der Freischaltung als Sequenzdiagramm:
Aufbau des Requests zur Freischaltung
Content-Type des Requests ist multipart/form-data.- apiClaim: Parameter für künftige API-Aufrufe.
- apiToken: Das Token zur Authentifizierung.
- customerName: Name des Mandanten / der Kunderversion. Ein Mandant ist eine Instanz der onOffice-Software, die viele Benutzer haben kann. Oft sind Mandanten Maklerbüros und Benutzer die Makler.
- customerWebId: WebID des Mandanten (identifiziert die Kundenversion eindeutig).
- parameterCacheId: Eine interne Parameter-Cache-ID.
- secret: Der API-Key als String.
- timestamp: Zeitstempel.
- userId: UserID des Benutzers (identifiziert zusammen mit der WebID eindeutig einen Kunden).
- signature: Signatur zur Verifizierung des Aufrufs.
Timestamp
Signatur
- Es werden alle POST-Felder herangezogen.
- Das Feld mit der Signatur (
signature) wird aus den Feldern entfernt. - Die verbleibenden Felder werden aufsteigend alphabetisch nach den Keys sortiert.
- Aus diesen sortierten Feldern wird ein Query-String gebildet (z. B. in PHP mit
http_build_query()). - Es wird die kanonische URL gebildet (aus Host, Port und Pfad) und der Query-String mit einem Fragezeichen (?) angehängt.
- Diese Zeichenkette wird über die Hash-Funktion
HMAC-SHA256mit Ihrem Anbieter-Secret verschlüsselt. - Der so ermittelte Hash muss mit dem übermittelten Wert aus dem Parameter
signatureübereinstimmen.
Freischaltung des Anbieters
Einleitung: Damit Ihr Service Daten in den Kundenversionen lesen und schreiben kann, wird bei der Freischaltung Ihres Dienstes automatisch ein API-Benutzer in der jeweiligen Kundenversion angelegt. Bei der Freischaltung werden ihnen API-Key und Token dieses API-Benutzers übergeben. Ihnen werden dadurch Rechte gegeben auf die onOffice-Software zuzugreifen.
Viele Dienste im Marketplace benötigen lesenden oder schreibenden Zugriff auf bestimmte Ressourcen in onOffice enterprise, um zu funktionieren. Beispiel Grundrissoptimierung: Kunde bestellt Grundriss im Marketplace für eine bestimmte Immobilie (Anbieter muss lesend auf Immobilie bzw. den Grundriss zugreifen), Anbieter erstellt Grundriss, Anbieter spielt optimierten Grundriss zurück (Anbieter muss schreibend auf Immobilie zugreifen).
Authentifizierung und Aktivitäten: Der zugehörige API-Key (Secret), das Token zur Authentifizierung und eine Parametercache-ID werden Ihnen während des Freischaltungsprozesses übergeben. Verwenden Sie den übermittelten API-Key und das Token für die weitere Kommunikation. Um den Prozess abzuschließen, müssen Sie die API-Funktion zur Freischaltung des Anbieters aufrufen (ACTION_ID_DO, unlockProvider) und den Parameter parameterCacheId übergeben. Dieser enthält die notwendigen internen Informationen aus dem Parameter-Cache (Details finden Sie in der ProvicderUnlock.php in den Code-Beispielen.
Datenspeicherung und Identifikation: Nach erfolgreichem Aufruf ist Ihr Angebot freigeschaltet. Speichern Sie die API-Zugangsdaten (API-Key und Token) sicher ab. Wichtig zur Identifikation: Eine Kundenversion wird auf technischer Ebene eindeutig über die Mandanten-ID (customerWebId) identifiziert. Da die Freischaltung einmalig für den gesamten Mandanten erfolgt, ist die Speicherung der Zugangsdaten pro customerWebId maßgeblich für die weitere API-Kommunikation.
Benutzer-Feedback: Im Erfolgsfall soll „active“, im Fehlerfall soll eine Fehlermeldung für den Benutzer zurückgegeben werden. (siehe JsonResponse.php in den Code-Beispielen. Der Status ändert sich im Erfolgsfall von „Inaktiv“ auf „Aktiv“.
Beachten Sie: Sie müssen keine eigenen API-Benutzer für Ihren Service erstellen. Die API-Benutzer für Ihren Service in den Kundenversionen werden automatisch angelegt, wenn die Kunden Ihren Dienst aktivieren. Die notwendigen Informationen (API-Key und Token) werden dabei übertragen.
Beachten Sie, dass ausserdem bei jedem API-Call ein Parameter „extendedclaim“ angegeben werden muss. Bei jedem Aufruf Ihres Services durch den Kunden wird deswegen an Sie ein Parameter „apiClaim“ übergeben. Anschliessend müssen Sie diesen „apiClaim“ bei allen API-Calls wieder als Parameter „extendedclaim“ zurückliefern. Dies dient dazu, dass die Übergabe der Benutzer-ID und der Kundenversion verifiziert ist. Bitte benutzen Sie den „apiClaim“ aus dem neuesten Serviceaufrufes des Kunden. Der apiClaim bei der Freischaltung kann nur für den unlockProvider-Call genutzt werden.
Genauere Informationen dazu unter https://www.marketplacedoc.onoffice.de/api-calls.
In den Code-Beispielen finden Sie auch einen Programm-Code als Vorlage für die Implementierung des Freischaltungsprozesses.
Der Benutzer hat Ihr Angebot freigeschaltet. Ihre Services können nun über den Menüpunkt „Marketplace“ in onOffice enterprise gebucht werden. Ruft der Benutzer Ihren Service auf, wird ihm im Popup Ihr Iframe mit dem gewünschten Service-Frontend angezeigt.






