Pokročilé metody ověřování — OAuth 2.0, JWT, Rotace klíčů

Osvojte si sofistikované mechanismy ověřování pro integraci Smart Money API v podnikových prostředích. Naučte se OAuth 2.0 toky, vzory JWT tokenů, bezpečnou rotaci klíčů a implementaci vícefaktorového ověřování.

Publikováno 21. března 2026 18 minut čtení Pokročilé

Přehled ověřování

Smart Money API podporuje více metod ověřování, které jsou navrženy tak, aby vyhovovaly různým architekturám aplikací, bezpečnostním požadavkům a organizačním politikám. Porozumění těmto vzorcům zajišťuje, že vaše integrace bude jak bezpečná, tak výkonná.

Ověřování v Smart Money API funguje ve třech hlavních vrstvách:

  • API klíče — Jednoduché ověřování pomocí bearer tokenu pro vývoj a přímé integrace
  • JWT tokeny — Stavově nezávislé, kryptograficky podepsané tokeny pro distribuované systémy a mikroslužby
  • OAuth 2.0 — Framework delegovaného autorizačního rámce pro integrace třetích stran a SaaS aplikace

Bezpečnostní princip: Nikdy nezveřejňujte přihlašovací údaje v klientském kódu, logech, verzovacích systémech nebo chybových zprávách. Implementujte rotaci přihlašovacích údajů podle plánu a okamžitě při kompromitaci.

Každá metoda má své výhody. API klíče jsou nejvhodnější pro komunikaci mezi backendy, kde je úložiště přihlašovacích údajů pod kontrolou. JWT tokeny vynikají v distribuovaných architekturách, kde není k dispozici sdílený stav. OAuth 2.0 poskytuje uživatelsky delegovaný přístup pro aplikace třetích stran.

Ověřování pomocí API klíče

API klíče jsou nejjednodušším mechanismem ověřování — jsou to náhodné řetězce generované pro váš účet, které identifikují vaši aplikaci v Smart Money API. Každý požadavek musí obsahovat váš API klíč buď jako hlavičku, nebo parametr dotazu.

API klíč v hlavičce

Doporučený přístup je předání API klíče v hlavičce Authorization pomocí schématu Bearer:

Příklad curl
curl -X GET "https://api.smartmoneyapi.com/v1/whales/btc" \
-H "Authorization: Bearer sk_live_1234567890abcdef" \
-H "Accept: application/json"

API klíč jako parametr dotazu

Pro WebSocket připojení nebo když nelze upravit hlavičky, předejte API klíč jako parametr dotazu:

WebSocket připojení
ws://localhost:8877/ws?api_key=sk_live_1234567890abcdef
// Naváže ověřený WebSocket stream

Vlastnosti API klíče

Vlastnost Popis
Formát 128-znakový hexadecimální řetězec s předponou sk_test_ nebo sk_live_
Rozsah Zdědí všechna oprávnění účtu, který jej vytvořil
Platnost Nikdy nevyprší automaticky; musí být ručně rotován
Rotace Vygenerujte nový klíč, migrujte provoz a poté deaktivujte starý klíč
Limity rychlosti Sdílené napříč všemi požadavky používající stejný klíč

Bezpečnostní postupy pro API klíče

  • Proměnné prostředí — Ukládejte klíče do souborů .env (necommitované do verzovacího systému) a načítávejte je za běhu
  • Systémy trezorů — Používejte HashiCorp Vault, AWS Secrets Manager nebo Azure Key Vault v produkci
  • Oddělené klíče — Udržujte oddělené testovací a produkční klíče; testovací klíče často rotujte
  • Minimální rozsah — Vytvářejte oddělené klíče pro různé integrace, kdykoli je to možné
  • Auditování logů — Logujte všechny události vytváření a používání API klíčů
Získejte svůj API klíč za 30 sekund

Připraveni stavět? Získejte zdarma API klíč (200 volání/den, bez karty) a začněte stahovat živá data o velrybách, financování a on-chain datech.

Získejte svůj API klíč →

Bearer Token Pattern

Bearer tokeny rozšiřují jednoduchý koncept API klíče přidáním kontextu, expirace a mechanismů obnovení. Jsou ideální pro aplikace, které potřebují programové řízení přihlašovacích údajů.

Získání Bearer tokenů

Vyměňte svůj API klíč a tajný klíč za bearer token platný 24 hodin:

GET /auth/token
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"
}'

Formát odpovědi tokenu

Endpoint vrátí bearer token s metadaty:

Odpověď
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 86400,
"refresh_token": "refresh_1234567..."
}

Používání Bearer tokenů

Zahrňte token do hlavičky Authorization pro všechny následující požadavky:

