תבניות אימות מתקדמות — OAuth 2.0, JWT, רוטציית מפתחות

שלוט במנגנוני אימות מתוחכמים לשילוב Smart Money API בסביבות ארגוניות. למד זרימות OAuth 2.0, תבניות אסימוני JWT, רוטציית מפתחות מאובטחת ויישום אימות רב-שלבי.

פורסם ב-21 במרץ 2026 18 דקות קריאה מתקדם

סקירת אימות

Smart Money API תומך במספר שיטות אימות המותאמות לארכיטקטורות יישומים שונות, דרישות אבטחה ומדיניות ארגונית. הבנת תבניות אלו מבטיחה שהאינטגרציה שלך תהיה מאובטחת וביצועית.

אימות ב-Smart Money API פועל בשלוש שכבות עיקריות:

  • מפתחות API — אימות אסימון Bearer פשוט לפיתוח ואינטגרציות ישירות
  • אסימוני JWT — אסימונים חסרי מצב, חתומים קריפטוגרפית למערכות מבוזרות ומיקרו-שירותים
  • OAuth 2.0 — מסגרת הרשאה מואצלת לאינטגרציות צד שלישי ויישומי SaaS

עקרון אבטחה: לעולם אל תחשף פרטי אימות בקוד צד לקוח, יומנים, בקרת גרסאות או הודעות שגיאה. יישם רוטציית פרטי אימות על פי לוח זמנים ומיידית במקרה של פגיעה.

לכל שיטה יש יתרונות ייחודיים. מפתחות API עובדים הכי טוב לתקשורת בין שרתים כאשר אחסון הפרטים נמצא בשליטה. אסימוני JWT מצטיינים בארכיטקטורות מבוזרות שבהן אין מצב משותף. OAuth 2.0 מספק גישה מואצלת למשתמשים עבור יישומי צד שלישי.

אימות באמצעות מפתח API

מפתחות API הם מנגנון האימות הפשוט ביותר — הם מחרוזות אקראיות שנוצרו עבור החשבון שלך שמזהה את היישום שלך ב-Smart Money API. כל בקשה חייבת לכלול את מפתח ה-API שלך ככותרת או פרמטר שאילתה.

מפתח API מבוסס כותרת

הגישה המומלצת היא להעביר את מפתח ה-API בכותרת Authorization באמצעות סכמת Bearer:

דוגמת curl
curl -X GET "https://api.smartmoneyapi.com/v1/whales/btc" \
-H "Authorization: Bearer sk_live_1234567890abcdef" \
-H "Accept: application/json"

מפתח API כפרמטר שאילתה

לחיבורי WebSocket או כאשר לא ניתן לשנות כותרות, העבר את מפתח ה-API כפרמטר שאילתה:

חיבור WebSocket
ws://localhost:8877/ws?api_key=sk_live_1234567890abcdef
// מקים זרם WebSocket מאומת

מאפיינים של מפתח API

מאפיין תיאור
פורמט מחרוזת hex באורך 128 תווים עם קידומת sk_test_ או sk_live_
היקף יורש את כל ההרשאות של החשבון שיצר אותו
תפוגה לא פג תוקף באופן אוטומטי; חייב להיות מוחלף ידנית
רוטציה צור מפתח חדש, העבר תעבורה, ולאחר מכן השבת את המפתח הישן
מגבלות קצב משותף לכל הבקשות המשתמשות באותו מפתח

שיטות עבודה מומלצות לאבטחת מפתח API

  • משתני סביבה — אחסן מפתחות בקובצי .env (לא מועברים לבקרת גרסאות) וטען בזמן ריצה
  • מערכות כספות — השתמשו ב-HashiCorp Vault, AWS Secrets Manager, או Azure Key Vault בסביבת production
  • מפתחות נפרדים — שמרו על מפתחות נפרדים לסביבת test ו-production; החליפו מפתחות test בתדירות גבוהה
  • היקף מינימלי — צרו מפתחות נפרדים לאינטגרציות שונות כאשר אפשרי
  • רישום ביקורת — רשמו את כל אירועי יצירת ושימוש במפתחות API
