📍 المقالة الرئيسية: Authentik 2026: الدليل الكامل.
دون 2FA إلزامي، Authentik الخاص بك آمن مثل كلمة سر واحدة. هذا الدرس يفصل تكوين الآليات الثلاث للمصادقة متعددة العوامل: TOTP (Aegis، Authy)، WebAuthn (YubiKey، Solokey)، و Passkeys (Apple، Google، Windows Hello).
المتطلبات
Authentik في الإنتاج مع admin أول مُنشأ. فهم بروتوكولات MFA. المستوى: متوسط/متقدم. الوقت: 1-2 ساعة.
الخطوة 1 — فهم الآليات الثلاث
TOTP (Time-based One-Time Password): رمز 6 أرقام يُولَّد كل 30 ثانية بواسطة تطبيق (Aegis، Authy). عالمي، يعمل دون اتصال، لكن قابل للـ phishing عبر صفحات login مزيفة. WebAuthn / FIDO2: مفاتيح تشفيرية على الجهاز (YubiKey، Solokey). مقاوم للـ phishing بالتصميم. Passkeys: تطور حديث لـ WebAuthn، مخزَّن في iCloud Keychain، Google Password Manager، أو Microsoft Authenticator.
الخطوة 2 — تفعيل TOTP في Authentik
إنشاء stage TOTP setup ثم stage validation. هذه الـ stages تُربَط بـ default authentication flow.
Stages → Create → Authenticator TOTP Setup Stage
Name: setup-totp
Friendly Name: Configuration TOTP
Digits: 6
Configure flow: default-authentication-flow
Stages → Create → Authenticator Validation Stage
Name: validate-totp
Device classes: TOTP
Configuration stage: setup-totp
الخطوة 3 — تفعيل WebAuthn / Passkeys
«cross-platform» يقبل YubiKey USB. «platform» يقبل Apple/Google/Windows Hello (Passkey). «preferred» يقبل كليهما.
Stages → Create → Authenticator WebAuthn Setup Stage
Name: setup-webauthn
User verification: preferred
Authenticator attachment: cross-platform OR platform
Resident key requirement: preferred
الخطوة 4 — تعديل Flow المصادقة
Flows → default-authentication-flow → Stage Bindings → Add. الترتيب مهم: Identification → Password → MFA → Login.
الخطوة 5 — السياسة: MFA إجباري
Policy Expression تتحقق أن المستخدم لديه authenticator مكوَّن. كل مستخدم دون MFA سيُجبَر على تكوينه قبل المتابعة.
Policies → Create → Expression Policy
Name: require-mfa
Expression:
return ak_user_has_authenticator(request.user, ['totp', 'webauthn'])
الخطوة 6 — Onboarding المستخدم
عند إنشاء موظف جديد، Authentik يرسل بريد دعوة. عند أول login: يُدخل email + كلمة سر أولية (يُجبَر على التغيير)، يُكوِّن MFA (اختيار بين TOTP و WebAuthn/Passkey)، يستلم recovery codes (6 رموز فريدة) للطباعة/التخزين، يؤكد MFA عبر challenge.
الخطوة 7 — Recovery codes
المستخدم يستلم 6 رموز للاستخدام مرة واحدة للنجاة في حالة فقدان الجهاز. اطبع أو احفظ في Vaultwarden.
Stages → Create → Authenticator Static Setup Stage
Name: setup-static
Token count: 6
Token length: 12
الخطوة 8 — سياسة YubiKey للمسؤولين
للمجموعة admins، اطلب WebAuthn (YubiKey أو Passkey) خصيصاً.
Policies → Expression Policy
Name: admins-require-webauthn
Expression:
if "admins" in [g.name for g in request.user.ak_groups.all()]:
return ak_user_has_authenticator(request.user, ['webauthn'])
return True
الخطوة 9 — النشر إلى 30 شخصاً
- أعلن 7 أيام مقدماً.
- اختبر على 3 أشخاص رواد لمدة أسبوع.
- Webinar 30 دقيقة للشرح.
- فعِّل سياسة MFA إلزامية يوم الثلاثاء (ليس الجمعة).
- Hotline لمدة 48 ساعة للحالات العالقة.
الأخطاء الشائعة
| الخطأ | الحل |
|---|---|
| QR TOTP يرفض الرمز | NTP: chrony أو systemd-timesyncd |
| WebAuthn لا يعمل Safari | Update Safari 17+ |
| Passkey مستحيل التسجيل | HTTPS غير صحيح |
| المستخدم فقد MFA | Admin: Reset MFA + email new flow |
التكيف مع السياق
ثلاث توضيحات. تكلفة YubiKey: YubiKey 5C NFC بسعر 50 USD أو 35 EUR عبر Amazon ألمانيا. للاقتصاد، Solokey (40 EUR) أو TrustKey (30 USD). هواتف مشتركة: تجنب تثبيت TOTP على هاتف عائلي. فضل Aegis مع كلمة سر التطبيق + نسخة احتياطية مشفرة. Passkeys و iCloud: مستخدمو Apple يزامنون تلقائياً بين Mac/iPhone/iPad.
دروس الإخوة
الأسئلة المتكررة
SMS كـ MFA؟ لا. SMS عرضة لـ SIM-swapping، غير متوافق مع NIST 800-63 مستوى AAL2.
تكلفة لـ 30 متعاوناً في YubiKey؟ 30 × 35€ = 1050€. انشر للمسؤولين فقط (5 × 35 = 175€). الباقي: TOTP مجاني.
Passkeys vs YubiKey؟ Passkeys أكثر عملية (sync بين أجهزة نفس النظام البيئي). YubiKey أكثر عالمية.
للاستزادة
- 🔝 المرجع: الدليل الكامل Authentik 2026