Ověřený požadavek
curl -X GET "https://api.smartmoneyapi.com/v1/derivatives/funding-heatmap" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Tok obnovení tokenu

Když se token blíží expiraci, použijte refresh token k získání nového bez nutnosti zadání API tajného klíče:

POST /auth/refresh
curl -X POST "https://api.smartmoneyapi.com/v1/auth/refresh" \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "refresh_1234567..."
}'

Implementace OAuth 2.0

OAuth 2.0 umožňuje uživatelům udělit aplikacím přístup k jejich účtům Smart Money API bez sdílení přihlašovacích údajů. To je nezbytné pro SaaS platformy, integrace třetích stran a víceklientské aplikace.

Tok autorizačního kódu OAuth 2.0

Standardní tok pro webové aplikace:

  1. Uživatel zahájí přihlášení — Uživatel klikne na "Připojit se pomocí Smart Money API"
  2. Přesměrování na autorizační server — Vaše aplikace přesměruje uživatele na autorizační endpoint Smart Money
  3. Uživatel udělí oprávnění — Uživatel zkontroluje požadované rozsahy a udělí přístup
  4. Vrácení autorizačního kódu — Uživatel je přesměrován zpět s autorizačním kódem
  5. Výměna kódu za token — Backend vymění kód za přístupový token (kód není nikdy vystaven frontendu)
  6. Uložení tokenu — Uchovávejte obnovovací token bezpečně; pro volání API používejte přístupový token

Krok 1: Přesměrujte uživatele na autorizační endpoint

Přesměrování z frontendu
// URL pro přesměrování uživatele
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();

Krok 2: Zpracování callbacku a výměna kódu

Výměna kódu na backendu
// Backend zpracovává route /callback
const code = req.query.code;
const storedState = req.session.state;
const receivedState = req.query.state;
// Ověření parametru state
if (storedState !== receivedState) {
throw new Error('State mismatch - CSRF attack detected');
}
// Výměna kódu za token
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();
// Uchovávejte tokeny bezpečně

OAuth Scopes

Požadujte pouze scopy, které vaše aplikace potřebuje. Smart Money API definuje tyto scopy:

Scope Popis
whales Přístup k sledování peněženek velryb a metrikám akumulace
derivatives Přístup k datům futures, perpetuals a funding rate
onchain Přístup k on-chain transakčním tokům a analýzám
alerts Vytváření a správa webhookových upozornění
offline Přístup k obnovovacím tokenům pro získání nových přístupových tokenů offline

JWT Token Management

JWT (JSON Web Tokens) poskytují bezstavovou autentizaci – server nepotřebuje ukládat session data. Smart Money API používá RS256 (RSA Signature with SHA-256) pro podepisování tokenů, což umožňuje ověření bez kontaktu s API.

JWT Structure

JWT tokeny se skládají ze tří částí oddělených tečkami:

JWT Format
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFjY3QxMjM0In0.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
// HEADER.PAYLOAD.SIGNATURE

JWT Header

Hlavička identifikuje algoritmus a typ tokenu:

Decoded Header
{
"alg": "RS256",
"typ": "JWT",
"kid": "1"
}

JWT Payload Claims

Payload obsahuje claims (tvrzení o uživateli/aplikaci):

Decoded Payload
{
"sub": "acct_1234567890",
"name": "Trading Bot",
"iat": 1703001600,
"exp": 1703088000,
"scopes": ["whales", "derivatives"],
"aud": "https://api.smartmoneyapi.com"
}

Verifying JWT Signatures

Stáhněte si veřejný klíč Smart Money a ověřte tokeny před jejich přijetím:

Node.js Verification
const jwt = require('jsonwebtoken');
const fs = require('fs');
// Get public key from Smart Money API
const publicKey = fs.readFileSync('smartmoney-public.pem');
// Verify token
try {
const decoded = jwt.verify(token, publicKey, {
algorithms: ['RS256'],
audience: 'https://api.smartmoneyapi.com',
issuer: 'https://api.smartmoneyapi.com'
});
// Token is valid, use decoded claims
} catch (err) {
// Token invalid or expired
}

Key Rotation Strategy

Pravidelná rotace klíčů je klíčová pro udržení bezpečnosti. I při dokonalých bezpečnostních postupech předpokládejte, že klíče mohou být kompromitovány, a implementujte systematickou rotaci.

Rotation Frequency

Smart Money doporučuje různé plány rotace podle typu klíče a použití:

Key Type Doporučená rotace Minimální rotace
Test API Keys Měsíčně Čtvrtletně
Production API Keys Čtvrtletně Ročně
OAuth Refresh Tokens Automaticky (po 90 dnech) Ručně (po 180 dnech)
Service Account Keys Pololetně Ročně