קבלו את מפתח ה-API שלכם תוך 30 שניות

מוכנים לבנות? קבלו מפתח API בחינם (100 קריאות/יום, ללא כרטיס) והתחילו למשוך נתוני ליווייתנים, מימון ושרשרת בזמן אמת.

קבלו את מפתח ה-API שלכם →

דפוס אסימון Bearer

אסימוני Bearer מרחיבים את רעיון מפתח ה-API הפשוט על ידי הוספת הקשר, תפוגה ומנגנוני רענון. הם אידיאליים ליישומים הזקוקים לניהול אישורים תכנותי.

קבלת אסימוני Bearer

החליפו את מפתח ה-API והסוד שלכם באסימון bearer תקף ל-24 שעות:

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"
}'

פורמט תגובת אסימון

הנקודה הסופית מחזירה אסימון bearer עם מטא-נתונים:

תגובה
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 86400,
"refresh_token": "refresh_1234567..."
}

שימוש באסימוני Bearer

כללו את האסימון בכותרת Authorization לכל הבקשות הבאות:

בקשה מאושרת
curl -X GET "https://api.smartmoneyapi.com/v1/derivatives/funding-heatmap" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

זרימת רענון אסימון

כאשר אסימון מתקרב לתפוגה, השתמשו באסימון הרענון כדי לקבל אחד חדש ללא צורך בסוד ה-API שלכם:

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

יישום OAuth 2.0

OAuth 2.0 מאפשר למשתמשים להעניק ליישומים גישה לחשבונות Smart Money API שלהם מבלי לשתף אישורים. זה חיוני עבור פלטפורמות SaaS, אינטגרציות צד שלישי ויישומים מרובי דיירים.

זרימת קוד הרשאה של OAuth 2.0

הזרימה הסטנדרטית עבור יישומי אינטרנט:

  1. משתמש מתחיל התחברות — המשתמש לוחץ על "התחבר עם Smart Money API"
  2. הפניה לשרת הרשאה — היישום שלכם מפנה את המשתמש לנקודת הסיום של ההרשאה של Smart Money
  3. משתמש מעניק הרשאה — המשתמש סוקר את היקפי הגישה המבוקשים ומעניק גישה
  4. קוד הרשאה מוחזר — המשתמש מופנה בחזרה עם קוד הרשאה
  5. החלפת קוד באסימון — השרת האחורי מחליף את הקוד באסימון גישה (הקוד לעולם לא נחשף לחזית)
  6. אחסון אסימון — אחסן את טוקן הרענון בצורה מאובטחת; השתמש בטוקן הגישה לביצוע קריאות API

שלב 1: הפנה את המשתמש לנקודת הסמכה

הפניה מצד הלקוח
// כתובת URL להפניה של המשתמש
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();

שלב 2: טפל בקריאה החוזרת והחלף את הקוד

החלפת קוד בצד השרת
// השרת מטפל בנתיב /callback
const code = req.query.code;
const storedState = req.session.state;
const receivedState = req.query.state;
// ודא את פרמטר ה-state
if (storedState !== receivedState) {
throw new Error('State mismatch - CSRF attack detected');
}
// החלף את הקוד לטוקן
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();
// אחסן את הטוקנים בצורה מאובטחת

היקפי OAuth

בקש רק את ההיקפים שהאפליקציה שלך צריכה. Smart Money API מגדיר את ההיקפים הבאים:

היקף תיאור
whales גישה למעקב אחר ארנקים של לווייתנים ומדדי הצטברות
derivatives גישה לנתוני חוזים עתידיים, חוזים תמידיים ושיעורי מימון
onchain גישה לזרמי עסקאות וניתוחים על שרשרת
alerts צור ונהל התראות דרך webhook
offline גישה לטוקני רענון לקבלת טוקני גישה ללא חיבור לרשת

ניהול טוקני JWT

JWT (JSON Web Tokens) מספקים אימות ללא מצב—השרת לא צריך לאחסן נתוני סשן. Smart Money API משתמש ב-RS256 (חתימת RSA עם SHA-256) לחתימת טוקנים, ומאפשר אימות ללא צורך ליצור קשר עם ה-API.

