المصادقة
تدعم AuroraSOC طريقتين للمصادقة: JWT (JSON Web Tokens) للمستخدمين التفاعليين ومفاتيح API للوصول البرمجي. يتم فرض كلتا الطريقتين على كل نقطة نهاية لواجهة برمجة التطبيقات (API) واتصال WebSocket.
تدفق المصادقة
مصادقة JWT
تسجيل الدخول
curl -X POST /api/v1/auth/token \
-H "Content-Type: application/json" \
-d '{"username": "analyst@soc.company.com", "password": "secure_password"}'
إجابة:
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 86400
}
هيكل الرمز المميز
تحتوي حمولة JWT على:
{
"sub": "analyst@soc.company.com",
"role": "analyst",
"exp": 1705430400,
"iat": 1705401600
}
| مجال | وصف |
|---|---|
sub | معرف المستخدم (اسم المستخدم/البريد الإلكتروني) |
role | الدور المعين (المسؤول، المحلل، المشاهد، المشغل، api_service) |
exp | الطابع الزمني لانتهاء الصلاحية (24 ساعة بشكل افتراضي) |
iat | صدر في الطابع الزمني |
استخدام الرمز المميز
بالنسبة للعملاء الذين لا يستخدمون المتصفح، قم بتضمين الرمز المميز في رأس Authorization:
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
بالنسبة لعملاء المتصفح، تقوم AuroraSOC أيضًا بتعيين ملف تعريف الارتباط httpOnly access_token عند تسجيل الدخول وتقبل مصادقة ملف تعريف الارتباط على مسارات API + WebSocket.
بالنسبة لاتصالات WebSocket، يجب أن يعتمد عملاء المتصفح على مصادقة ملفات تعريف الارتباط. إن مصادقة رمز الاستعلام مخصصة فقط لعملاء التشغيل الآلي الذين لا يستخدمون المتصفح والذين لا يمكنهم إرفاق ملفات تعريف الارتباط:
ws://aurora:8000/api/v1/ws/alerts?token=eyJhbGciOiJIUzI1NiIs...
تكوين الرمز المميز
| متغير البيئة | تقصير | وصف |
|---|---|---|
JWT_SECRET_KEY | (مطلوب) | سر توقيع HS256 (32 حرفًا على الأقل) |
JWT_EXPIRY_HOURS | 24 | عمر الرمز المميز بالساعات |
يجب أن يكون JWT_SECRET_KEY عبارة عن سلسلة عشوائية مشفرة مكونة من 32 حرفًا على الأقل. لا تلزمه أبدًا بالتحكم في الإصدار. استخدم HashiCorp Vault أو متغيرات البيئة من مدير الأسرار.
مصادقة مفتاح API
بالنسبة للاتصالات من خدمة إلى خدمة والبرامج النصية للأتمتة:
إنشاء مفاتيح API
curl -X POST /api/v1/auth/api-keys \
-H "Authorization: Bearer $TOKEN_WITH_USERS_MANAGE" \
-d '{"service_name": "SIEM Integration", "expires_in_days": 90}'
إجابة:
{
"api_key": "aurora_a1b2c3d4e5f6...",
"service_name": "SIEM Integration",
"role": "api_service",
"created_at": "2024-01-15T10:00:00Z"
}
يظهر مفتاح واجهة برمجة التطبيقات مرة واحدة فقط عند الإنشاء. تخزينها بشكل آمن على الفور. يقوم AuroraSOC بتخزين تجزئة المفتاح SHA-256 فقط.
استخدام مفاتيح API
تضمين في رأس X-API-Key:
X-API-Key: aurora_a1b2c3d4e5f6...
دورة حياة مفتاح API
| فعل | نقطة النهاية | الإذن مطلوب |
|---|---|---|
| يخلق | POST /api/v1/auth/api-keys | users:manage |
| قائمة | GET /api/v1/auth/api-keys | users:manage |
| إبطال | DELETE /api/v1/auth/api-keys/{id} | users:manage |
أفضل الممارسات الأمنية
- ** قم بتدوير أسرار JWT ** بشكل دوري (ربع سنوي على الأقل)
- استخدم الرموز قصيرة العمر — 24 ساعة هي المدة الافتراضية؛ تقليل العمر الافتراضي للبيئات عالية الأمان
- إبطال مفاتيح واجهة برمجة التطبيقات فورًا عند إيقاف تشغيل الخدمة المرتبطة
- مراقبة فشل المصادقة — يقوم AuroraSOC بتسجيل جميع محاولات المصادقة الفاشلة في تدفق التدقيق
- استخدم HTTPS — انشر دائمًا خلف وكيل عكسي ينهي TLS
- مصادقة حد المعدل — يمنع تحديد المعدل المدمج هجمات القوة الغاشمة على نقاط نهاية تسجيل الدخول