API-Dokumentation
Fortgeschrittene Authentifizierungsmuster — OAuth 2.0, JWT, Schlüsselrotation
Meistern Sie anspruchsvolle Authentifizierungsmechanismen für die Integration der Smart Money API in Unternehmensumgebungen. Lernen Sie OAuth 2.0-Abläufe, JWT-Token-Muster, sichere Schlüsselrotation und die Implementierung von Multi-Faktor-Authentifizierung.
Veröffentlicht am 21. März 2026
•
18 Min. Lesezeit
•
Fortgeschritten
Authentifizierungsübersicht
Die Smart Money API unterstützt mehrere Authentifizierungsmethoden, die für verschiedene Anwendungsarchitekturen, Sicherheitsanforderungen und Organisationsrichtlinien ausgelegt sind. Das Verständnis dieser Muster stellt sicher, dass Ihre Integration sowohl sicher als auch leistungsfähig ist.
Die Authentifizierung in der Smart Money API erfolgt auf drei primären Ebenen:
- API-Schlüssel — Einfache Bearer-Token-Authentifizierung für die Entwicklung und unkomplizierte Integrationen
- JWT-Token — Zustandslose, kryptografisch signierte Token für verteilte Systeme und Microservices
- OAuth 2.0 — Delegiertes Autorisierungsframework für Drittanbieterintegrationen und SaaS-Anwendungen
Sicherheitsprinzip: Geben Sie niemals Authentifizierungsdaten in clientseitigem Code, Protokollen, Versionskontrollen oder Fehlermeldungen preis. Implementieren Sie eine regelmäßige und sofortige Schlüsselrotation bei Kompromittierung.
Jede Methode hat besondere Vorteile. API-Schlüssel eignen sich am besten für die Backend-zu-Backend-Kommunikation, bei der die Speicherung der Anmeldedaten kontrolliert wird. JWT-Token sind ideal für verteilte Architekturen, in denen kein gemeinsamer Zustand verfügbar ist. OAuth 2.0 ermöglicht nutzerdelegierten Zugriff für Drittanbieteranwendungen.
API-Schlüssel-Authentifizierung
API-Schlüssel sind der einfachste Authentifizierungsmechanismus – es handelt sich um zufällige Zeichenketten, die für Ihr Konto generiert werden und Ihre Anwendung gegenüber der Smart Money API identifizieren. Jede Anfrage muss Ihren API-Schlüssel entweder als Header oder Abfrageparameter enthalten.
Header-basierter API-Schlüssel
Die empfohlene Methode ist die Übergabe Ihres API-Schlüssels im Authorization-Header unter Verwendung des Bearer-Schemas:
curl -X GET "https://api.smartmoneyapi.com/v1/whales/btc" \
-H "Authorization: Bearer sk_live_1234567890abcdef" \
-H "Accept: application/json"
Abfrageparameter-API-Schlüssel
Für WebSocket-Verbindungen oder wenn Header nicht geändert werden können, übergeben Sie den API-Schlüssel als Abfrageparameter:
ws://localhost:8877/ws?api_key=sk_live_1234567890abcdef
// Stellt einen authentifizierten WebSocket-Stream her
API-Schlüssel-Eigenschaften
| Eigenschaft |
Beschreibung |
| Format |
128-stellige Hex-Zeichenkette mit dem Präfix sk_test_ oder sk_live_ |
| Geltungsbereich |
Erbt alle Berechtigungen des Kontos, das ihn erstellt hat |
| Ablauf |
Läuft nie automatisch ab; muss manuell rotiert werden |
| Rotation |
Neuen Schlüssel generieren, Datenverkehr migrieren, dann alten Schlüssel deaktivieren |
| Ratenbegrenzungen |
Gilt für alle Anfragen, die denselben Schlüssel verwenden |
Sicherheitspraktiken für API-Schlüssel
- Umgebungsvariablen — Schlüssel in .env-Dateien speichern (nicht in der Versionskontrolle) und zur Laufzeit laden
- Tresorsysteme — Verwenden Sie HashiCorp Vault, AWS Secrets Manager oder Azure Key Vault in der Produktion
- Getrennte Schlüssel — Halten Sie separate Test- und Live-Schlüssel; rotieren Sie Testschlüssel häufig
- Minimaler Umfang — Erstellen Sie nach Möglichkeit separate Schlüssel für verschiedene Integrationen
- Audit-Protokollierung — Protokollieren Sie alle API-Schlüssel-Erstellungs- und Nutzungsereignisse
Holen Sie sich Ihren API-Schlüssel in 30 Sekunden
Bereit zu bauen? Holen Sie sich einen kostenlosen API-Schlüssel (200 Aufrufe/Tag, keine Karte) und beginnen Sie mit dem Abrufen von Live-Daten zu Walen, Finanzierungen und On-Chain-Daten.
Holen Sie sich Ihren API-Schlüssel →
Bearer-Token-Muster
Bearer-Tokens erweitern das einfache API-Schlüsselkonzept durch Hinzufügen von Kontext, Ablauf und Aktualisierungsmechanismen. Sie sind ideal für Anwendungen, die eine programmatische Verwaltung von Anmeldeinformationen benötigen.
Erhalt von Bearer-Tokens
Tauschen Sie Ihren API-Schlüssel und das Geheimnis gegen ein Bearer-Token aus, das 24 Stunden gültig ist:
curl -X POST "https://api.smartmoneyapi.com/v1/auth/token" \
-H "Content-Type: application/json" \
-d '{
"api_key": "sk_live_1234567890",
"api_secret": "secret_abc123xyz"
}'
Token-Antwortformat
Der Endpunkt gibt ein Bearer-Token mit Metadaten zurück:
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 86400,
"refresh_token": "refresh_1234567..."
}
Verwendung von Bearer-Tokens
Fügen Sie das Token in den Authorization-Header für alle nachfolgenden Anfragen ein:
curl -X GET "https://api.smartmoneyapi.com/v1/derivatives/funding-heatmap" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Token-Aktualisierungsfluss
Wenn ein Token kurz vor dem Ablauf steht, verwenden Sie das Refresh-Token, um ein neues zu erhalten, ohne Ihr API-Geheimnis zu benötigen:
curl -X POST "https://api.smartmoneyapi.com/v1/auth/refresh" \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "refresh_1234567..."
}'
OAuth 2.0-Implementierung
OAuth 2.0 ermöglicht es Benutzern, Anwendungen Zugriff auf ihre Smart Money API-Konten zu gewähren, ohne Anmeldeinformationen zu teilen. Dies ist entscheidend für SaaS-Plattformen, Drittanbieter-Integrationen und Multi-Tenant-Anwendungen.
OAuth 2.0 Authorization Code Flow
Der Standardfluss für Webanwendungen:
- Benutzer initiiert die Anmeldung — Der Benutzer klickt auf "Mit Smart Money API verbinden"
- Weiterleitung zum Autorisierungsserver — Ihre App leitet den Benutzer zum Autorisierungsendpunkt von Smart Money weiter
- Benutzer gewährt Berechtigung — Der Benutzer überprüft die angeforderten Bereiche und gewährt Zugriff
- Autorisierungscode zurückgegeben — Der Benutzer wird mit dem Autorisierungscode zurückgeleitet
- Code gegen Token austauschen — Das Backend tauscht den Code gegen ein Zugriffstoken aus (der Code wird nie im Frontend preisgegeben)
- Token speichern — Speichern Sie das Refresh-Token sicher; verwenden Sie das Access-Token für API-Aufrufe
Schritt 1: Benutzer zum Autorisierungs-Endpoint umleiten
// URL, zu der der Benutzer umgeleitet wird
const authUrl = new URL('https://api.smartmoneyapi.com/oauth/authorize');
authUrl.searchParams.append('client_id', 'your_client_id');
authUrl.searchParams.append('redirect_uri', 'https://yourapp.com/callback');
authUrl.searchParams.append('response_type', 'code');
authUrl.searchParams.append('scope', 'whales derivatives onchain');
authUrl.searchParams.append('state', generateRandomState());
window.location.href = authUrl.toString();
Schritt 2: Callback verarbeiten und Code austauschen
// Backend verarbeitet die /callback-Route
const code = req.query.code;
const storedState = req.session.state;
const receivedState = req.query.state;
// State-Parameter überprüfen
if (storedState !== receivedState) {
throw new Error('State mismatch - CSRF-Angriff erkannt');
}
// Code gegen Token austauschen
const tokenResponse = await fetch('https://api.smartmoneyapi.com/oauth/token', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
grant_type: 'authorization_code',
code: code,
client_id: process.env.OAUTH_CLIENT_ID,
client_secret: process.env.OAUTH_CLIENT_SECRET,
redirect_uri: 'https://yourapp.com/callback'
})
});
const tokens = await tokenResponse.json();
// Tokens sicher speichern
OAuth-Berechtigungen
Fordern Sie nur die Berechtigungen an, die Ihre Anwendung benötigt. Smart Money API definiert diese Bereiche:
| Bereich |
Beschreibung |
| whales |
Zugriff auf Wallet-Tracking und Akkumulationsmetriken |
| derivatives |
Zugriff auf Futures, Perpetuals und Funding-Rate-Daten |
| onchain |
Zugriff auf On-Chain-Transaktionsflüsse und Analysen |
| alerts |
Webhook-Alerts erstellen und verwalten |
| offline |
Zugriff auf Refresh-Tokens, um neue Access-Tokens offline zu erhalten |
JWT-Token-Verwaltung
JWT (JSON Web Tokens) ermöglichen zustandslose Authentifizierung – der Server muss keine Sitzungsdaten speichern. Smart Money API verwendet RS256 (RSA-Signatur mit SHA-256) für die Token-Signierung, sodass eine Überprüfung ohne Kontakt zur API möglich ist.
JWT-Struktur
JWT-Tokens bestehen aus drei durch Punkte getrennten Teilen:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFjY3QxMjM0In0.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
// HEADER.PAYLOAD.SIGNATURE
JWT-Header
Der Header identifiziert den Algorithmus und den Token-Typ:
{
"alg": "RS256",
"typ": "JWT",
"kid": "1"
}
JWT-Payload-Ansprüche
Der Payload enthält Ansprüche (Aussagen über den Benutzer/die App):
{
"sub": "acct_1234567890",
"name": "Trading Bot",
"iat": 1703001600,
"exp": 1703088000,
"scopes": ["whales", "derivatives"],
"aud": "https://api.smartmoneyapi.com"
}
Überprüfung von JWT-Signaturen
Laden Sie den öffentlichen Schlüssel von Smart Money herunter und überprüfen Sie Tokens, bevor Sie sie akzeptieren:
const jwt = require('jsonwebtoken');
const fs = require('fs');
// Öffentlichen Schlüssel von Smart Money API abrufen
const publicKey = fs.readFileSync('smartmoney-public.pem');
// Token überprüfen
try {
const decoded = jwt.verify(token, publicKey, {
algorithms: ['RS256'],
audience: 'https://api.smartmoneyapi.com',
issuer: 'https://api.smartmoneyapi.com'
});
// Token ist gültig, dekodierte Ansprüche verwenden
} catch (err) {
// Token ungültig oder abgelaufen
}
Schlüsselrotationsstrategie
Regelmäßige Schlüsselrotation ist entscheidend für die Aufrechterhaltung der Sicherheit. Gehen Sie selbst bei perfekten Sicherheitspraktiken davon aus, dass Schlüssel kompromittiert werden können, und implementieren Sie eine systematische Rotation.
Rotationshäufigkeit
Smart Money empfiehlt unterschiedliche Rotationspläne basierend auf Schlüsseltyp und Verwendung:
| Schlüsseltyp |
Empfohlene Rotation |
Mindestrotation |
| Test-API-Schlüssel |
Monatlich |
Vierteljährlich |
| Produktions-API-Schlüssel |
Vierteljährlich |
Jährlich |
| OAuth-Refresh-Tokens |
Automatisch (nach 90 Tagen) |
Manuell (nach 180 Tagen) |
| Dienstkontoschlüssel |
Halbjährlich |
Jährlich |
Zero-Downtime-Rotationsprozess
Rotieren Sie Schlüssel ohne Dienstunterbrechung:
- Neuen Schlüssel generieren — Erstellen Sie einen neuen API-Schlüssel über das Dashboard oder die API
- Neuen Schlüssel bereitstellen — Aktualisieren Sie Anwendungsgeheimnisse in der Staging-Umgebung und testen Sie gründlich
- Schrittweise Einführung — Auf 10 % der Server bereitstellen und auf Fehler überwachen
- Vollständige Einführung — Auf verbleibende Server bereitstellen
- Verkehr überprüfen — Bestätigen, dass alle Anfragen den neuen Schlüssel verwenden
- Alten Schlüssel deaktivieren — Alten Schlüssel als inaktiv markieren, aber nicht sofort löschen
- Alten Schlüssel löschen — Nach 48 Stunden ohne Fehler endgültig löschen
Notfall-Schlüsselrotation
Wenn Sie vermuten, dass ein Schlüssel kompromittiert wurde:
// Sofortige Aktion: Kompromittierten Schlüssel deaktivieren
curl -X POST "https://api.smartmoneyapi.com/v1/keys/sk_live_xxx/revoke" \
-H "Authorization: Bearer token"
// Ersatzschlüssel sofort generieren
curl -X POST "https://api.smartmoneyapi.com/v1/keys" \
-H "Content-Type: application/json" \
-d '{
"name": "Notfall-Ersatzschlüssel"
}'
Automatisierte Rotation in Kubernetes
Verwenden Sie Kubernetes Secrets und Operatoren für die automatische Rotation:
apiVersion: batch/v1
kind: CronJob
metadata:
name: api-key-rotator
spec:
schedule: "0 0 * * 0" # Wöchentlich am Sonntag
jobTemplate:
spec:
template:
spec:
containers:
- name: rotator
image: smartmoney-key-rotator:latest
Multi-Faktor-Authentifizierung (MFA)
Für Konten mit Zugriff auf Produktionsdaten bietet MFA eine zusätzliche Sicherheitsebene, indem ein zweiter Faktor neben den Anmeldedaten erforderlich ist.
Unterstützte MFA-Methoden
- TOTP (Time-based One-Time Password) — Apps wie Google Authenticator, Authy
- WebAuthn/FIDO2 — Hardware-Sicherheitsschlüssel, Biometrie
- SMS-Einmalcodes — Weniger sicher, aber universell unterstützt
- E-Mail-Bestätigung — Bestätigungscodes an registrierte E-Mail gesendet
Aktivierung von TOTP für Kontozugriff
// Schritt 1: MFA-Einrichtung anfordern
curl -X POST "https://api.smartmoneyapi.com/v1/account/mfa/enable" \
-H "Authorization: Bearer token"
// Antwort enthält QR-Code-URL
{
"qr_code_url": "https://...",
"secret": "JBSWY3DPEBLW64TMMQ...",
"backup_codes": ["12345678", ...]
}
MFA während API-Operationen
Einige Operationen erfordern möglicherweise eine MFA-Bestätigung auch nach der Authentifizierung:
// Versuch einer sensiblen Operation (Schlüsselrotation)
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Token: mfa_challenge_abc123"
// Antwort: MFA erforderlich
{
"error": "mfa_required",
"mfa_token": "mfa_xyz789"
}
// Erneut mit TOTP-Code versuchen
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Code: 123456"
Sicherheits-Best Practices
Authentifizierung ist nur so stark wie ihre Implementierung. Befolgen Sie diese Praktiken, um die Sicherheit zu gewährleisten:
Geheimnisverwaltung
- Geheimnisse niemals in die Versionskontrolle einbinden — Verwenden Sie .env-Dateien mit .gitignore
- Umgebungsvariablen verwenden — Aus sicheren Geheimnisverwaltungssystemen laden
- Repositorys scannen — Verwenden Sie Tools wie TruffleHog, detect-secrets, um offengelegte Schlüssel zu finden
- Zugriffsprotokolle überprüfen — Überwachen, wer auf Geheimnisse zugegriffen hat und wann
Transportsicherheit
- Immer HTTPS verwenden — Anmeldedaten niemals über unverschlüsselte Verbindungen senden
- SSL-Zertifikate überprüfen — Zertifikatsvalidierung in der Produktion nicht deaktivieren
- Zertifikats-Pinning verwenden — Für mobile Apps, um MITM-Angriffe zu verhindern
- TLS 1.2+ erzwingen — Ältere Protokolle deaktivieren
Anmeldedatenbehandlung
- Geheimnisse hashen — Bcrypt- oder Argon2-Hashes speichern, niemals Klartext
- Lebensdauer minimieren — Anmeldedaten nur so lange im Speicher behalten wie nötig
- Sensible Daten löschen — Anmeldedaten nach Gebrauch explizit überschreiben
- Sichere Bibliotheken verwenden — Kryptografie nicht selbst implementieren
Protokollierung und Überwachung
- Anmeldedaten niemals protokollieren — Schlüssel in Protokollen schwärzen, Protokollmaskierung verwenden
- Authentifizierungsereignisse protokollieren — Erfolgreiche und fehlgeschlagene Anmeldeversuche verfolgen
- Auf Anomalien überwachen — Bei ungewöhnlichen Zugriffsmustern alarmieren
- Schlüsselverwendung überprüfen — Verfolgen, welche Schlüssel auf welche Daten zugegriffen haben
Unternehmensauthentifizierungsmuster
Große Organisationen benötigen oft zusätzliche Sicherheitskontrollen und Compliance-Fähigkeiten.
SAML 2.0-Integration
Für Unternehmenskunden unterstützt Smart Money API die SAML 2.0-Integration mit dem Identitätsanbieter Ihrer Organisation (Okta, Azure AD usw.):
- Single Sign-On (SSO) — Benutzer authentifizieren sich über Ihren Corporate IdP
- Automatische Bereitstellung — Konten basierend auf Gruppenmitgliedschaft erstellen/deaktivieren
- Erzwingung — SAML für alle Benutzerzugriffe erforderlich
IP-Whitelisting
Beschränken Sie den API-Zugriff auf bestimmte IP-Adressen oder CIDR-Bereiche:
// IP zur Whitelist hinzufügen
curl -X POST "https://api.smartmoneyapi.com/v1/account/ip-whitelist" \
-H "Authorization: Bearer token" \
-d '{
"cidr": "203.0.113.0/24",
"description": "Produktionsserver"
}'
Prüfprotokollierung und Compliance
Enterprise-Pläne enthalten umfassende Prüfprotokolle für Compliance:
| Ereignis |
Protokollierte Daten |
| Authentifizierung |
Benutzer, Zeitstempel, Erfolg/Misserfolg, IP, MFA-Status |
| Schlüsseloperationen |
Schlüssel-ID, Aktion, Initiator, Zeitstempel |
| Kontoänderungen |
Was geändert wurde, wer es geändert hat, Zeitstempel, Vorher/Nachher-Werte |
| Datenzugriff |
Benutzer, Endpunkt, Berechtigungen, Zeitstempel, Datensatzanzahl |
Behebung von Authentifizierungsproblemen
Fehler: Ungültiger API-Schlüssel
Problem: Erhalte "401 Unauthorized - Invalid API Key"
Lösungen:
- Überprüfen Sie das Schlüsselformat (sollte mit sk_test_ oder sk_live_ beginnen)
- Prüfen Sie auf Leerzeichen am Anfang/Ende des Schlüssels
- Bestätigen Sie, dass der Schlüssel nicht deaktiviert oder ausgetauscht wurde
- Stellen Sie sicher, dass Sie die richtige Umgebung verwenden (Testschlüssel für Test, Live für Produktion)
- Überprüfen Sie, ob die API-Schlüsselberechtigungen den Endpunktanforderungen entsprechen
Fehler: Token abgelaufen
Problem: Bearer-Token abgelaufen, Anfragen schlagen fehl
Lösungen:
- Verwenden Sie das Refresh-Token, um ein neues Zugriffstoken zu erhalten
- Implementieren Sie eine automatische Token-Aktualisierung 5 Minuten vor Ablauf
- Bewahren Sie das Refresh-Token sicher auf (nicht in localStorage für SPAs)
- Behandeln Sie 401-Antworten durch Versuch des Refresh-Token-Flows
CORS/Preflight-Fehler
Problem: Browser blockiert Anfragen mit CORS-Fehler
Lösungen:
- API-Aufrufe von Browsern müssen von zugelassenen Ursprüngen stammen
- Fügen Sie Ihre Domain über das Dashboard hinzu: Einstellungen → CORS-Origins
- Browser sendet automatisch OPTIONS-Preflight-Anfrage
- Für die Entwicklung verwenden Sie localhost:3000 oder ähnliches
MFA-Challenge wird nicht abgeschlossen
Problem: Operationen, die MFA erfordern, schlagen trotz korrektem Code fehl
Lösungen:
- Stellen Sie sicher, dass die Serveruhr synchronisiert ist (TOTP basiert auf Zeit)
- Code ist nur 30 Sekunden gültig, generieren Sie einen neuen
- Verwenden Sie Backup-Codes, wenn die Authenticator-App nicht verfügbar ist
- Kontowiederherstellung über registrierte E-Mail möglich
Implementieren Sie noch heute sichere Authentifizierung
Smart Money API unterstützt unternehmensweite Authentifizierung mit OAuth 2.0, JWT, MFA und SAML-Integration. Sichern Sie Ihre API-Integration mit branchenüblichen Best Practices.
Enterprise-Pläne anzeigen
Benötigen Sie SAML, IP-Whitelisting oder dedizierten Support? Kontaktieren Sie unser Vertriebsteam.