מבנה JWT

טוקני JWT מורכבים משלושה חלקים המופרדים בנקודות:

פורמט JWT
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFjY3QxMjM0In0.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
// HEADER.PAYLOAD.SIGNATURE

כותרת JWT

הכותרת מזהה את האלגוריתם וסוג הטוקן:

כותרת מפוענחת
{
"alg": "RS256",
"typ": "JWT",
"kid": "1"
}

טענות ה-Payload של JWT

ה-payload מכיל טענות (הצהרות על המשתמש/אפליקציה):

Payload מפוענח
{
"sub": "acct_1234567890",
"name": "Trading Bot",
"iat": 1703001600,
"exp": 1703088000,
"scopes": ["whales", "derivatives"],
"aud": "https://api.smartmoneyapi.com"
}

אימות חתימות JWT

הורד את המפתח הציבורי של Smart Money ואימות את הטוקנים לפני קבלתם:

אימות ב-Node.js
const jwt = require('jsonwebtoken');
const fs = require('fs');
// קבל את המפתח הציבורי מ-Smart Money API
const publicKey = fs.readFileSync('smartmoney-public.pem');
// אימות את הטוקן
try {
const decoded = jwt.verify(token, publicKey, {
algorithms: ['RS256'],
audience: 'https://api.smartmoneyapi.com',
issuer: 'https://api.smartmoneyapi.com'
});
// הטוקן תקף, השתמש בטענות המפוענחות
} catch (err) {
// הטוקן לא תקף או שפג תוקפו
}

אסטרטגיית סיבוב מפתחות

סיבוב מפתחות באופן קבוע הוא קריטי לשמירה על אבטחה. גם עם פרקטיקות אבטחה מושלמות, הנח שמפתחות יכולים להיפגע ויישם סיבוב שיטתי.

תדירות סיבוב

Smart Money ממליץ על לוחות זמנים שונים לסיבוב בהתאם לסוג המפתח והשימוש:

סוג מפתח סיבוב מומלץ סיבוב מינימלי
מפתחות API לבדיקה חודשי רבעוני
מפתחות API לייצור רבעוני שנתי
טוקני רענון OAuth אוטומטי (לאחר 90 יום) ידני (לאחר 180 יום)
מפתחות חשבון שירות חצי שנתי שנתי

תהליך סיבוב ללא זמן השבתה

סובב מפתחות ללא הפרעה לשירות:

  1. צור מפתח חדש — צור מפתח API חדש דרך לוח הבקרה או ה-API
  2. פרוס מפתח חדש — עדכן את הסודות באפליקציה בסביבת סטייג'ינג, בדוק היטב
  3. הטלה הדרגתית — פרוס ל-10% מהשרתים, עקוב אחר שגיאות
  4. הטמעה מלאה — פריסה לשרתים הנותרים
  5. אימות תעבורה — וידוא שכל הבקשות משתמשות במפתח החדש
  6. השבתת מפתח ישן — סימון המפתח הישן כלא פעיל אך ללא מחיקה מיידית
  7. מחיקת מפתח ישן — לאחר 48 שעות ללא שגיאות, מחיקה לצמיתות

החלפת מפתח חירום

אם אתה חושד שהמפתח נפרץ:

החלפת חירום
// פעולה מיידית: השבתת המפתח שנפרץ
curl -X POST "https://api.smartmoneyapi.com/v1/keys/sk_live_xxx/revoke" \
-H "Authorization: Bearer token"
// יצירת מפתח חלופי מיידית
curl -X POST "https://api.smartmoneyapi.com/v1/keys" \
-H "Content-Type: application/json" \
-d '{
"name": "מפתח חלופי לחירום"
}'

החלפה אוטומטית ב-Kubernetes

השתמשו ב-Secrets וב-operators של Kubernetes להחלפה אוטומטית:

CronJob להחלפת מפתחות
apiVersion: batch/v1
kind: CronJob
metadata:
name: api-key-rotator
spec:
schedule: "0 0 * * 0" # שבועי ביום ראשון
jobTemplate:
spec:
template:
spec:
containers:
- name: rotator
image: smartmoney-key-rotator:latest

