Du kannst festlegen, welche Rechner die Smoobu-API mit den Schlüsseln deines Kontos aufrufen dürfen, indem du ihre öffentlichen IP-Adressen in eine Erlaubnisliste einträgst, oft IP-Whitelist genannt. Sobald die Liste mindestens einen Eintrag hat, wird jede Anfrage von einer anderen Adresse abgelehnt, auch wenn API-Schlüssel und Signatur stimmen. Die Liste ist optional und ergänzt die Signierung der Anfragen um eine zweite Schutzschicht: Sie gilt nur für signierte Anfragen. Sie steht jedem Smoobu-Konto mit API-Zugriff zur Verfügung. Du pflegst sie selbst unter Fortgeschrittene Einstellungen > API-Schlüssel im Tab IP whitelist.
Bevor du loslegst
Das brauchst du alles, damit sich die Liste lohnt:
- Direkten API-Zugriff. Gemeint sind eigene Skripte, eine eigene Integration oder ein internes Tool, in das du deinen API-Schlüssel selbst eingetragen hast. Wie du einen Schlüssel bekommst und Anfragen signierst, steht in Die Smoobu-API nutzen: API-Schlüssel erstellen, Webhooks einrichten und Anfragen signieren.
- Feste öffentliche IP-Adressen. Die Liste funktioniert nur gut, wenn deine Anfragen von wenigen, gleichbleibenden Rechnern kommen, etwa einem gemieteten Server, einem Büroanschluss mit statischer IP oder einer Cloud-Instanz mit reservierter Adresse.
- Signierte Anfragen, die bereits funktionieren. Die Whitelist ist eine zusätzliche Schutzschicht, kein Ersatz für die Signierung. Eine Anfrage von einer eingetragenen Adresse braucht weiterhin einen gültigen Zeitstempel, eine Nonce und eine Signatur. Für alte API-Schlüssel gilt die Whitelist nicht, nur für aktuelle: Nutzt du noch einen alten Schlüssel, ändert ein Eintrag in der Liste für ihn nichts.
Tools, die du über den Smoobu-Marktplatz verbunden hast, etwa ein Preis-Tool oder ein Check-in-Tool, sind von der Liste nicht betroffen. Eine Adressbeschränkung für solche Integrationen regelt Smoobu direkt mit dem Partner, du musst nichts einrichten.
Läuft deine Integration von Adressen, die sich oft ändern, zum Beispiel Serverless-Funktionen, ein Laptop an wechselnden Anschlüssen oder Cloud-Worker ohne feste ausgehende Adresse, lass die Liste leer und verlass dich allein auf die Signierung. Eine Liste, die ständig veraltet, blockiert mehr deiner eigenen Anfragen, als sie schützt.
Eine leere Liste bedeutet keine Beschränkung
Die Liste wird bei jeder Anfrage mit einem deiner API-Schlüssel geprüft und greift erst, sobald sie einen Eintrag hat:
- Leere Liste: Jede Anfrage wird angenommen, egal von welcher Adresse. Das ist die Standardeinstellung.
- Ein oder mehrere Einträge: Nur Anfragen von den eingetragenen Adressen werden angenommen. Alles andere wird abgelehnt.
Einen Schalter für „alles blockieren" oder „alles erlauben" gibt es nicht. Der Schutz besteht allein aus deinen Einträgen, trag also jede Adresse ein, die du brauchst. Pro Smoobu-Konto gibt es eine Liste, und sie gilt für jeden signierten API-Schlüssel dieses Kontos. Du kannst nicht einen Schlüssel beschränken und einen anderen offen lassen.
Smoobu prüft die Adresse, bevor es die Signatur prüft. Eine Anfrage von einer Adresse, die nicht auf der Liste steht, bekommt eine schlichte Antwort 401 Unauthorized, die die Adresse nicht erwähnt. Das ist Absicht, damit niemand die Liste von außen abtasten kann. Es bedeutet aber auch: Hat sich dein Signierungscode nicht geändert und plötzlich liefert jede Anfrage 401, prüfst du zuerst deine Adresse.
Diese Einträge sind möglich:
- Eine einzelne IPv4-Adresse, zum Beispiel 203.0.113.42, für einen Rechner mit fester öffentlicher Adresse.
- Eine einzelne IPv6-Adresse, zum Beispiel 2001:db8::42, für einen Rechner, der Smoobu über IPv6 erreicht.
- Ein Bereich in CIDR-Schreibweise, zum Beispiel 198.51.100.0/24, für einen Adressblock wie ein Büronetz oder einen Cloud-Gateway-Pool. Trag nur Bereiche ein, die du komplett kontrollierst. Ein größerer Bereich als nötig schwächt den Schutz, den du gerade aufbaust.
Jeder Eintrag kann eine kurze Bezeichnung tragen, zum Beispiel „Büronetz", damit du ihn später wiedererkennst.
Schritte
- Finde die öffentliche IP-Adresse heraus, die deine Integration für ausgehende Aufrufe nutzt. Sie ist oft nicht die lokale Adresse, die dir dein Rechner anzeigt. Am zuverlässigsten schickst du von demselben Rechner und Anschluss, den deine Integration nutzt, eine Anfrage ab und liest die zurückgemeldete öffentliche Adresse ab.
- Öffne in Smoobu Fortgeschrittene Einstellungen, dann API-Schlüssel, und wähle den Tab IP whitelist.
- Klicke auf Neu hinzufügen. Trage im Fenster IP-Adresse hinzufügen die Adresse oder den Bereich bei IP-Adresse ein, gib bei Bezeichnung (optional) eine kurze Bezeichnung an und speichere.
- Wiederhole Schritt 3 für jeden Rechner, jede Replika, jeden geplanten Job und jede Test- oder Staging-Umgebung, die die API aufruft. Trag alle auf einmal ein, denn schon dein erster Eintrag blockiert sofort jede nicht eingetragene Adresse.
- Schick eine normale signierte Anfrage von einem eingetragenen Rechner und prüfe, dass sie durchgeht.
- Wenn du kannst, schick eine von einer nicht eingetragenen Adresse und prüfe, dass sie 401 Unauthorized zurückgibt. Erst dieser zweite Test beweist, dass die Liste wirkt.
Änderungen gelten sofort. Du kannst einen Eintrag jederzeit entfernen; entfernst du den letzten, bist du wieder in der Standardeinstellung, in der jede Adresse angenommen wird.
So prüfst du, ob es geklappt hat
Eine signierte Anfrage von einer eingetragenen Adresse bekommt eine normale Antwort. Dieselbe Anfrage von einer Adresse, die nicht auf der Liste steht, bekommt 401 Unauthorized.
Häufige Probleme
Alle deine Anfragen liefern plötzlich 401
Schlägt jede Anfrage im selben Moment fehl und dein Signierungscode ist unverändert, prüf zuerst deinen Anschluss, nicht deinen Code. Ausgehende Adressen ändern sich öfter, als man denkt: Der Internetanbieter vergibt deine Adresse neu, du ziehst auf einen neuen Server oder in eine andere Cloud-Region um, oder das Netz im Büro ändert sich. Ermittle deine aktuelle ausgehende Adresse und trag sie in die Liste ein. Muss die Integration sofort wieder laufen, entferne alle Einträge, um die Beschränkung aufzuheben, bis du es geklärt hast.
Manche Anfragen gehen durch, andere nicht
Die Anfragen kommen von mehr Orten, als du eingetragen hast. Typische Ursachen: Ein zweiter Rechner, eine Replika oder ein geplanter Job läuft von einer anderen Adresse; dein Anschluss wechselt zwischen mehreren Adressen; du hast deinen Produktionsserver eingetragen, aber auch eine Test- oder Staging-Umgebung ruft die API auf. Sammle die Adressen von allem, was die API aufruft, nicht nur von deinem Hauptrechner, und trag sie alle ein.
Du hast eine IPv4-Adresse eingetragen, Anfragen werden trotzdem blockiert
Bevorzugt dein Rechner IPv6, sieht Smoobu die IPv6-Adresse, und die passt nicht zu deinem IPv4-Eintrag. Trag entweder beide Adressen ein oder stelle deine Integration so ein, dass sie über IPv4 verbindet.
Du wolltest Smoobus Webhooks durch deine eigene Firewall lassen
Diese Liste beschränkt eingehende Aufrufe an die Smoobu-API. Auf die ausgehenden Webhook-Zustellungen, die Smoobu an deinen Server schickt, hat sie keinen Einfluss. Smoobu veröffentlicht keine feste Liste von Adressen, von denen Webhooks gesendet werden. Setz also keinen IP-Filter vor deinen Webhook-Endpunkt, sondern prüfe Webhook-Zustellungen anhand ihres Inhalts.
Verwandte Artikel
Kommst du nicht weiter?
Wenn diese Schritte das Problem nicht gelöst haben, kontaktiere das Smoobu-Team: Öffne das Menü Hilfe, um ein Ticket zu eröffnen oder einen Telefontermin zu buchen, oder nutze die Chat-Blase unten rechts. Für die schnellste Antwort gib bitte an:
- Deine Smoobu User ID (im Profil-Icon-Menü oben rechts).
- Den Namen oder die ID der Unterkunft, wenn es um eine bestimmte Unterkunft geht.
- Die Buchungs-ID, wenn es um eine bestimmte Buchung geht (Buchungen, dann Mehr anzeigen).
- Den Namen des Portals, wenn es um Portal-Sync geht (Booking.com, Airbnb, Vrbo und so weiter).
- Eine kurze Schritt-für-Schritt-Beschreibung: was du getan hast, was du erwartet hast und was passiert ist.
- Screenshots oder eine kurze Bildschirmaufnahme des Problems.
Kommentare
0 Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.