Zum Hauptinhalt springen

Authentifizierung

Die Eaternity API sichert alle Requests mit Basic Authentication und Ihrem API-Schlüssel.

Überblick​

AnforderungDetails
AuthentifizierungsartHTTP Basic Auth
BenutzernameIhr API-Schlüssel
PasswortLeer (frei lassen)
ProtokollNur HTTPS (SSL/TLS erforderlich)
SNI-UnterstützungServer Name Indication erforderlich

Ihren API-Schlüssel erhalten​

So erhalten Sie einen API-Schlüssel:

  1. Eaternity kontaktieren – E-Mail: info@eaternity.ch. Nennen Sie Ihren Firmennamen, Ihren Anwendungsfall und das geschätzte Request-Volumen.
  2. API-Schlüssel erhalten – Sie erhalten einen eindeutigen API-Schlüssel per sicherer E-Mail.
  3. Lizenz aktivieren – Ihr API-Schlüssel wird mit lizenzierten Küchen verknüpft. Nicht lizenzierte Küchen geben 403 Forbidden zurück.
Halten Sie Ihren API-Schlüssel geheim

Ihr API-Schlüssel gewährt Zugriff auf Ihre Daten und verursacht Nutzungskosten. Teilen Sie ihn nie öffentlich und committen Sie ihn nie in die Versionskontrolle.

Authentifizierungsmethoden​

cURL​

Verwenden Sie das Flag -u mit Ihrem API-Schlüssel als Benutzername und einem leeren Passwort (beachten Sie den Doppelpunkt):

curl -u YOUR_API_KEY: https://co2.eaternity.ch/api/kitchens/

HTTP-Header​

Den Basic-Auth-Header von Hand erstellen:

# Base64 encode "YOUR_API_KEY:"
echo -n "YOUR_API_KEY:" | base64
# Result: WU9VUl9BUElfS0VZOg==

curl -H "Authorization: Basic WU9VUl9BUElfS0VZOg==" \
https://co2.eaternity.ch/api/kitchens/

Python​

import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://co2.eaternity.ch/api"

# Method 1: Using auth parameter
response = requests.get(
f"{BASE_URL}/kitchens/",
auth=(API_KEY, "")
)

# Method 2: Using headers
import base64
auth_header = base64.b64encode(f"{API_KEY}:".encode()).decode()
response = requests.get(
f"{BASE_URL}/kitchens/",
headers={"Authorization": f"Basic {auth_header}"}
)

JavaScript (Node.js)​

// Using fetch with Buffer (Node.js)
const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://co2.eaternity.ch/api';

const authHeader = Buffer.from(`${API_KEY}:`).toString('base64');

fetch(`${BASE_URL}/kitchens/`, {
headers: {
'Authorization': `Basic ${authHeader}`,
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(data => console.log(data));

SSL/TLS-Anforderungen​

Alle API-Requests müssen HTTPS verwenden. Der API-Server verlangt Unterstützung für Server Name Indication (SNI) – die meisten modernen HTTP-Bibliotheken unterstützen dies standardmässig. Details finden Sie im Abschnitt zu SSL & SNI auf der Einführungsseite.

Rate Limiting​

Kontaktieren Sie info@eaternity.ch für Details zu den Rate Limits Ihres API-Schlüssels.

Fehler-Responses​

Authentifizierungsfehler geben übliche HTTP-Statuscodes zurück. Details zu allen Fehlercodes, einschliesslich 401 Unauthorized und 403 Forbidden, finden Sie im Abschnitt HTTP-Statuscodes auf der Einführungsseite.

Best Practices für die Sicherheit​

Umgebungsvariablen​

Speichern Sie API-Schlüssel in Umgebungsvariablen, nicht im Code:

# .env file (add to .gitignore)
EATERNITY_API_KEY=your_actual_api_key_here
import os
from dotenv import load_dotenv

load_dotenv()
API_KEY = os.getenv('EATERNITY_API_KEY')

Rotation des API-Schlüssels​

Wechseln Sie Ihre API-Schlüssel regelmässig:

  1. Fordern Sie beim Support einen neuen API-Schlüssel an
  2. Aktualisieren Sie Ihre Anwendungen mit dem neuen Schlüssel
  3. Prüfen Sie die Funktion mit dem neuen Schlüssel
  4. Lassen Sie den alten Schlüssel deaktivieren

Endpoints​

Authentifizierungs-Endpoints, einschliesslich OAuth2-Token-Austausch.

Den Endpoint für den Token-Austausch finden Sie unter OAuth 2 Token.