Zero-Downtime Rotation Process

Rotujte klíče bez přerušení služby:

  1. Generate New Key — Vytvořte nový API klíč přes dashboard nebo API
  2. Deploy New Key — Aktualizujte tajné klíče aplikace ve stagingu, důkladně otestujte
  3. Gradual Rollout — Nasazení na 10 % serverů, sledování chyb
  4. Úplné nasazení — Nasazení na zbývající servery
  5. Ověření provozu — Potvrďte, že všechny požadavky používají nový klíč
  6. Deaktivace starého klíče — Označte starý klíč jako neaktivní, ale neodstraňujte jej okamžitě
  7. Smazání starého klíče — Po 48 hodinách bez chyb trvale smažte

Nouzová rotace klíčů

Pokud máte podezření, že klíč byl ohrožen:

Nouzová rotace
// Okamžitá akce: Deaktivujte ohrožený klíč
curl -X POST "https://api.smartmoneyapi.com/v1/keys/sk_live_xxx/revoke" \
-H "Authorization: Bearer token"
// Okamžitě vygenerujte náhradní klíč
curl -X POST "https://api.smartmoneyapi.com/v1/keys" \
-H "Content-Type: application/json" \
-d '{
"name": "Nouzový náhradní klíč"
}'

Automatizovaná rotace v Kubernetes

Použijte Kubernetes Secrets a operátory pro automatickou rotaci:

CronJob pro rotaci klíčů
apiVersion: batch/v1
kind: CronJob
metadata:
name: api-key-rotator
spec:
schedule: "0 0 * * 0" # Týdně v neděli
jobTemplate:
spec:
template:
spec:
containers:
- name: rotator
image: smartmoney-key-rotator:latest

Vícefaktorová autentizace (MFA)

Pro účty přistupující k produkčním datům poskytuje MFA další vrstvu zabezpečení vyžadováním druhého faktoru kromě přihlašovacích údajů.

Podporované metody MFA

  • TOTP (Time-based One-Time Password) — Aplikace jako Google Authenticator, Authy
  • WebAuthn/FIDO2 — Hardwarové bezpečnostní klíče, biometrie
  • Jednorázové kódy přes SMS — Méně bezpečné, ale univerzálně podporované
  • Potvrzení e-mailem — Potvrzovací kódy zaslané na registrovaný e-mail

Povolení TOTP pro přístup k účtu

Povolit MFA
// Krok 1: Požádejte o nastavení MFA
curl -X POST "https://api.smartmoneyapi.com/v1/account/mfa/enable" \
-H "Authorization: Bearer token"
// Odpověď obsahuje URL QR kódu
{
"qr_code_url": "https://...",
"secret": "JBSWY3DPEBLW64TMMQ...",
"backup_codes": ["12345678", ...]
}

MFA během API operací

Některé operace mohou vyžadovat potvrzení MFA i po autentizaci:

MFA výzva
// Pokus o citlivou operaci (rotace klíče)
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Token: mfa_challenge_abc123"
// Odpověď: Vyžadováno MFA
{
"error": "mfa_required",
"mfa_token": "mfa_xyz789"
}
// Opakujte s TOTP kódem
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Code: 123456"

Doporučené postupy zabezpečení

Autentizace je pouze tak silná, jako její implementace. Dodržujte tyto postupy pro udržení zabezpečení:

Správa tajemství

  • Nikdy neukládejte tajemství do verzovacího systému — Používejte .env soubory s .gitignore
  • Používejte proměnné prostředí — Načtěte ze zabezpečených systémů pro správu tajemství
  • Prohledávejte repozitáře — Používejte nástroje jako TruffleHog, detect-secrets k nalezení odhalených klíčů
  • Audit přístupových logů — Sledujte, kdo přistupoval k tajemstvím a kdy

Zabezpečení přenosu

  • Vždy používejte HTTPS — Nikdy neposílejte přihlašovací údaje přes nešifrovaná spojení
  • Ověřujte SSL certifikáty — Nevypínejte ověřování certifikátů v produkci
  • Používejte připínání certifikátů — Pro mobilní aplikace zabraňte útokům MITM
  • Vynucujte TLS 1.2+ — Zakázat starší protokoly

Zpracování přihlašovacích údajů

  • Hashujte tajemství — Ukládejte bcrypt nebo Argon2 hashe, nikdy prostý text
  • Minimalizujte životnost — Uchovávejte přihlašovací údaje v paměti pouze tak dlouho, jak je potřeba
  • Vymažte citlivá data — Explicitně přepište přihlašovací údaje po použití
  • Používejte zabezpečené knihovny — Neimplementujte kryptografii sami

