OAuth, JWT ושערי API: הפרידו בקרות אבטחה

בקצרה

OAuth 2.0 מסדיר הרשאה מואצלת; OpenID Connect מוסיף אימות זהות. JWT הוא פורמט אסימון ושער הוא נקודת בקרה: אלה תפקידים שונים.

חדר אימות זהות בדיוני וריק עם שני מפתחות אבטחה, כרטיס ריק ותיק בורדו
במאמר זה

בחרו תפקיד לפני כלי

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

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

בדקו את הפרוטוקול וכל גישה

  • בחרו זרימה המתאימה ללקוח. במסלולי משתמש פעלו לפי ההמלצות העדכניות לקוד הרשאה ו־PKCE, עם ספרייה מתוחזקת והפניות מבוקרות בקפדנות.
  • ב־JWT שמתקבל בדקו חתימה, אלגוריתמים מורשים, מנפיק, קהל ודרישות הזמן של הפרופיל. דחו אסימונים לשימוש אחר.
  • בדקו כל אובייקט, פעולה וארגון. נסו גישה בין חשבונות בנתונים בדיוניים; תפקיד או היקף כללי אינם תמיד מספיקים.

תכננו תפוגה, ביטול ותקריות

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

מקורות ראשוניים

שער אינו מחליף הרשאת אובייקט.

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

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

מקור ראשוני: IETF — RFC 9700, OAuth 2.0 Security Best Current Practice. שיטה קשורה: קריאת המדריך המעשי.

Passkeys: הכנה לשינוי דומיין ו־RP ID

להפריד בין חשבון, מקור אינטרנט ו־RP ID כדי למנוע קישור מחדש שקט של פרטי הזדהות.

  • תעדו מקורות ישנים וחדשים, RP ID וחשבונות קשורים. שם חשבון זהה אינו הופך passkey לתקף עבור RP ID אחר. בדקו צירופים מותרים ב־WebAuthn ונתיבי גישה זמינים בזמן המעבר.
  • בסביבת בדיקה מורשית בדקו challenge, מקור, RP ID ושיוך חשבון בספרייה מתאימה. נסו מקור לא צפוי ואתגר חוזר. שינוי RP ID דורש רישום חדש לאחר אימות; העתקת שורה אינה מעבירה מפתח.
  • בדקו משתמש עם פרטי הזדהות ישנים בלבד, שחזור וסשנים פתוחים. קבעו פתיחת נתיבים וסגירתם עם חזרה שנבדקה. רישום בדומיין חדש אינו מוכיח ביטול כל הסשנים הישנים.

מקרה קבלה שניתן לשחזר

דוגמה בדיונית: הנתונים אינם מתארים לקוח או תוצאה שנצפתה.

הצגת נתוני המקרה
{
    "old_origin": "https://login.old.example",
    "old_rp_id": "old.example",
    "new_origin": "https://login.new.example",
    "new_rp_id": "new.example",
    "same_service_account": true,
    "expected": "authenticated_new_registration"
}

החלטה צפויה

דוגמה בדיונית: החשבון זהה, אך old.example נעשה new.example עם RP ID אחר. אין לקשר מחדש בשקט את פרטי ההזדהות הישנים; הרישום החדש עובר בנתיב האימות המתוכנן.

W3C — Web Authentication Level 2

האם שינוי במסד יכול לשנות RP ID של passkey?

לא. RP ID הוא חלק מהתחום המאומת של פרטי ההזדהות. הכינו רישום תקף בתחום החדש ושיוך חשבון לאחר אימות.

מקור ראשוני: W3C — Web Authentication Level 2. שיטה קשורה: קריאת המדריך המעשי.

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

לעקוב אחרי חידוש עד נקודות TLS והלקוחות לפני סיום השינוי.

  • רשמו שמות, CDN, מאזני עומס, פרוקסי וחיבורים פנימיים עם תעודות. תעדו תעודה מוגשת, שרשרת, תפוגה ואחראי. הנפקה אינה מוכיחה התקנה בכל צומת. הגנו על מפתחות פרטיים ואל תכללו אותם ברישום.
  • בדקו אוטומציה בסביבת בדיקה של הספק אם קיימת. בדקו אתגרי אימות, שמות SAN, אחסון מוגן וטעינה מחדש. הימנעו מהנפקה בכל הפעלה כשקיימת תעודה שימושית לפי מדיניות המפתחות.
  • בדקו שמות, תאריכים ושרשרת אמון בלקוחות נתמכים ובנתיבים רלוונטיים. השאירו אימות TLS פעיל. נטרו תפוגת תעודה מוגשת ולא רק מתזמן. חזרה דורשת תעודה תקפה ומפתח שלא נחשף; אחרת תקנו או בודדו נקודה.

מקרה קבלה שניתן לשחזר

דוגמה בדיונית: הנתונים אינם מתארים לקוח או תוצאה שנצפתה.

הצגת נתוני המקרה
{
    "issuance_succeeded": true,
    "proxy_count": 2,
    "proxies_serving_expected_certificate": 1,
    "other_proxy_certificate_expired": true,
    "tls_verification_enabled": true,
    "expected": "change_incomplete_fix_and_verify_client_paths"
}

החלטה צפויה

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

Let’s Encrypt — Integration Guide

מקור ראשוני: Let’s Encrypt — Integration Guide. שיטה קשורה: קריאת המדריך המעשי.

עיון בקטלוג CISA KEV

הערות המקורות המפורטות זמינות באנגלית במהדורה זו.

One identifier can span several technical layers

An entry may concern a library, server or component embedded in an appliance. Search the exact name, known dependencies and the distributed product’s advisory. Catalogue aliases are not a complete list of affected versions.

  • Connect the CVE, component supplier and final-product supplier.
  • Check version, configuration and execution path in the authorised environment.
  • Do not infer remediation from an empty search result.

עיון בקטלוג ובשיטה →

CISA KEV · 2026.11.06 · Documentary review : 2026-11-07

תוספים: הרשאות וגישה

הערות המקורות המפורטות זמינות באנגלית במהדורה זו.

Robust authentication does not describe extension access

Phishing resistance does not remove the need to examine what runs in the browser after a session opens. A manifest provides clues about cookies, scripting, debugging and identity without establishing collection.

  • Test approved extensions in a profile dedicated to sensitive operations.
  • For identity, inspect OAuth scopes and recipients; this permission does not enumerate identity-provider rights.
  • Distinguish session revocation, token revocation, extension disablement and native-component removal.

Read the permission directory and manifest examples →

Google Chrome · Stay secure · Documentation consulted 2026-10-23; browser behaviour remains version-dependent