אימות רב-גורמי (MFA)

לחשבונות עם גישה לנתוני ייצור, MFA מספק שכבת אבטחה נוספת על ידי דרישת גורם שני מעבר לפרטי ההתחברות.

שיטות MFA נתמכות

  • TOTP (סיסמה חד-פעמית מבוססת זמן) — אפליקציות כמו Google Authenticator, Authy
  • WebAuthn/FIDO2 — מפתחות אבטחה חומרתיים, ביומטריה
  • קודים חד-פעמיים ב-SMS — פחות מאובטח אך נתמך באופן אוניברסלי
  • אימות אימייל — קודי אימות נשלחים לכתובת האימייל הרשומה

הפעלת TOTP לגישת חשבון

הפעלת MFA
// שלב 1: בקשת הגדרת MFA
curl -X POST "https://api.smartmoneyapi.com/v1/account/mfa/enable" \
-H "Authorization: Bearer token"
// התגובה כוללת כתובת URL של קוד QR
{
"qr_code_url": "https://...",
"secret": "JBSWY3DPEBLW64TMMQ...",
"backup_codes": ["12345678", ...]
}

MFA במהלך פעולות API

חלק מהפעולות עשויות לדרוש אימות MFA גם לאחר ההתחברות:

אתגר MFA
// ניסיון לבצע פעולה רגישה (החלפת מפתח)
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Token: mfa_challenge_abc123"
// תגובה: נדרש MFA
{
"error": "mfa_required",
"mfa_token": "mfa_xyz789"
}
// ניסיון חוזר עם קוד TOTP
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Code: 123456"

שיטות עבודה מומלצות לאבטחה

אימות חזק רק כמו היישום שלו. עקבו אחר השיטות הבאות כדי לשמור על אבטחה:

ניהול סודות

  • לעולם אל תכניסו סודות למערכת ניהול גרסאות — השתמשו בקובצי .env עם .gitignore
  • השתמשו במשתני סביבה — טעינו ממערכות ניהול סודות מאובטחות
  • סריקת מאגרים — השתמשו בכלים כמו TruffleHog, detect-secrets כדי למצוא מפתחות חשופים
  • ביקורת יומני גישה — צפו במי שהשתמש בסודות ומתי

אבטחת תעבורה

  • תמיד השתמשו ב-HTTPS — לעולם אל תשלחו פרטי התחברות דרך חיבורים לא מוצפנים
  • אמתו תעודות SSL — אל תבטלו את אימות התעודות בסביבת ייצור
  • השתמשו ב-certificate pinning — עבור אפליקציות מובייל, מנעו התקפות MITM
  • החילו TLS 1.2+ — השביתו פרוטוקולים ישנים יותר

טיפול בפרטי התחברות

  • הצפנת סודות — אחסנו גיבובים של bcrypt או Argon2, לעולם לא טקסט רגיל
  • צמצמו את זמן החיים — שמרו פרטי התחברות בזיכרון רק לזמן הנדרש
  • נקו נתונים רגישים — כתבו מעל פרטי התחברות לאחר השימוש
  • השתמשו בספריות מאובטחות — אל תממשו קריפטוגרפיה בעצמכם

רישום וניטור

  • לעולם אל תרשמו פרטי התחברות — השחיתו מפתחות ביומנים, השתמשו בהסוואת יומנים
  • רשמו אירועי אימות — עקבו אחר ניסיונות התחברות מוצלחים וכושלים
  • ניטור חריגות — התראות על דפוסי גישה חריגים
  • ביקורת שימוש במפתחות — עקבו אחר אילו מפתחות גישנו לאילו נתונים

דפוסי אימות ארגוניים

ארגונים גדולים דורשים לעתים קרובות אמצעי אבטחה נוספים ויכולות תאימות.

אינטגרציית SAML 2.0

