[{"data":1,"prerenderedAt":158},["ShallowReactive",2],{"seo-verification":3,"blog-keycloak-sso-vps-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":20,"featuredImage":22,"bgImage":23,"posterImage":24,"relatedSolution":25,"intro":28,"sections":29,"ctaTitle":112,"ctaBody":113,"ctaButton":114,"ctaUrl":115,"relatedPosts":116},112,"keycloak-sso-vps","نشر Keycloak لتسجيل الدخول الموحّد (SSO) على خادمك VPS","انشر Keycloak على خادمك VPS للحصول على تسجيل دخول موحّد (SSO) بمستوى المؤسسات: OIDC وSAML وrealms والاتحاد (federation). دليل Docker كامل ومقارنة.",8,744,false,"2026-02-28T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[21],{"id":11,"name":16,"slug":17,"color":18,"icon":19},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fkeycloak-sso-vps-poster.svg",{"categorySlug":26,"appSlug":27},"securite","keycloak","يُعدّ Keycloak المرجع مفتوح المصدر لتسجيل الدخول الموحّد على مستوى المؤسسات، وهو مدعوم من Red Hat ويُستخدم حتى في البيئات الخاضعة لتنظيم صارم. بفضل realms الخاصة به واتحاد LDAP ودعمه الكامل لـ OIDC وSAML، فإنه يلبّي احتياجات لا يبلغها إلا القليل من مزوّدي الهوية (IdP). وعند استضافته ذاتيًا على خادم VPS، يمنحك هذا المستوى من الاحترافية دون أي ترخيص أو اعتماد على السحابة.",[30,34,44,47,69,109],{"type":31,"title":32,"body":33},"h2","لماذا تنشر Keycloak على خادمك VPS","حيث تسعى بعض مزوّدات الهوية (IdP) إلى البساطة، يسعى Keycloak إلى الشمولية: عزل متعدد المستأجرين عبر realms، واتحاد أدلة LDAP\u002FActive Directory، والوساطة (brokering) نحو مزوّدين خارجيين (Google وGitHub أو OIDC آخر)، وتخصيص كامل لمظهر صفحات تسجيل الدخول، وتفويض دقيق (fine-grained authorization). وبالنسبة إلى وكالة تدير عدة عملاء أو نظام معلومات ذي متطلبات امتثال، فإن هذا المستوى من التحكّم حاسم. تجنّبك الاستضافة الذاتية على خادم VPS التكاليف لكل مستخدم في عروض IdP المُدارة، وتُبقي قاعدة الهويات بأكملها ضمن نطاق سلطتك القضائية، وهي نقطة بالغة الأهمية للبيانات الحساسة التي لا ترغب في تسليمها إلى طرف ثالث.",{"type":35,"title":36,"items":37},"ul","مزايا Keycloak المستضاف ذاتيًا",[38,39,40,41,42,43],"realms متعددة لعزل عدة عملاء أو بيئات عزلًا كاملًا على نفس النسخة (instance) الواحدة.","دعم أصلي وكامل لـ OpenID Connect وOAuth2 وSAML 2.0.","اتحاد LDAP \u002F Active Directory لإعادة استخدام دليل قائم دون عملية ترحيل.","الوساطة في الهوية (Identity brokering): تسجيل الدخول عبر Google أو GitHub أو أي IdP خارجي ببضع نقرات.","صفحات تسجيل دخول قابلة للتخصيص بالكامل (السمات، اللغات، الهوية البصرية لكل realm).","سياسات مصادقة دقيقة: مصادقة متعددة العوامل (MFA) مشروطة، ومدة الجلسة، وقيود حسب الدور.",{"type":31,"title":45,"body":46},"المتطلبات المسبقة لهذا النشر","يعمل Keycloak على الآلة الافتراضية لجافا JVM (على Quarkus منذ الإصدار v17+) ويظل أكثر استهلاكًا للموارد من مزوّد هوية خفيف. خصّص خادم VPS بـ 2 vCPU و4 غيغابايت من RAM كحدّ أدنى، ويُفضَّل 6 غيغابايت إذا كنت تتوقّع حِملًا أو عدة realms نشطة. يُوصى بشدّة باستخدام قاعدة PostgreSQL خارجية في بيئة الإنتاج (لا تستخدم أبدًا قاعدة H2 المدمجة خارج نطاق الاختبارات). ويكتمل ما يلزم بوجود Docker وDocker Compose ونطاق مخصّص (`sso.mydomain.com`) ووكيل عكسي (reverse proxy) يتولّى SSL، لأن Keycloak يحتاج إلى إعلامه بأنه يُقدَّم خلف وكيل HTTPS.",{"type":48,"title":49,"steps":50},"steps","نشر Keycloak مع PostgreSQL",[51,54,57,60,63,66],{"title":52,"body":53},"تعريف Keycloak وPostgreSQL في Compose","في ملف `docker-compose.yml`، عرّف خدمة `postgres` (الصورة `postgres:16`) وخدمة `keycloak` (الصورة `quay.io\u002Fkeycloak\u002Fkeycloak`). اربط Keycloak بقاعدة البيانات عبر `KC_DB=postgres` و`KC_DB_URL` و`KC_DB_USERNAME` و`KC_DB_PASSWORD`.",{"title":55,"body":56},"تهيئة وضع الإنتاج والوكيل","شغّل باستخدام الأمر `start` (وليس `start-dev`). عيّن `KC_HOSTNAME=sso.mydomain.com` و`KC_PROXY_HEADERS=xforwarded` حتى يُنشئ Keycloak عناوين URL صحيحة خلف الوكيل العكسي. وحدّد المسؤول الأولي عبر `KC_BOOTSTRAP_ADMIN_USERNAME` \u002F `KC_BOOTSTRAP_ADMIN_PASSWORD`.",{"title":58,"body":59},"البدء وإتمام عملية البناء (build)","نفّذ `docker compose up -d`. عند التشغيل الأول، يُجري Keycloak عملية بناء Quarkus مُحسّنة ثم يُرحّل مخطّط PostgreSQL. تابِع `docker compose logs -f keycloak` حتى تظهر الرسالة التي تشير إلى أن الخادم في وضع الاستماع.",{"title":61,"body":62},"إعداد الوكيل العكسي مع SSL","وجّه `sso.mydomain.com` إلى المنفذ `8080` في حاوية Keycloak عبر Caddy أو Traefik أو Nginx، مع شهادة Let's Encrypt. واحرص على تمرير ترويسات `X-Forwarded-*` وإلا فستتعطّل عمليات إعادة التوجيه عند تسجيل الدخول.",{"title":64,"body":65},"إنشاء realm وعميل (client)","سجّل الدخول إلى وحدة تحكّم المسؤول، وأنشئ realm مخصّصًا (لا تستخدم أبدًا realm `master` لتطبيقاتك)، ثم عميل OIDC. اضبط قيمة `Valid redirect URIs` لتطبيقك، واحصل على `Client ID` والسرّ من تبويب Credentials.",{"title":67,"body":68},"ربط تطبيق واختبار التدفّق (flow)","هيّئ تطبيقك باستخدام عنوان الاكتشاف `https:\u002F\u002Fsso.mydomain.com\u002Frealms\u002Fmon-realm\u002F.well-known\u002Fopenid-configuration`. أنشئ مستخدمًا تجريبيًا في الـ realm، وابدأ عملية تسجيل دخول، وتحقّق من إصدار الرمز (token) في قسم Sessions بوحدة التحكّم.",{"type":70,"title":71,"headers":72,"rows":76},"comparison","Keycloak أم Authentik: أيّهما تختار؟",[73,74,75],"المعيار","Keycloak","Authentik",[77,81,85,89,93,97,101,105],[78,79,80],"حالة الاستخدام المستهدفة","تسجيل دخول موحّد للمؤسسات، متعدد المستأجرين، الامتثال","الاستضافة الذاتية، المختبر المنزلي (homelab)، الوكالات",[82,83,84],"البروتوكولات","OIDC, OAuth2, SAML, LDAP","OIDC, OAuth2, SAML, LDAP, forward auth",[86,87,88],"Forward auth (الوكيل)","غير أصلي (عبر إضافات)","أصلي ومحوري في الأداة",[90,91,92],"استهلاك الموارد","مرتفع (JVM، 4 غيغابايت+ RAM)","معتدل (2-4 غيغابايت RAM)",[94,95,96],"realms \u002F المستأجرون المتعددون","ممتاز (realms معزولة)","المستأجرون مدعومون، لكن بشكل أقل تطوّرًا",[98,99,100],"تخصيص التدفّقات (flows)","السمات وواجهة SPI بجافا","تدفّقات مرئية على شكل خطوات",[102,103,104],"منحنى التعلّم","حادّ، وشامل جدًا","أيسر منالًا",[106,107,108],"اتحاد الأدلة","ناضج (LDAP\u002FAD)","جيّد (LDAP)",{"type":110,"body":111},"tip","في بيئة الإنتاج، لا تُشغّل Keycloak أبدًا بقاعدة H2 المدمجة ولا تُتِح realm `master` للعموم: أنشئ realm مخصّصًا لكل تطبيق أو لكل عميل، واحتفظ بـ `master` للإدارة فقط. ولتحصين النسخة، عطّل التسجيل الحرّ، وفعّل `brute force detection` في Realm Settings > Security Defenses، وهيّئ كل شيء عبر ملفات استيراد realm (`--import-realm`) كي تُخضع تهيئتك لإدارة الإصدارات بدلًا من النقر في واجهة المستخدم.","استضِف تسجيل دخول موحّد بمستوى المؤسسات","يوفّر خادم VPS Cloud من ServOrbit مع قالب Docker مُعدّ مسبقًا ذاكرة RAM وقاعدة PostgreSQL اللازمة لتشغيل Keycloak في بيئة الإنتاج، بما في ذلك realms والاتحاد.","انشر خادم Keycloak VPS الخاص بي","\u002Fvps-cloud",[117,131,145],{"id":118,"slug":119,"title":120,"excerpt":121,"readTime":122,"views":123,"isPinned":13,"publishedAt":124,"category":125,"categories":126,"featuredImage":22,"bgImage":23,"posterImage":128,"relatedSolution":129},105,"superviser-vps-uptime-kuma","مراقبة خادمك الافتراضي VPS باستخدام Uptime Kuma","انشر Uptime Kuma على خادمك الافتراضي VPS لمراقبة مواقعك وخدماتك ذاتيًا، مع تنبيهات وصفحة حالة عامة.",6,1520,"2026-03-07T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},[127],{"id":11,"name":16,"slug":17,"color":18,"icon":19},"\u002Fblog\u002Fcovers\u002Fsuperviser-vps-uptime-kuma-poster.svg",{"categorySlug":26,"appSlug":130},"uptime-kuma",{"id":132,"slug":133,"title":134,"excerpt":135,"readTime":136,"views":137,"isPinned":13,"publishedAt":138,"category":139,"categories":140,"featuredImage":22,"bgImage":23,"posterImage":142,"relatedSolution":143},106,"monitoring-vps-grafana-prometheus","مراقبة الخادم الافتراضي VPS باستخدام Grafana و Prometheus","أنشئ حزمة Grafana + Prometheus على خادمك الافتراضي VPS لجمع مقاييس النظام والتطبيقات وتخزينها وعرضها بصريًا.",9,522,"2026-03-06T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},[141],{"id":11,"name":16,"slug":17,"color":18,"icon":19},"\u002Fblog\u002Fcovers\u002Fmonitoring-vps-grafana-prometheus-poster.svg",{"categorySlug":26,"appSlug":144},"grafana",{"id":146,"slug":147,"title":148,"excerpt":149,"readTime":122,"views":150,"isPinned":13,"publishedAt":151,"category":152,"categories":153,"featuredImage":22,"bgImage":23,"posterImage":155,"relatedSolution":156},107,"monitorer-vps-netdata","راقب خادمك الافتراضي VPS في الوقت الفعلي باستخدام Netdata","ثبّت Netdata على خادمك الافتراضي VPS للحصول على مراقبة لحظية بدقة الثانية: آلاف المقاييس، دون أي إعداد، مع تنبيهات مضمّنة.",559,"2026-03-05T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},[154],{"id":11,"name":16,"slug":17,"color":18,"icon":19},"\u002Fblog\u002Fcovers\u002Fmonitorer-vps-netdata-poster.svg",{"categorySlug":26,"appSlug":157},"netdata",1785097295499]