فلسفتان مختلفتان، لا منافسان مباشران
Authentik (الإصدار 2026.8.2 وقت كتابة هذا المقال) مكتوب بـ Python/Django مع واجهة أمامية بـ TypeScript. يُثبَّت على VPS الخاص بك ويعمل كمزود هوية متكامل: تُفوِّض تطبيقاتك استيثاقها إلى Authentik عبر OIDC أو SAML، الذي يدير الجلسات والمجموعات والتزويد ودورة حياة الحسابات. النموذج يشبه Okta أو Auth0، لكن مفتوح المصدر وعلى بنيتك التحتية.
Authelia (الإصدار v4.39.24 وقت كتابة هذا المقال) هو طبقة استيثاق تتوضع أمام reverse proxy الخاص بك — Traefik أو nginx أو Caddy — عبر توجيه auth_request. يتحقق من كل طلب HTTP: إذا لم يكن المستخدم مستوثقاً أو لم يكن لديه مستوى MFA المناسب، يعيد Authelia استجابة 401 ويحجب reverse proxy الطلب. لا يُصدر Authelia رموز OAuth2 للتطبيقات، بل يحمي عناوين URL.
يتعايش هذان الأداتان كثيراً على البنية التحتية ذاتها: Authelia للوحات التحكم الداخلية والأدوات التي لا تدعم OIDC أصلاً، وAuthentik للتطبيقات التي تتحدث OAuth2 أو لتزويد LDAP.
جدول مقارنة Authentik مقابل Authelia
مرّر الجدول أفقيًا
| المعيار | Authentik 2026.8 | Authelia v4.39 |
|---|---|---|
| النوع | مزود هوية (IdP) | بوابة استيثاق |
| OIDC / OAuth2 | نعم — معتمد OpenID Certified™ | نعم — معتمد OpenID Certified™ |
| SAML 2.0 (IdP) | نعم | لا (خارطة الطريق، بلا موعد) |
| LDAP | نعم (مزود + outpost) | لا |
| تزويد SCIM | نعم (Enterprise) | لا |
| تدفقات استيثاق مرئية | نعم | لا |
| ذاكرة RAM الدنيا (المكدّس كاملاً) | ~1 غيغابايت (worker + PostgreSQL) | أقل من 30 ميغابايت |
| قاعدة البيانات المطلوبة | PostgreSQL (أُزيل Redis في 2025.10) | Redis + PostgreSQL (أو SQLite) |
| واجهة الإدارة | كاملة (واجهة ويب) | ملف إعداد YAML |
| الرخصة | MIT (Community) / Enterprise | Apache 2.0 |
| لغة الخادم | Python + Rust (منذ 2026.8) | Go |
البروتوكولات: المعيار الفاصل في 80% من الحالات
دعم SAML هو نقطة التحول الأكثر شيوعاً. إذا كان أحد تطبيقات البنية التحتية لديك — مجموعة مكتبية أو ERP أو أداة موارد بشرية — لا يقبل سوى SAML 2.0 كآلية للتفويض، فلا خيار لك: Authelia لا يمكنها أن تؤدي دور IdP لـ SAML. دعم SAML موجود في خارطة طريق Authelia في قسم «التخطيط» (وليس «نشطاً» بعد)، دون موعد منشور.
أما بالنسبة لـ OIDC/OAuth2، فكلا الأداتين معتمدان الآن كـ OpenID Certified™. حصلت Authelia على هذه الشهادة، ما يُثبت التطبيق على ملفات Basic OP وImplicit OP وHybrid OP وForm Post OP وConfig OP. Authentik أيضاً معتمد منذ الإصدار 2026.8، مع دعم إضافي لملفات تسجيل الخروج (RP-Initiated وFront-Channel وBack-Channel).
لمكدّس 100% من تطبيقات الويب الحديثة التي تتحدث OIDC — Nextcloud وGitea وGrafana وMattermost وJellyfin — يكفي Authelia وهو أخف بكثير. حالما تحتاج تطبيقاً واحداً إلى SAML أو تزويد حسابات تلقائي، فإن Authentik هو الوحيد القادر على ذلك.
اختر Authelia إذا
- تحمي خدمات داخلية بلا دعم OIDC أصلي (لوحات تحكم، أدوات DevOps) عبر reverse proxy
- VPS الخاص بك لديه أقل من 2 غيغابايت RAM أو يُشغِّل عدة خدمات بالتوازي
- تفضل إعداداً تصريحياً بـ YAML مُدار في Git، بلا واجهة ويب
- مكدّسك حصري لـ OIDC/OAuth2 (بلا SAML، بلا LDAP)
- تريد أصغر سطح هجوم ممكن: الملف الثنائي Go يزن أقل من 20 ميغابايت
اختر Authentik إذا
- تطلب تطبيق واحد على الأقل SAML 2.0 — Authentik هو الوحيد الذي يطبّقه
- تدير حسابات مستخدمين: دورة الحياة، تزويد SCIM، مزامنة LDAP
- تحتاج تدفقات استيثاق مخصصة (تأهيل، تحقق بريد إلكتروني، استرداد حساب)
- يفضل فريقك التقني واجهة رسومية على ملف إعداد
- تمركز الهوية لعدة فرق أو عدة منتجات
استهلاك الموارد: الفارق بمقدار رتبة كاملة
يبقى Authelia تحت 30 ميغابايت RAM في الظروف العادية. حاوية Docker الخاصة به تزن أقل من 20 ميغابايت. للتثبيت الكامل مع Redis وPostgreSQL، احسب 150 إلى 200 ميغابايت إجمالاً — وهو استهلاك خدمة واحدة من بين خدمات أخرى على VPS مشترك.
Authentik في فئة مختلفة. المكدّس الكامل — عامل Python وخادم Rust (منذ 2026.8، أُعيدت كتابة الواجهة الأمامية من Go إلى Rust) وPostgreSQL — يحتاج 1 غيغابايت على الأقل من RAM، وأفضل 2 غيغابايت على خادم مخصص لـ Authentik عند مئات المستخدمين. بسّط المشروع المكدّس في 2025.10 بإزالة Redis: جميع عمليات التخزين المؤقت والمهام الخلفية وWebSocket تمر الآن عبر PostgreSQL.
على VPS بـ 2 غيغابايت RAM يُشغِّل Gitea وGrafana وreverse proxy، سيستهلك Authentik نصف الموارد المتاحة. Authelia في السياق نفسه لن تكاد تلاحظه.
المتطلبات المسبقة لنشر كلا الأداتين
لـ Authelia: يكفي VPS بـ 1 غيغابايت RAM، مع reverse proxy جاهز (Traefik أو nginx أو Caddy)، ونطاق يشير إلى خادمك، وDocker وDocker Compose مثبتَين. يحتاج Authelia لتخزين الجلسات — SQLite للاختبار، PostgreSQL أو MySQL في الإنتاج.
لـ Authentik: خطط لـ VPS بـ 2 غيغابايت RAM مخصصة على الأقل لـ Authentik، ويفضل 4 غيغابايت إن كانت خدمات أخرى تعمل بالتوازي. PostgreSQL إلزامي (أُزيل Redis منذ 2025.10). تحتاج Docker وDocker Compose ونطاقاً والمنافذ 80 و443 مفتوحة.
نشر Authelia مع Docker Compose
إنشاء هيكل المجلدات
أنشئ مجلد العمل والمجلدات الفرعية اللازمة:
mkdir -p /opt/authelia/{config,data} cd /opt/autheliaإنشاء ملف الإعداد
يُعدَّ Authelia بـ YAML. أنشئ
/opt/authelia/config/configuration.ymlمع كتلserverوlogوauthentication_backendوaccess_controlوsessionوstorageوnotifier. حددdomainالجذر (auth.yourdomain.com) ومدة الجلسة وخلفية التخزين.إنشاء docker-compose.yml
services: authelia: image: authelia/authelia:latest container_name: authelia volumes: - ./config:/config - ./data:/data ports: - "9091:9091" restart: unless-stopped environment: - TZ=Europe/Parisإعداد reverse proxy
في nginx، أضف كتلة
locationتفوّض التحقق إلى Authelia عبرauth_request. كل طلب لخدماتك الداخلية يمر أولاً عبرhttp://authelia:9091/api/verify— يعيد Authelia 200 إن كان المستخدم مستوثقاً، و401 خلاف ذلك. يمتلك Traefik وسيطاً مكافئاً يُسمىForwardAuth.التشغيل والتحقق
docker compose up -d docker compose logs -f autheliaافتح
https://auth.yourdomain.com. يعرض Authelia بوابة تسجيل الدخول. أنشئ مستخدماً أول في ملفusers_database.ymlواختبر الوصول إلى خدمة محمية.
نشر Authentik مع Docker Compose
تحميل compose الرسمي
mkdir -p /opt/authentik && cd /opt/authentik curl -O https://goauthentik.io/docker-compose.ymlيعرّف هذا الملف العامل والخادم وPostgreSQL. منذ الإصدار 2025.10، لم يعد Redis في compose الافتراضي.
إنشاء ملف .env
ولّد الأسرار اللازمة:
echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env echo "AUTHENTIK_ERROR_REPORTING__ENABLED=false" >> .envتشغيل المكدّس
docker compose pull docker compose up -dأول تشغيل يطبّق هجرات PostgreSQL وقد يستغرق دقيقة إلى دقيقتين. تابع السجلات بـ
docker compose logs -f worker.الوصول إلى واجهة الإدارة
افتح
http://<ip-vps>:9000/if/flow/initial-setup/لإنشاء حساب المدير الأول. ثم وجّه نطاقك (sso.yourdomain.com) إلى الخادم وأعدّ reverse proxy لإنهاء TLS.إنشاء أول تطبيق OIDC
في واجهة الإدارة، انتقل إلى التطبيقات ← إنشاء ثم المزودون ← OAuth2/OpenID. أدخل URL إعادة التوجيه لتطبيقك العميل، انسخ
Client IDوClient Secretالمولَّدَين، وأعدّ تطبيقك مع نقاط نهاية OIDC الخاصة بـ Authentik.
استخدام الأداتين بالتوازي
التركيبة الأكثر شيوعاً على VPS مُحمَّل: Authelia تحمي الأدوات الداخلية بلا دعم OIDC (Grafana القديم، Portainer، لوحات تحكم منزلية) عبر reverse proxy، بينما يؤدي Authentik دور IdP لـ OIDC للتطبيقات التي تفوّض استيثاقها. يمكن للأداتين التعايش على الخادم نفسه ومشاركة PostgreSQL ذاتها إن كانت قواعد البيانات معزولة. يمكن حتى تأهيل Authelia لتفويض الاستيثاق إلى Authentik عبر OIDC — فتحصل على خفة Authelia كبوابة وثروة Authentik كمصدر هوية.
الأمان وسطح الهجوم
سطح هجوم Authelia أصغر هيكلياً: كود أقل، لا واجهة إدارة مكشوفة (الإعداد ملف محلي)، لا دعم SAML، لا LDAP. سجل CVE التاريخي لـ Authelia أقصر بالتبعية.
Authentik يكشف أكثر: واجهة ويب كاملة، محرك تدفقات، عدة بروتوكولات استيثاق، واجهة REST API وoutposts. كل سطح إضافي هو سطح يجب صيانته ومتابعته. تغطي سياسة دعم Authentik الإصدار الحالي والسابق فقط.
في كلتا الحالتين، أفضل الممارسات واحدة: لا تكشف منفذ الإدارة مباشرة على الإنترنت، استخدم شهادة TLS صالحة على النطاق الفرعي للاستيثاق، فعّل MFA لجميع حسابات الإدارة، وحافظ على تحديث صور Docker.
أي VPS لكل أداة
لـ Authelia وحدها: VPS بـ 1 إلى 2 غيغابايت RAM يكفي تماماً حتى مع تشغيل عدة خدمات أخرى. Authelia لا تستوجب خادماً مخصصاً.
لـ Authentik: الحد المعقول في الإنتاج هو 2 غيغابايت RAM مخصصة لمكدّس Authentik (worker + PostgreSQL). إن شارك Authentik VPS مع تطبيقات أخرى، خطط لـ 4 غيغابايت على الأقل.
يغطي VPS ServOrbit بـ 2 vCPU و4 غيغابايت RAM Authentik بارتياح في الإنتاج مع هامش للتطبيقات التي يحميها. يُهيئ قالب Marketplace لـ Authentik في Dolibarr, n8n, Nextcloud, Open WebUI, WooCommerce, WordPress المكدّس Docker مع PostgreSQL والمتغيرات البيئية وreverse proxy في أمر واحد.