[{"data":1,"prerenderedAt":209},["ShallowReactive",2],{"seo-verification":3,"blog-pocket-id-على-vps-مزود-oidc-خفيف-بحاوية-واحدة-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-pocket-id-على-vps-مزود-oidc-خفيف-بحاوية-واحدة-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":153,"ctaBody":154,"ctaButton":155,"ctaUrl":156,"relatedPosts":157},443,"pocket-id-على-vps-مزود-oidc-خفيف-بحاوية-واحدة",{"fr":12,"en":13,"ar":10,"es":14},"pocket-id-oidc-self-hosted-vps","pocket-id-lightweight-oidc-provider-in-one-container","pocket-id-proveedor-oidc-ligero-en-un-solo-contenedor","‫Pocket ID‬: مزود ‫OIDC‬ خفيف في حاوية واحدة","‫Pocket ID v2.18.0‬ هو مزود ‫OpenID Connect‬ ذاتي الاستضافة في حاوية ‫Docker‬ واحدة، بدون قاعدة بيانات خارجية، ومصادقة بالمفاتيح فقط، بأقل من ‫50 MB‬ من الذاكرة.",9,0,false,"2026-10-15T00:00:00+00:00","2026-10-16T01:57:35+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fpocket-id-oidc-self-hosted-vps-poster.svg","تشغيل ‫Keycloak‬ أو ‫Authentik‬ كاملين من أجل ثلاثة أو أربعة خدمات ذاتية الاستضافة يعني نشر ‫JVM‬ أو تنسيق حاويات متعددة لحل مشكلة تتسع في ملف ثنائي واحد مكتوب بـ‫Go‬. ‫Pocket ID v2.18.0‬ (4 أكتوبر 2026) هو مزود ‫OpenID Connect‬ معتمد يعمل في حاوية واحدة، ويخزن بياناته في ‫SQLite‬، ويستهلك أقل من ‫50 MB‬ من الذاكرة في وضع الخمول، في حين يطلب ‫Keycloak‬ مئات الميغابايت. لا يدعم سوى ‫OIDC‬، ولا يقبل سوى مفاتيح المرور، وهذا بالضبط ما يجعل نشره ممكناً في خمس دقائق على أي خادم ‫VPS‬.",[35,39,51,54,82,85,89,92,100,150],{"type":36,"title":37,"body":38},"h2","لماذا تستضيف مزود ‫OIDC‬ بنفسك","كل خدمة ذاتية الاستضافة تدير قاعدة مستخدميها الخاصة تُدخل اعتماداً يجب عليك الحفاظ عليه: كلمات مرور تُعاد تعيينها، حسابات تُلغى، جلسات تُبطل. مضروبة في خمس خدمات أو عشر، تصبح هذه المشكلة عبئاً تشغيلياً حقيقياً. يوحّد مزود الهوية (‫IdP‬) هذا العمل: مصدر هوية واحد، إلغاء يُطبّق في كل مكان، نقطة تهيئة ‫MFA‬ واحدة.\n\nالسؤال ليس إذا كنت بحاجة إلى ‫IdP‬، بل أيّه — وعلى أي أساس أنت مستعد لتشغيله.",{"type":40,"title":41,"items":42},"ul","ما تحصل عليه مع ‫OIDC IdP‬ ذاتي الاستضافة",[43,44,45,46,47,48,49,50],"**هوية مركزية** — حساب واحد لـ‫Gitea‬ و‫Nextcloud‬ و‫Grafana‬ وجميع الخدمات المتوافقة مع ‫OIDC‬.","**إلغاء شامل** — تعطيل حساب في ‫Pocket ID‬ يقطع الوصول إلى جميع التطبيقات المتصلة عند تجديد الرمز التالي.","**مصادقة بمفاتيح المرور** — ‫Touch ID‬ أو ‫Face ID‬ أو مفتاح ‫FIDO2‬ كعامل وحيد، دون كلمة مرور تُنقل.","**لا اعتماد على السحابة** — تبقى هوياتك تحت ولايتك القضائية، دون حصص مستخدمين أو تسعير لكل طلب.","**بصمة دنيا** — يستهلك ‫Pocket ID‬ أقل من ‫50 MB‬ من الذاكرة في وضع الخمول، مقارنة بـ‫300–600 MB‬ لـ‫Authentik‬ و‫1–2 GB‬ لـ‫Keycloak‬.","**‫SQLite‬ مدمج** — لا حاجة لمحرك قاعدة بيانات خارجية.","**‫Back-channel logout‬ (الإصدار ‫v2.18.0‬)** — عند تعطيل مستخدم أو إلغاء عميل، يُخطر ‫Pocket ID‬ التطبيقات المسجلة ويُبطل جلساتها من جانب الخادم.","**حاوية واحدة** — الخدمة بأكملها في صورة ‫Docker‬ بحجم ‫~30 MB‬، دون تبعية ‫Redis‬ أو عامل منفصل.",{"type":36,"title":52,"body":53},"المتطلبات الرقمية","صُمّم ‫Pocket ID‬ للمجموعات الصغيرة. متطلباته منخفضة عن عمد:\n\n- **‫Docker 24+‬** و‫Docker Compose v2‬ — مطلوبان من قِبل الصورة الرسمية.\n- **‫512 MB RAM‬ كحد أدنى** على الخادم — يعمل ‫Pocket ID‬ بأقل من ‫50 MB‬ في وضع الخمول؛ الباقي للنظام والبروكسي العكسي.\n- **نطاق وشهادة ‫TLS‬** — يشترط ‫OIDC‬ ‫HTTPS‬ دون استثناء.\n- **لا قاعدة بيانات خارجية** — ‫SQLite‬ مدمج. إن فضّلت ‫PostgreSQL‬، يكفي تغيير متغير بيئة واحد.\n\nلا يدعم ‫Pocket ID‬ ‫SAML‬ ولا ‫LDAP‬ ولا توحيد الدلائل. إن كانت مجموعتك تضم تطبيقات تقبل ‫SAML‬ فقط، أو إن كنت بحاجة إلى توحيد ‫Active Directory‬، فاختر ‫Authentik‬ أو ‫Keycloak‬ بدلاً من ذلك.",{"type":55,"title":56,"steps":57},"steps","تثبيت Pocket ID",[58,61,64,67,70,73,76,79],{"title":59,"body":60},"إعداد خادم VPS والنطاق","اطلب خادم ‫VPS‬ يعمل بـ‫Ubuntu 22.04‬ أو ‫Debian 12‬ بذاكرة ‫512 MB RAM‬ على الأقل. أنشئ سجل ‫DNS‬ من النوع ‫A‬ يشير `auth.your-domain.com` إلى عنوان ‫IP‬ الخادم.\n\nثبّت ‫Docker‬ وإضافة ‫Compose‬:\n```bash\ncurl -fsSL https:\u002F\u002Fget.docker.com | sh\n```",{"title":62,"body":63},"إنشاء دليل العمل","على الخادم، أنشئ دليلاً مخصصاً:\n```bash\nmkdir -p \u002Fopt\u002Fpocket-id && cd \u002Fopt\u002Fpocket-id\n```",{"title":65,"body":66},"كتابة ملف docker-compose.yml","أنشئ `\u002Fopt\u002Fpocket-id\u002Fdocker-compose.yml`:\n```yaml\nservices:\n  pocket-id:\n    image: ghcr.io\u002Fpocket-id\u002Fpocket-id:v2.18.0\n    container_name: pocket-id\n    restart: unless-stopped\n    ports:\n      - \"1411:1411\"\n    volumes:\n      - .\u002Fdata:\u002Fapp\u002Fdata\n    environment:\n      APP_URL: \"https:\u002F\u002Fauth.your-domain.com\"\n      TRUST_PROXY: \"true\"\n```",{"title":68,"body":69},"إعداد البروكسي العكسي nginx","أنشئ الإعداد لـ`auth.your-domain.com`. يستمع ‫Pocket ID‬ على ‫HTTP‬ على المنفذ ‫1411‬؛ يتولى البروكسي العكسي معالجة ‫TLS‬.\n\n```nginx\nserver {\n    listen 443 ssl http2;\n    server_name auth.your-domain.com;\n\n    ssl_certificate     \u002Fetc\u002Fletsencrypt\u002Flive\u002Fauth.your-domain.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fauth.your-domain.com\u002Fprivkey.pem;\n\n    proxy_buffer_size   256k;\n    proxy_buffers       4 512k;\n    proxy_busy_buffers_size 512k;\n\n    location \u002F {\n        proxy_pass         http:\u002F\u002F127.0.0.1:1411;\n        proxy_set_header   Host              $host;\n        proxy_set_header   X-Real-IP         $remote_addr;\n        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;\n        proxy_set_header   X-Forwarded-Proto $scheme;\n    }\n}\n```\n\nاحصل على الشهادة باستخدام ‫Certbot‬:\n```bash\ncertbot certonly --nginx -d auth.your-domain.com\nnginx -t && systemctl reload nginx\n```",{"title":71,"body":72},"تشغيل الحاوية","من `\u002Fopt\u002Fpocket-id`:\n```bash\ndocker compose up -d\ndocker compose logs -f pocket-id\n```\n\nيؤكد سطر السجل `Starting Pocket ID on :1411` أن الخادم جاهز. زُر `https:\u002F\u002Fauth.your-domain.com` لإتمام الإعداد الأولي.",{"title":74,"body":75},"إنشاء حساب المسؤول وتسجيل مفتاح مرور","في الزيارة الأولى، يطلب ‫Pocket ID‬ إنشاء حساب المسؤول. أدخل بريدك الإلكتروني، ثم سجّل مفتاح مرور فوراً: انتقل إلى **الإعدادات → مفاتيح المرور → إضافة** واتبع مطالبة المتصفح (‫Touch ID‬ أو ‫Windows Hello‬ أو مفتاح ‫FIDO2‬).",{"title":77,"body":78},"تسجيل أول تطبيق OIDC","في واجهة الإدارة، افتح **عملاء OIDC → عميل جديد**. أدخل:\n- **الاسم**: معرّف مقروء للتطبيق (مثل `Gitea`)\n- **عنوان URL للاستدعاء**: عنوان إعادة التوجيه المُعلن في التطبيق العميل\n\nيُنشئ ‫Pocket ID v2.18.0‬ تلقائياً `client_secret` عند الإنشاء — استرجعه فوراً.\n\nلاحظ `Client ID` وعنوان الاكتشاف `https:\u002F\u002Fauth.your-domain.com\u002F.well-known\u002Fopenid-configuration`.",{"title":80,"body":81},"اختبار التدفق من التطبيق العميل","في ‫Gitea‬، انتقل إلى **الإدارة → مصادر المصادقة → إضافة → OAuth2**. اختر ‫OpenID Connect‬ كمزود، وأدخل `Client ID` و`Client Secret` وعنوان الاكتشاف. شغّل اختبار تسجيل دخول: يجب أن يُعاد توجيه المتصفح إلى `auth.your-domain.com`، ويطلب مفتاح المرور المسجل، ثم يُعيد التوجيه إلى ‫Gitea‬ مع تسجيل دخول المستخدم.",{"type":36,"title":83,"body":84},"الإعداد بعد التثبيت","بعد الإعداد الأولي، بعض الإعدادات تحسّن متانة الخادم.",{"type":86,"title":87,"body":88},"tip","تقوية الخادم","**تقييد التسجيلات**: عطّل التسجيل العام في **الإعدادات ← عام ← السماح بالتسجيل** وادعُ المستخدمين فردياً.\n\n**نسخ بيانات الخادم احتياطياً**: تعيش جميع البيانات في `.\u002Fdata`. نسخة `rsync` يومية إلى تخزين خارجي تكفي لخادم صغير.\n\n**تثبيت إصدار الصورة**: استخدم `v2.18.0` صراحةً ولا تترك `latest` في الإنتاج.\n\n**تحديد التعرض الشبكي**: إذا كان ‫Pocket ID‬ لا يحتاج إلى الوصول إلا من الشبكة الداخلية للخادم، اربط المنفذ ‫1411‬ بواجهة loopback ودع ‫nginx‬ يتصل بالحاوية عبر شبكة ‫Docker‬ الداخلية.",{"type":36,"title":90,"body":91},"استكشاف الأخطاء وإصلاحها","أكثر الأخطاء شيوعاً عند إعداد ‫Pocket ID‬ تتبع أنماطاً محددة.",{"type":40,"title":93,"items":94},"الأخطاء الشائعة وحلولها",[95,96,97,98,99],"**502 Bad Gateway على جميع الصفحات** — السبب الأكثر شيوعاً: مخازن ‫nginx‬ المؤقتة صغيرة جداً لرؤوس استجابة ‫OIDC‬ في ‫Pocket ID‬. أضف `proxy_buffer_size 256k` و`proxy_buffers 4 512k` و`proxy_busy_buffers_size 512k` في كتلة `location \u002F` وأعد تحميل ‫nginx‬.","**`redirect_uri_mismatch` أثناء تسجيل الدخول** — عنوان ‫Callback URL‬ المُعلن في ‫Pocket ID‬ لا يتطابق تماماً مع ذلك الذي يرسله التطبيق العميل. تحقق من وجود شرطة مائلة في النهاية، والمخطط `http` مقابل `https`، ورقم المنفذ.","**`invalid_client` عند تبادل الرمز** — `client_secret` الذي يرسله التطبيق لا يتطابق. في ‫v2.18.0‬، يُنشئ ‫Pocket ID‬ سراً تلقائياً عند إنشاء العميل؛ إن لم تحفظه، أعد إنشاء واحد من سجل العميل في لوحة الإدارة.","**رفض مفتاح المرور: `NotAllowedError`** — المتصفح لا يمكنه الوصول إلى واجهات ‫WebAuthn‬ بدون ‫HTTPS‬. تحقق من أن `APP_URL` مضبوط على `https:\u002F\u002F...` وأن شهادة ‫TLS‬ صالحة.","**عدم إبطال الجلسات بعد الإلغاء** — يتطلب ‫back-channel logout‬ أن يُعلن التطبيق العميل `Backchannel Logout URL` في سجل ‫OIDC‬ الخاص به. تحقق من ملء هذا الحقل وإمكانية الوصول إليه من حاوية ‫Pocket ID‬.",{"type":101,"title":102,"headers":103,"rows":109},"comparison","‫Pocket ID‬ أم ‫Authentik‬ أم ‫Keycloak‬ أم ‫Authelia‬: أيّ تختار",[104,105,106,107,108],"المعيار","‫Pocket ID 2.18‬","‫Authelia 4.39‬","‫Authentik 2026.8‬","‫Keycloak 26‬",[110,116,121,127,133,138,144],[111,112,113,114,115],"بروتوكولات ‫IdP‬","‫OIDC\u002FOAuth2‬","‫OIDC\u002FOAuth2‬ (تجريبي)","‫OIDC, SAML 2.0, LDAP, SCIM‬","‫OIDC, SAML 2.0, LDAP, Kerberos‬",[117,118,119,119,120],"المصادقة","مفاتيح المرور فقط (‫FIDO2‬)","كلمة مرور + ‫MFA‬، مفاتيح المرور","كلمة مرور + ‫MFA‬، ‫OTP‬",[122,123,124,125,126],"الذاكرة في وضع الخمول","أقل من ‫50 MB‬","~‫30 MB‬","‫200–400 MB‬","‫1–2 GB‬",[128,129,130,131,132],"قاعدة البيانات","‫SQLite‬ مدمج (أو ‫PostgreSQL‬)","ملف ‫YAML‬ (أو خلفية خارجية)","‫PostgreSQL‬ مطلوب","‫PostgreSQL‬ موصى به",[134,135,135,136,137],"عدد الحاويات","1","3 (‫server, worker, PostgreSQL‬)","2 (‫Keycloak‬ + قاعدة بيانات)",[139,140,141,142,143],"إدارة المستخدمين","دليل مدمج، دعوة بالبريد الإلكتروني","ملف ‫YAML‬ أو مزود خارجي","دليل مدمج، ‫LDAP‬، وكيل اجتماعي","دليل مدمج، توحيد ‫LDAP\u002FAD‬",[145,146,147,148,149],"الأنسب لـ","مجموعة خفيفة، مفاتيح مرور، ‫IdP‬ بسيط","طبقة ‫forward-auth‬ أمام البروكسي","‫SSO‬ كامل، ‫SAML‬، تدفقات بصرية","‫SSO‬ المؤسسات، متعدد المستأجرين، الامتثال",{"type":36,"title":151,"body":152},"خلاصة","يجيب ‫Pocket ID v2.18.0‬ على حاجة محددة: مركزة المصادقة لمجموعة خدمات ذاتية الاستضافة دون التكلفة التشغيلية لـ‫Keycloak‬ أو ‫Authentik‬. حاوية واحدة، ‫SQLite‬، مفاتيح مرور، وأقل من ‫50 MB‬ من الذاكرة في وضع الخمول. يُضيف الإصدار ‫2.18.0‬ ‫back-channel logout‬ لإبطال جلسات التطبيقات فور إلغاء حساب، ويستعيد الإنشاء التلقائي لـ‫client secret‬.\n\nإن كانت مجموعتك تضم تطبيقات تقبل ‫SAML‬ فقط أو كنت بحاجة إلى توحيد ‫Active Directory‬، فـ‫Authentik‬ أو ‫Keycloak‬ أنسب. لكل شيء آخر — خدمات ويب حديثة على خادم ‫VPS‬ بـ‫1 أو 2 GB‬ — يترك لك ‫Pocket ID‬ الذاكرة لبقية مجموعتك.","انشر مزود ‫OIDC‬ الخاص بك على ‫VPS‬","خادم ‫VPS‬ من ‫ServOrbit‬ مع ‫Docker 24+‬ يكفي لتشغيل ‫Pocket ID‬ في بيئة الإنتاج. حاوية واحدة، عنوان ‫IPv4‬ مخصص، وتطبيقاتك آمنة دون أي اعتماد على السحابة.","نشر على VPS","\u002Fvps-cloud",[158,176,191],{"id":159,"slug":160,"slugs":161,"title":165,"excerpt":166,"readTime":167,"views":18,"isPinned":19,"publishedAt":168,"updatedAt":169,"category":170,"categories":171,"featuredImage":30,"bgImage":31,"posterImage":173,"relatedSolution":174},192,"استضافة-authentik-على-vps-بديل-auth0-مفتوح-المصدر",{"fr":162,"en":163,"ar":160,"es":164},"self-host-authentik-vps","self-host-authentik-on-a-vps-open-source-auth0-alternative","alojar-authentik-en-un-vps","استضافة Authentik على VPS: بديل Auth0 مفتوح المصدر","انشر Authentik على خادم ServOrbit الافتراضي الخاص واحصل على مزوّد هوية كامل (OIDC وSAML 2.0 ومفاتيح المرور وتدفقات بصرية) لتوحيد المصادقة عبر بنيتك ذاتية الاستضافة بالكامل.",4,"2026-07-26T00:00:00+00:00","2026-09-11T11:34:11+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[172],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fself-host-authentik-vps-poster.svg",{"categorySlug":27,"appSlug":175},"authentik",{"id":177,"slug":178,"slugs":179,"title":183,"excerpt":184,"readTime":167,"views":18,"isPinned":19,"publishedAt":185,"updatedAt":186,"category":187,"categories":188,"featuredImage":30,"bgImage":31,"posterImage":190,"relatedSolution":30},112,"نشر-keycloak-لتسجيل-الدخول-الموحد-sso-على-خادمك-vps",{"fr":180,"en":181,"ar":178,"es":182},"keycloak-sso-vps","deploy-keycloak-for-sso-on-your-vps","desplegar-keycloak-sso-en-un-vps","نشر Keycloak لتسجيل الدخول الموحّد (SSO) على خادمك VPS","انشر Keycloak على خادمك VPS للحصول على تسجيل دخول موحّد (SSO) بمستوى المؤسسات: OIDC وSAML وrealms والاتحاد (federation). دليل Docker كامل ومقارنة.","2026-02-28T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[189],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fkeycloak-sso-vps-poster.svg",{"id":192,"slug":193,"slugs":194,"title":198,"excerpt":199,"readTime":200,"views":201,"isPinned":19,"publishedAt":202,"updatedAt":186,"category":203,"categories":204,"featuredImage":30,"bgImage":31,"posterImage":206,"relatedSolution":207},272,"authentik-أو-authelia-أو-keycloak-اختيار-sso-على-vps",{"fr":195,"en":196,"ar":193,"es":197},"authentik-vs-authelia-keycloak-sso-vps-2026","authentik-authelia-or-keycloak-choosing-your-sso-on-vps","authentik-authelia-o-keycloak-elegir-sso-en-vps","‏Authentik أو ‏Authelia أو ‏Keycloak: اختيار ‏SSO على ‏VPS","‏مقارنة Authentik وAuthelia وKeycloak على VPS: استهلاك الذاكرة الحقيقي، البروتوكولات المدعومة وثغرات Keycloak 26.7.1 لاختيار نظام الهوية الأنسب.",6,1,"2026-08-16T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[205],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fauthentik-vs-authelia-keycloak-sso-vps-2026-poster.svg",{"categorySlug":208,"appSlug":175},"الأمن-السيبراني-والحصن",1792123455770]