GOpenCSR-API-Bedingungen
Wie der zentrale API-Zugang unter csr.gplatform.org Menschen und Integratoren dient, was ein API-Schlüssel darf und was nicht, welche Ratenbegrenzungen gelten und wie sich Versionen ändern.
Wofür diese Bedingungen gelten
Diese Bedingungen gelten für den zentralen API-Zugang der G-Open-Dienste und für jeden API-Schlüssel. Sie akzeptieren sie, wenn Sie einen API-Schlüssel erstellen, und das Konto hält die Fassung fest, die Sie akzeptiert haben. Sie ergänzen die GOpenCSR-Nutzungsbedingungen und die Richtlinie zur zulässigen Nutzung. Was Sie über die API ändern, richtet sich nach der Registry, zu der es gehört, also nach den GOpenCDR-Nutzungsbedingungen oder den GOpenCNR-Nutzungsbedingungen.
Der zentrale API-Zugang
Eine API-Referenz und ein Schlüsselsystem dienen allen drei Diensten:
- GOpenCDR:
https://csr.gplatform.org/api/cdr/v1 - GOpenCNR:
https://csr.gplatform.org/api/cnr/v1 - GOpenCSR:
https://csr.gplatform.org/api/csr/v1
Der zentrale API-Zugang ist für Menschen und für Integratoren da. Eine Anwendung, die für einen Menschen handelt, meldet ihn mit OpenID Connect auf csr.gplatform.org an, im Authorization-Code-Verfahren mit PKCE, und sendet das Zugriffstoken, das sie erhält. Ein Skript sendet einen API-Schlüssel. Fehler kommen als application/problem+json zurück, jeder mit einem feststehenden Code. Die Referenz wird mit ihrem Änderungsprotokoll zusammen mit der API veröffentlicht.
Was nicht über ihn läuft
Die Maschinen, die die Dienste in Gang halten, und die Öffentlichkeit, die sie liest, sprechen jeden Dienst direkt an:
- die Agenten von GOpenCNR auf den Routern der Mitglieder und auf Hubs, nach der Vereinbarung zur Netzteilnahme und der Vereinbarung für Hub-Betreiber;
- die Mirrors von GOpenCDR, nach den Bedingungen für Mirror-Betreiber;
- öffentliche Abrufe, etwa RDAP-Clients, vertrauende Parteien, die das RPKI-Repository von GOpenCNR nach den Nutzungsbedingungen für TAL und Repository abrufen, und alle, die das Transparenzlog unter
csr.gplatform.org/tloglesen.
Für sie gelten diese Bedingungen nicht.
API-Schlüssel
- Im Konto erstellt und einmal angezeigt. Sie erstellen einen Schlüssel unter Konto, API-Schlüssel, und sein Geheimnis wird bei der Erstellung angezeigt und danach nie wieder. Wir behalten nur sein öffentliches Präfix und einen schlüsselabhängigen Hash seines Geheimnisses; ein verlorener Schlüssel wird deshalb ersetzt, nicht wiederhergestellt.
- Für ein Produkt und eine Umgebung. Das Präfix sagt, für welche:
gok_cdr_live_,gok_cdr_test_,gok_cnr_live_odergok_cnr_test_. - Mit Scopes. Ein Schlüssel trägt einen oder mehrere Scopes, jeder eine Objektart und eine Aktion, etwa Routen lesen oder ändern, und ein Scope kann auf bestimmte Objekte beschränkt sein. Ein Schlüssel kann nicht mehr, als seine Scopes erlauben, und nicht mehr, als Ihre eigenen Rollen erlauben.
- Immer befristet. Ein Schlüssel läuft nach der Zeit ab, die Sie wählen, höchstens 400 Tage. Wählen Sie keine, läuft er nach 90 Tagen ab. Erstellen Sie den nächsten Schlüssel, bevor der alte abläuft.
- Nie Tier 0. Kein Schlüssel trägt Tier-0-Berechtigungen, und kein Schlüssel kann über eine Freigabe entscheiden oder Schlüssel verwalten.
- Auf Wunsch an Adressen gebunden. Sie können einem Schlüssel eine Liste zugelassener Adressen geben; Anfragen mit ihm von anderswo werden abgelehnt.
- Seine letzte Nutzung wird festgehalten und beim Schlüssel angezeigt.
- Falsche Schlüssel werden gezählt. Fehlgeschlagene Versuche mit Schlüsseln sind auf 30 je Adresse in 15 Minuten begrenzt; darüber hinaus werden Versuche von dieser Adresse abgelehnt.
Änderungen, die eine Signatur brauchen
Ein Schlüssel signiert nicht. Eine Anfrage für eine Änderung, die die Signatur des Inhabers braucht, wird mit 202 Accepted und einem Link zum Signieren beantwortet, und die Änderung wird erst wirksam, wenn sie signiert ist: von einem Menschen mit einem Passkey im Signierschritt auf csr.gplatform.org oder von einem Automatisierungsschlüssel, der unter einem Passkey registriert ist. Der Beleg ist der Eintrag der Änderung im Transparenzlog.
Ratenbegrenzungen
Jeder Schlüssel darf 600 Anfragen pro Minute stellen. Antworten tragen RateLimit-*-Header, die zeigen, wo Sie stehen. Eine Anfrage über der Grenze wird mit dem Status 429 Too Many Requests abgelehnt, und die Antwort sagt, wann Sie es erneut versuchen können. Umgehen Sie die Grenze nicht, indem Sie Anfragen auf mehrere Schlüssel, Konten oder Adressen verteilen.
Idempotenz und seitenweise Abfrage
- Idempotenz. Senden Sie mit jedem
POSTeinenIdempotency-Key-Header. Eine Anfrage, die mit demselben Schlüssel innerhalb von 24 Stunden wiederholt wird, erhält die Antwort auf die erste, statt ein zweites Mal zu wirken. Die Einträge werden 24 Stunden aufbewahrt. - Seitenweise Abfrage. Listen werden per Cursor gelesen, mit
?after=<cursor>&limit=<n>. Eine Seite umfasst 100 Einträge, wenn Sie keine andere Zahl angeben, und höchstens 500.
Schlüssel sicher halten
Sie sind für Ihre Schlüssel verantwortlich und für das, was mit ihnen geschieht: Eine Anfrage mit einem Schlüssel wird im Namen Ihres Kontos gestellt, für den Inhaber, den seine Scopes umfassen. Halten Sie Schlüssel aus Quellcode, öffentlichen Repositories, Code, der im Browser läuft, URLs und Protokollen heraus. Geben Sie jedem Schlüssel die engsten Scopes, wo möglich eine Liste zugelassener Adressen und die kürzeste Laufzeit, die genügt. Könnte ein Schlüssel offengelegt sein, widerrufen Sie ihn sofort, und sagen Sie es uns unter contact@gplatform.org, wenn er missbraucht worden sein könnte.
Widerruf
Sie können einen Schlüssel jederzeit widerrufen; von da an wird er abgelehnt. Wir widerrufen einen Schlüssel, der offengelegt ist oder missbraucht wird, der entgegen diesen Bedingungen oder der Richtlinie zur zulässigen Nutzung verwendet wird oder dessen Konto ausgesetzt oder geschlossen ist. Sie erhalten eine Begründung und können den Widerruf anfechten, wie es die GOpenCSR-Nutzungsbedingungen für jede Einschränkung beschreiben.
Versionen und Änderungen
Die Version ist Teil jedes Pfads, wie in /v1. Innerhalb einer Version wächst die API, ohne Bestehendes zu brechen: Neue Endpunkte, neue Felder und neue Fehlercodes können hinzukommen, und ein Client übergeht, was er nicht kennt. Eine Änderung, die einen funktionierenden Client brechen würde, kommt als neue Version. Das Änderungsprotokoll hält jede Änderung fest.
Eine Version wird nur nach vorheriger Ankündigung eingestellt, an die Adresse jedes Kontos, dessen Schlüssel sie nutzen, und die Ankündigung nennt das Datum und die Version, die an ihre Stelle tritt.
Diese Bedingungen ändern sich nur so, wie es die allgemeinen Nutzungsbedingungen unter „Neue Fassungen dieser Bedingungen“ festlegen: Eine wesentliche Änderung wird Ihnen mindestens sechs Wochen vor ihrem Inkrafttreten per E-Mail an Ihre Adresse angekündigt, und bei Ihrer nächsten Anmeldung werden Sie gebeten, der neuen Fassung zuzustimmen; sie wird Ihnen dabei vollständig gezeigt und ist im Dokumentenarchiv verlinkt, ohne Liste der Änderungen. Eine neue Fassung gilt für Sie erst, wenn Sie ihr zustimmen. Was gilt, wenn Sie ihr nach Ablauf der sechs Wochen nicht zugestimmt haben, steht in den GOpenCSR-Nutzungsbedingungen unter „Ihre Inhalte, Ihr Konto und diese Klauseln“. Jede Fassung dieser Bedingungen bleibt im Dokumentenarchiv.
Zulässige Nutzung
Die Richtlinie zur zulässigen Nutzung gilt für jede Anfrage. Insbesondere: kein Absammeln von Daten, keine Lasttests und kein Ausforschen über das hinaus, was die Sicherheits- und Offenlegungsrichtlinie erlaubt, und keine Skripte, die die Anmeldeseiten oder die Konsolen an Stelle der API bedienen.
Was festgehalten wird
Jede Anfrage wird in ein Anfrageprotokoll geschrieben, das nach 14 Tagen gelöscht wird. Jede Änderung mit einem Schlüssel erzeugt einen Audit-Eintrag, der den Schlüssel als Handelnden nennt. Was sonst aufbewahrt wird und wie lange, steht im Datenschutzhinweis.
Alles Übrige
Die API wird unentgeltlich bereitgestellt. Gewährleistung, Service Levels und die Grenzen unserer Haftung ergeben sich aus den allgemeinen Nutzungsbedingungen; für Unentgeltliches ist die Haftung auf Vorsatz und grobe Fahrlässigkeit beschränkt (§ 521 BGB).