עבור לקוחות ארגוניים, Smart Money API תומך באינטגרציית SAML 2.0 עם ספק הזהות של הארגון שלך (Okta, Azure AD וכו'):

  • כניסה יחידה (SSO) — משתמשים נכנסים דרך IdP ארגוני
  • אספקה אוטומטית — יצירה/השבתה של חשבונות לפי חברות בקבוצה
  • אכיפה — דרישת SAML לכל גישת משתמש

רשימת IPs מורשים

הגבלת גישת API לכתובות IP או טווחי CIDR ספציפיים:

ניהול רשימת IP מורשים
// הוספת IP לרשימת המורשים
curl -X POST "https://api.smartmoneyapi.com/v1/account/ip-whitelist" \
-H "Authorization: Bearer token" \
-d '{
"cidr": "203.0.113.0/24",
"description": "שרתי Production"
}'

רישום אירועים ותאימות

תוכניות Enterprise כוללות יומני אירועים מקיפים לצורכי תאימות:

אירוע נתונים שנרשמו
אימות משתמש, חותמת זמן, הצלחה/כישלון, IP, סטטוס MFA
פעולות מפתח מזהה מפתח, פעולה, יוזם, חותמת זמן
שינויים בחשבון מה השתנה, מי שינה, חותמת זמן, ערכים לפני/אחרי
גישה לנתונים משתמש, נקודת קצה, הרשאות, חותמת זמן, כמות רשומות

פתרון בעיות באימות

שגיאת מפתח API לא חוקי

בעיה: מקבלים "401 Unauthorized - Invalid API Key"

פתרונות:

  • וודא את פורמט המפתח (אמור להתחיל ב-sk_test_ או sk_live_)
  • בדוק אם יש רווחים מיותרים בתחילת/סוף המפתח
  • וודא שהמפתח לא בוטל או הוחלף
  • וודא שאתה משתמש בסביבה הנכונה (מפתח test לסביבת test, live ל-production)
  • בדוק שהרשאות מפתח API תואמות לדרישות נקודת הקצה

שגיאת טוקן שפג תוקף

בעיה: טוקן Bearer פג תוקף, בקשות נכשלות

פתרונות:

  • השתמש בטוקן רענון כדי לקבל טוקן גישה חדש
  • הטמע רענון טוקן אוטומטי 5 דקות לפני פקיעת התוקף
  • אחסן טוקן רענון בצורה מאובטחת (לא ב-localStorage עבור SPAs)
  • טפל בתגובות 401 על ידי ניסיון לבצע זרימת רענון טוקן

שגיאות CORS/Preflight

בעיה: הדפדפן חוסם בקשות עם שגיאת CORS

פתרונות:

  • בקשות API מדפדפנים חייבות להגיע מכתובות מקור מורשות
  • הוסף את הדומיין שלך דרך לוח הבקרה: Settings → CORS Origins
  • הדפדפן שולח בקשת OPTIONS preflight אוטומטית
  • לצורכי פיתוח, השתמש ב-localhost:3000 או דומה

אתגר MFA לא מסתיים

בעיה: פעולות הדורשות MFA נכשלות למרות הקוד הנכון

פתרונות:

  • וודא שהשעון של השרת מסונכרן (TOTP מסתמך על זמן)
  • הקוד תקף רק ל-30 שניות, צור קוד חדש
  • השתמש בקודי גיבוי אם אפליקציית האימות לא זמינה
  • שחזור חשבון זמין דרך האימייל הרשום

הטמע אימות מאובטח היום

Smart Money API תומך באימות ברמת Enterprise עם OAuth 2.0, JWT, MFA ואינטגרציית SAML. אבטח את אינטגרציית ה-API שלך עם שיטות העבודה המומלצות בתעשייה.

צפה בתוכניות Enterprise
צריך SAML, רשימת IP מורשים או תמיכה ייעודית? צור קשר עם צוות המכירות שלנו.

משאבים קשורים

התחל בחינם — 100 קריאות/יום, ללא כרטיס

קבל נתוני זרימת לווייתנים, מימון, open interest ונתוני on-chain מ-3 בורסות מ-API אחד. חבילה חינמית, ללא כרטיס אשראי, ניתן לשדרג בכל עת.

התחל בחינם →
נסה את קונסולת ה-API החיה → (לא נדרש חשבון)