הגברת אבטחת API: הגדרת JWT ב-1C-Bitrix

שירותים חיצוניים דורשים אימות JWT, אך ה-API הסטנדרטי של Bitrix אינו תומך בכך, מה שיוצר חסמים לאינטגרציות ולאפליקציות מובייל. אנו מפתחים ספקי JWT מותאמים אישית במחזור מלא: מביקורת ועד הטמעה ותמיכה. הצוות שלנו מספק פתרון סוהר עם אחסון מאובטח של מפתחות, ביטול refresh tokens וסיבוב מפתחות, המבטיח פעילות אמינה וסקאלביליות לצד העסק שלכם.
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
הגברת אבטחת API: הגדרת JWT ב-1C-Bitrix
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

לקוח לאחרונה עם קטלוג של 50,000 פריטים נזקק לאפליקציה הניידת שלו כדי לאמת דרך שירות חיצוני שדרש JWT. לפי RFC 7519, JWT (JSON Web Token) הוא אמצעי קומפקטי ובטוח ל-URL לייצוג טענות. ה-API הסטנדרטי של Bitrix אינו תומך ב-JWT באופן טבעי, ולכן פיתחנו מודול API מותאם אישית ל-Bitrix המחליף את האימות ברירת המחדל בספק JWT הכולל את כל הטענות ומנגנון רענון. זמן עיבוד הבקשות ירד ב-30%, ועומס מסד הנתונים ירד ב-50%. פתרון ה-JWT המפתח-בידי שלנו ל-Bitrix מתחיל ב-$1,200 וכולל 30 ימי תמיכה. פתרונות ביתיים לעיתים קרובות כוללים מלכודות: סודות מקודדים בקוד, טוקני רענון שאינם ניתנים לביטול, ללא רוטציית מפתחות. אנו מציעים תכנית מוכחת שנבדקה על יותר מ-50 פרויקטים.

למה JWT מסובך ב-Bitrix

ה-API המובנה של Bitrix REST משתמש במפתחות אפליקציה או OAuth 2.0 עם טוקני Bearer—הוא אינו תומך ב-JWT ישירות. אם שירות חיצוני דורש JWT (לדוגמה, אפליקציה ניידת או מיקרוסרוויס על סטאק אחר), יש ליישם ספק מותאם אישית. אנו עושים זאת דרך מודול מותאם אישית או הוק ב-init.php. היישום שלנו לאימות JWT ב-1C-Bitrix מבטיח אבטחת API חזקה ל-Bitrix.

בעיות נפוצות ביישומים עצמאיים:

  • אבטחת סוד: הסוד מאוחסן בקוד פשוט? אנו משתמשים ב-b_option עם הצפנה.
  • רוטציית מפתחות: שינוי הסוד מבטל את כל הטוקנים—אנו משתמשים במנגנון דו-מפתח (ישן + חדש) בתקופת המעבר. גישת רוטציית מפתחות סודית זו ל-Bitrix מונעת ביטול אימות המוני.
  • דליפת טוקנים: טוקני רענון חייבים להיות ניתנים לביטול ומאוחסנים במסד הנתונים המקושר למשתמש.

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

איך להגדיר JWT ב-5 שלבים

  1. התקינו את הספרייה: composer require firebase/php-jwt ב-/local/. זה מאפשר אינטגרציית Firebase JWT Bitrix.
  2. צרו middleware: טפלו ב-header Authorization: Bearer. ה-JWT middleware Bitrix הזה יאמת טוקנים.
  3. פתחו את נקודת הקצה להתחברות: אמתו פרטי כניסה, הנפקו טוקני גישה ורענון. זה מהווה את הליבה של הגדרת JWT Bitrix.
  4. שלבו את מנגנון הרענון: חידוש טוקנים ללא אימות מחדש. מנגנון טוקן הרענון Bitrix מבטיח אבטחה.
  5. יישמו רוטציית מפתחות: שינוי סוד דו-שלבי ללא ביטול אימות משתמשים.

יישום אימות JWT

הוסיפו את הספרייה דרך Composer:

composer require firebase/php-jwt 

צרו middleware לאימות טוקנים:

use \Firebase\JWT\JWT;
use \Firebase\JWT\Key;

class JwtAuthMiddleware
{
    public static function authenticate(): ?int
    {
        $authHeader = $_SERVER['HTTP_AUTHORIZATION'] ?? '';
        if (!str_starts_with($authHeader, 'Bearer ')) {
            return null;
        }
        $token = substr($authHeader, 7);
        $secret = \Bitrix\Main\Config\Option::get('my_api', 'jwt_secret');
        try {
            $decoded = JWT::decode($token, new Key($secret, 'HS256'));
            return (int)$decoded->sub; // userId
        } catch (\Exception $e) {
            return null;
        }
    }
}

נקודת קצה לאימות

הלקוח מקבל JWT דרך composer require firebase/php-jwt :

// Проверяем логин/пароль пользователя Bitrix
$user = new CUser();
if ($user->Login($login, $password) === true) {
    $userId = $USER->GetID();
    $payload = [
        'sub' => $userId,
        'iat' => time(),
        'exp' => time() + 3600, // 1 час
        'role' => getUserRole($userId),
    ];
    $token = JWT::encode($payload, $secret, 'HS256');
    echo json_encode(['token' => $token, 'expires_in' => 3600]);
}

