لماذا تركّز المصادقة على خادمك VPS
عندما تتراكم لديك الأدوات ذاتية الاستضافة (Grafana، Nextcloud، Gitea، لوحة معلومات داخلية)، يأتي كل منها بقاعدة مستخدمين خاصة وسياسة كلمات مرور خاصة. إنه كابوس في الصيانة وسطح هجوم متضاعف. يحلّ Authentik ذلك بالقيام بدور مزوّد الهوية (IdP): فهو يدعم OAuth2/OIDC و SAML و LDAP وقبل كل شيء forward auth، الذي يتيح حماية أي تطبيق خلف وكيل عكسي، حتى تلك التي لا تملك أي مفهوم لتسجيل الدخول. تضمن الاستضافة الذاتية على خادم VPS ألّا تمرّ بيانات اعتمادك أبدًا عبر خدمة طرف ثالث وأن تبقى متحكّمًا في شجرة المستخدمين وسياسات MFA.
ما تكسبه مع Authentik
- مجموعة واحدة من بيانات الاعتماد لجميع تطبيقاتك، مع تسجيل خروج مركزي.
- مصادقة متعددة العوامل MFA (TOTP، WebAuthn/مفاتيح FIDO2، رموز احتياطية) مطبّقة بشكل موحّد وفق سياسة.
- forward auth لحماية التطبيقات "بلا تسجيل دخول"، وهو أمر متعذّر مع مزوّد هوية تقليدي.
- flows قابلة للتخصيص بالكامل (التسجيل، الاسترجاع، captcha، شروط الوصول).
- موصّلات OAuth2/OIDC و SAML و LDAP لربط التطبيقات الحديثة والقديمة على حدّ سواء.
- توفير الوصول وإلغاؤه فورًا عند مغادرة أحد الموظفين.
المتطلبات اللازمة لهذا النشر
Authentik أكثر تطلّبًا من خدمة بسيطة: تتضمّن الحزمة الخادم و worker و PostgreSQL و Redis. احسب خادم VPS بما لا يقل عن معالجَي vCPU وذاكرة RAM بسعة 4 غيغابايت لتشغيل مريح، علمًا أن 2 غيغابايت هو حدّ أدنى صارم قد يعاني تحت الحِمل. يلزم Docker و Docker Compose، إضافةً إلى اسم نطاق مخصّص (auth.mydomain.com) مع سجل A. الوكيل العكسي (Traefik أو Nginx Proxy Manager أو Caddy) لا غنى عنه لإدارة SSL و forward auth نحو تطبيقاتك الأخرى.
نشر Authentik باستخدام Docker Compose
الحصول على ملف compose الرسمي وتوليد الأسرار
نزّل ملف docker-compose.yml المرجعي الخاص بـ Authentik. ولّد القيم الحسّاسة في ملف .env: PG_PASS و AUTHENTIK_SECRET_KEY عبر openssl rand -base64 60. لا تُعِد أبدًا استخدام مفتاح من الأمثلة.
تشغيل الحزمة
شغّل docker compose up -d. تنطلق أربع حاويات: server و worker و postgresql و redis. راقب التهيئة باستخدام docker compose logs -f server حتى ترى الخادم جاهزًا للاستماع.
إنهاء التثبيت عبر /if/flow/initial-setup/
عند أول تشغيل، انتقل إلى https://auth.mydomain.com/if/flow/initial-setup/ لتعيين كلمة مرور حساب akadmin. هذا هو المسؤول الأعلى لديك: احمِه فورًا بمصادقة متعددة العوامل MFA.
إعداد الوكيل العكسي و SSL
وجّه auth.mydomain.com نحو المنفذ 9000 (HTTP) أو 9443 (HTTPS) لحاوية الخادم عبر وكيلك العكسي، بشهادة Let's Encrypt. يجب حتمًا تقديم Authentik عبر HTTPS كي تعمل ملفات تعريف الارتباط للجلسة و WebAuthn.
إنشاء مزوّد وتطبيق
في لوحة الإدارة، أنشئ Provider (OIDC لتطبيق حديث، أو Proxy لأجل forward auth) ثم التطبيق المرتبط به. بالنسبة لـ OIDC، احصل على client_id / client_secret ورابط .well-known/openid-configuration للصقه في التطبيق العميل.
حماية تطبيق عبر forward auth
لتطبيق بلا تسجيل دخول أصلي، أنشئ Proxy Provider وصرّح عن وسيط مصادقة (middleware) في وكيلك العكسي يوجّه إلى نقطة النهاية /outpost.goauthentik.io/auth/. عندئذٍ يُعاد توجيه أي طلب غير مصادَق عليه إلى Authentik قبل أن يصل إلى التطبيق.
فعّل Outpost مدمجًا واستفد من "property mappings" لحقن ترويسات (X-authentik-username، X-authentik-groups) نحو تطبيقاتك المحمية بـ forward auth: تستطيع تطبيقات كثيرة (Grafana مثلًا) قراءة هذه الترويسات للقيام بتوفير المستخدمين تلقائيًا وإسناد الأدوار. تحصل بذلك ليس فقط على SSO، بل أيضًا على ربط تلقائي بالكامل للمجموعات بالأدوار، دون إعداد يدوي في كل أداة.