Logování a monitorování

  • Nikdy nelogujte přihlašovací údaje — Redigujte klíče v logách, používejte maskování logů
  • Logujte autentizační události — Sledujte úspěšné a neúspěšné pokusy o přihlášení
  • Monitorujte anomálie — Upozorněte na neobvyklé vzorce přístupu
  • Audit využití klíčů — Sledujte, které klíče přistupovaly k jakým datům

Podnikové vzorce autentizace

Velké organizace často vyžadují další bezpečnostní kontroly a schopnosti dodržování předpisů.

Integrace SAML 2.0

Pro podnikové zákazníky podporuje Smart Money API integraci SAML 2.0 s poskytovatelem identity vaší organizace (Okta, Azure AD atd.):

  • Jednotné přihlašování (SSO) — Uživatelé se přihlašují přes vaše podnikové IdP
  • Automatické zřizování — Vytvářejte/deaktivujte účty na základě členství ve skupinách
  • Vynucování — Vyžadujte SAML pro veškerý přístup uživatelů

Whitelistování IP adres

Omezte přístup k API na konkrétní IP adresy nebo rozsahy CIDR:

Správa seznamu povolených IP adres
// Přidání IP adresy do seznamu povolených
curl -X POST "https://api.smartmoneyapi.com/v1/account/ip-whitelist" \
-H "Authorization: Bearer token" \
-d '{
"cidr": "203.0.113.0/24",
"description": "Produkční servery"
}'

Protokolování auditu a dodržování předpisů

Podnikové plány zahrnují komplexní protokoly auditu pro dodržování předpisů:

Událost Protokolovaná data
Autentizace Uživatel, časové razítko, úspěch/neúspěch, IP, stav MFA
Klíčové operace ID klíče, akce, iniciátor, časové razítko
Změny účtu Co se změnilo, kdo to změnil, časové razítko, hodnoty před/po
Přístup k datům Uživatel, endpoint, rozsahy, časové razítko, počet záznamů

Řešení problémů s autentizací

Chyba neplatného API klíče

Problém: Obdržení "401 Unauthorized - Invalid API Key"

Řešení:

  • Ověřte formát klíče (měl by začínat sk_test_ nebo sk_live_)
  • Zkontrolujte koncové/úvodní mezery v klíči
  • Potvrďte, že klíč nebyl deaktivován nebo obměněn
  • Ověřte, že používáte správné prostředí (testovací klíč pro test, živý pro produkci)
  • Zkontrolujte, zda oprávnění API klíče odpovídají požadavkům endpointu

Chyba vypršení platnosti tokenu

Problém: Bearer token vypršel, požadavky selhávají

Řešení:

  • Použijte obnovovací token k získání nového přístupového tokenu
  • Implementujte automatické obnovení tokenu 5 minut před vypršením platnosti
  • Uchovávejte obnovovací token bezpečně (ne v localStorage pro SPA)
  • Zpracujte odpovědi 401 pokusem o tok obnovovacího tokenu

Chyby CORS/Preflight

Problém: Prohlížeč blokuje požadavky s chybou CORS

Řešení:

  • Volání API z prohlížečů musí pocházet z povolených zdrojů
  • Přidejte svou doménu přes dashboard: Nastavení → CORS Origins
  • Prohlížeč automaticky odesílá OPTIONS preflight požadavek
  • Pro vývoj použijte localhost:3000 nebo podobné

MFA výzva se nedokončí

Problém: Operace vyžadující MFA selhávají i se správným kódem

Řešení:

  • Ujistěte se, že serverový čas je synchronizován (TOTP závisí na čase)
  • Kód je platný pouze 30 sekund, vygenerujte nový
  • Použijte záložní kódy, pokud není dostupná autentizační aplikace
  • Obnovení účtu je k dispozici přes registrovaný e-mail

Implementujte zabezpečenou autentizaci ještě dnes

Smart Money API podporuje podnikovou autentizaci s OAuth 2.0, JWT, MFA a integrací SAML. Zabezpečte svou integraci API pomocí osvědčených postupů v oboru.

Zobrazit podnikové plány
Potřebujete SAML, whitelisting IP nebo vyhrazenou podporu? Kontaktujte náš prodejní tým.

Související zdroje

Začněte zdarma — 200 volání/den, bez karty

Získejte živá data o toku velryb, financování, otevřeném zájmu a on-chain datech napříč 3 burzami z jednoho API. Volná úroveň, bez kreditní karty, upgrade kdykoli.

Začněte zdarma →
Vyzkoušejte živou API konzoli → (účet není potřeba)