إدارة مفاتيح API
توفر مفاتيح واجهة برمجة التطبيقات (API) مصادقة خدمة إلى خدمة لعمليات التكامل والبرامج النصية والأنظمة الخارجية التي تحتاج إلى التفاعل مع AuroraSOC برمجيًا.
متى يتم استخدام مفاتيح API مقابل JWT
| حالة الاستخدام | المصادقة الموصى بها | سبب |
|---|---|---|
| تسجيل الدخول إلى لوحة القيادة | JWT | تفاعلية، على أساس الجلسة |
| تكامل SIEM | مفتاح واجهة برمجة التطبيقات | خدمة طويلة الأمد |
| خط أنابيب CI/CD | مفتاح واجهة برمجة التطبيقات | آلية وغير تفاعلية |
| البرامج النصية المخصصة | مفتاح واجهة برمجة التطبيقات | لا حاجة لتدفق تسجيل الدخول |
| تطبيق الجوال | JWT | جلسات خاصة بالمستخدم |
| استقبال ويب هوك | مفتاح واجهة برمجة التطبيقات | التحقق من عديمي الجنسية |
تنسيق المفتاح
تتبع مفاتيح API التي تم إنشاؤها هذا التنسيق:
aurora_<64_random_hex_characters>
مثال:
aurora_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4
تعمل البادئة aurora_ على تسهيل التعرف على المواد الأساسية في الماسحات الضوئية السرية ومرشحات السجل.
دورة حياة مفتاح API
إنشاء مفتاح
curl -X POST /api/v1/auth/api-keys \
-H "Authorization: Bearer $TOKEN_WITH_USERS_MANAGE" \
-H "Content-Type: application/json" \
-d '{
"service_name": "suricata-forwarder",
"expires_in_days": 90,
"permissions": ["alerts:read", "iocs:write"]
}'
إجابة:
{
"id": "7c557b75-16cf-4d15-8f6a-f8ee5f0e19d7",
"service_name": "suricata-forwarder",
"api_key": "aurora_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4",
"key_prefix": "aurora_a1b2c3d4e5",
"permissions": ["alerts:read", "iocs:write"],
"created_by": "admin",
"created_at": "2026-04-05T09:21:13.442176+00:00",
"expires_at": "2026-07-04T09:21:13.442163+00:00",
"message": "Store this API key securely now. It will not be shown again."
}
ملحوظات:
expires_in_daysاختياري. اضبطه علىnullللحصول على مفتاح غير منتهي الصلاحية.permissionsاختياري. إذا تم حذفه، فإن AuroraSOC يطبق مجموعة أذوناتapi_serviceالافتراضية.- يتم إرجاع
api_keyالخام مرة واحدة فقط.
مفاتيح القائمة
curl -X GET /api/v1/auth/api-keys \
-H "Authorization: Bearer $TOKEN_WITH_USERS_MANAGE"
تعرض الاستجابة بيانات التعريف الرئيسية فقط (وليس قيمة المفتاح الكاملة أبدًا):
{
"api_keys": [
{
"id": "7c557b75-16cf-4d15-8f6a-f8ee5f0e19d7",
"service_name": "suricata-forwarder",
"key_prefix": "aurora_a1b2c3d4e5",
"role": "api_service",
"permissions": ["alerts:read", "iocs:write"],
"is_active": true,
"created_by": "admin",
"created_at": "2026-04-05T09:21:13.442176+00:00",
"expires_at": "2026-07-04T09:21:13.442163+00:00",
"last_used_at": "2026-04-05T10:41:03.107511+00:00",
"revoked_at": null
}
],
"total": 1
}
إلغاء المفتاح
curl -X DELETE /api/v1/auth/api-keys/7c557b75-16cf-4d15-8f6a-f8ee5f0e19d7 \
-H "Authorization: Bearer $TOKEN_WITH_USERS_MANAGE"
يكون الإلغاء فوريًا — أي طلب يستخدم المفتاح الذي تم إبطاله سوف يتلقى 401 Unauthorized.
أمان تخزين المفاتيح
AuroraSOC لا تقوم أبدًا بتخزين مفاتيح واجهة برمجة التطبيقات ذات النص العادي. يتم الاحتفاظ بتجزئة SHA-256 فقط. هذا يعنى:
- إذا تم اختراق قاعدة البيانات، فلا يمكن استخراج مفاتيح API
- لا يمكن استرداد المفاتيح المفقودة — يجب إنشاء مفتاح جديد
- تستخدم المقارنة الرئيسية عمليات فحص التجزئة الآمنة للتوقيت
رأس المصادقة
استخدم مفاتيح API مع رأس X-API-Key:
X-API-Key: aurora_<...>
تدعم AuroraSOC أيضًا مفتاح البيئة الثابت (API_SERVICE_KEY) لعمليات التكامل على مستوى البنية التحتية. يوصى باستخدام المفاتيح المُدارة والمدعومة بقاعدة البيانات للتدقيق وانتهاء الصلاحية والإلغاء.
الحد من المعدل
تخضع الطلبات المصادق عليها لمفتاح واجهة برمجة التطبيقات (API) لحدود نقطة النهاية ومعدل الخدمة. عند تجاوز هذه القيمة، تقوم AuroraSOC بإرجاع 429 Too Many Requests.
أفضل الممارسات
- مفتاح واحد لكل عملية تكامل — إنشاء مفاتيح منفصلة لكل خدمة
- مبدأ الامتياز الأقل — قم بتعيين الحد الأدنى من الأذونات المطلوبة فقط
- التدوير بانتظام — أنشئ مفاتيح جديدة كل ثلاثة أشهر، وألغِ المفاتيح القديمة
- استخدام الشاشة — تحقق من الطوابع الزمنية
last_usedبحثًا عن المفاتيح غير المستخدمة - استخدام مديري الأسرار — قم بتخزين المفاتيح في HashiCorp Vault، أو AWS Secrets Manager، أو ما شابه ذلك
- لا تستخدم الكود الثابت أبدًا — استخدم متغيرات البيئة، وليس كود المصدر
- مسار التدقيق — يتم تسجيل كافة عمليات إنشاء مفتاح واجهة برمجة التطبيقات وعمليات الإلغاء