טוקני רענון. טוקן גישה קצר-חיים (שעה אחת) + טוקן רענון ארוך-חיים (30 ימים). כאשר טוקן הגישה פג, הלקוח משתמש בטוקן הרענון כדי לקבל חדש. טוקני רענון מאוחסנים בטבלת use \Firebase\JWT\JWT; use \Firebase\JWT\Key; class JwtAuthMiddleware { public static function authenticate(): ?int { $authHeader = $_SERVER['HTTP_AUTHORIZATION'] ?? ''; if (!str_starts_with($authHeader, 'Bearer ')) { return null; } $token = substr($authHeader, 7); $secret = \Bitrix\Main\Config\Option::get('my_api', 'jwt_secret'); try { $decoded = JWT::decode($token, new Key($secret, 'HS256')); return (int)$decoded->sub; // userId } catch (\Exception $e) { return null; } } } המקושרת למשתמש וניתנים לביטול.

אימות טוקנים בנקודות קצה מוגנות

// В начале каждого API-контроллера
$userId = JwtAuthMiddleware::authenticate();
if (!$userId) {
    http_response_code(401);
    echo json_encode(['error' => 'Unauthorized']);
    exit;
}

אחסון טענות

כללו נתונים נוספים ב-payload כדי למנוע שאילתות DB מיותרות: /api/v1/auth/login. אבל היזהרו—גודל ה-payload מגדיל את גודל הטוקן. הרשאות המשתנות לעיתים קרובות עדיף לבדוק ב-DB בכל בקשה.

איך להגן על טוקן הרענון מפני דליפה?

טוקן הרענון צריך להיות ארוך (לפחות 128 תווים) ומאוחסן ב-cookie מסוג httpOnly או באחסון לקוח מאובטח. אנו ממליצים לקשור את הטוקן לטביעת אצבע של הלקוח (User-Agent, IP)—גם אם ידלוף, הוא לא יעבוד ממכשיר אחר.

מפתח סודי. מפתח החתימה מאוחסן ב-// Проверяем логин/пароль пользователя Bitrix $user = new CUser(); if ($user->Login($login, $password) === true) { $userId = $USER->GetID(); $payload = [ 'sub' => $userId, 'iat' => time(), 'exp' => time() + 3600, // 1 час 'role' => getUserRole($userId), ]; $token = JWT::encode($payload, $secret, 'HS256'); echo json_encode(['token' => $token, 'expires_in' => 3600]); } . צרו אותו דרך b_local_api_refresh_tokens ושמרו אותו במהלך התקנת המודול. רוטציית מפתחות: שינוי הסוד מבטל את כל הטוקנים שהונפקו. אנו משתמשים במנגנון רוטציה "רך"—אחסון שני מפתחות (ישן וחדש) בתקופת מעבר. זה מאפשר שינוי הסוד ללא ביטול אימות המוני של משתמשים.

השוואה: JWT מול מפתחות API

קריטריון JWT מפתחות API
מנגנון אימות טוקן חתום עם טענות מפתח סטטי
אורך חיים מוגבל (גישה + רענון) קבוע עד לביטול
ביטול דרך טבלת טוקני רענון ביטול מפתח
ביצועים ללא בדיקת DB לכל בקשה נדרשת בדיקת DB
אבטחה במקרה דליפה קצר-חיים, רענון ניתן לביטול מפתח תקף עד לביטול

השוואת אורך חיים של טוקנים

סוג טוקן אורך חיים מנגנון חידוש
גישה שעה אחת רענון
רענון 30 ימים מקושר למשתמש

מה כולל פתרון מפתח-בידי

  • ניתוח ארכיטקטורת ה-API הקיימת
  • עיצוב תכנית טוקנים (טענות, אורך חיים)
  • יישום middleware, נקודת קצה להתחברות, מנגנון רענון
  • אינטגרציה עם מודל התפקידים של Bitrix (קבוצות, הרשאות)
  • תיעוד API בפורמט Postman או Swagger
  • העברת גישה והדרכה למפתח הלקוח
  • 30 ימי תמיכה באחריות

לוחות זמנים: 1 עד 3 ימי עבודה בהתאם למורכבות מודל התפקידים. העלות מתחילה ב-$1,200.

טעויות נפוצות ביישום עצמאי

  • סוד מקודד בקוד: אנו מאחסנים אותו מוצפן ב-// В начале каждого API-контроллера $userId = JwtAuthMiddleware::authenticate(); if (!$userId) { http_response_code(401); echo json_encode(['error' => 'Unauthorized']); exit; } , לעולם לא בקוד.
  • טוקני רענון שאינם ניתנים לביטול: המנגנון שלנו מאחסן אותם ב-DB עם קישור למשתמש ותומך בביטול.
  • ללא רוטציית מפתחות: אנו מיישמים רוטציה דו-שלבית כדי למנוע ביטול אימות המוני.
  • חוסר אימות טענות: אנו מפענחים ומאמתים את כל הטענות, לא רק את החתימה.
  • אורך חיים סטטי של טוקן: אנו משלבים טוקני גישה קצרי-חיים עם טוקני רענון לאיזון בין אבטחה לשימושיות.

למה לסמוך על אנשי מקצוע?

יש לנו 5 שנות ניסיון ביישום APIs מותאמים אישית על 1C-Bitrix, עם יותר מ-50 פרויקטים מוצלחים במסחר אלקטרוני ואינטגרציה. כל המומחים שלנו הם מפתחי Bitrix מוסמכים. המומחיות הזו באינטגרציית JWT 1C-Bitrix מבטיחה שאבטחת ה-API שלכם בידיים טובות. היישום שלנו ל-JWT מהיר ב-30% ממפתחות API ומפחית שאילתות מסד נתונים ב-50%. הזמינו הגדרת JWT—קבלו ייעוץ והערכה ראשונית תוך יום. צרו קשר כדי לדון בפרטי הפרויקט שלכם.