أغلِق موقعًا كاملًا ببوّابة على وكيلك العكسي
الطريقة المعتادة لاستخدام Caputchin هي إدراج الأداة في صفحة والتحقّق من الرمز من خادمك الخلفي. يحتاج ذلك مكانًا لوضع الأداة وخادمًا خلفيًّا لفحص الرمز. بوّابة صفحة الوكيل لا تحتاج أيًّا منهما. تضع تحقّقًا بملء الصفحة أمام موقع أو مسار كامل عند وكيلك العكسي: يُتِمّ زائر تحقّقًا واحدًا، ويكسب تصريحًا قصير العمر، ويتجوّل في الموقع حتى ينتهي التصريح. والتحقّق لعبة قصيرة أو تأكيد بنقرة واحدة، أيّهما اخترت. التطبيق المحمي لا يُمَسّ أبدًا.
بما أنه لا يُضاف شيء إلى التطبيق نفسه، هذه هي طريقة حماية المضيفين الذين لا تستطيع إدراج سكربت فيهم، بوّابة تسجيل دخول أحادية الصفحة مُصرَّفة، أو جهاز مغلق، أو أداة داخلية تجلس خلف وكيل مصادقة.
لمن هي
الجأ إلى البوّابة حين لا تناسب الأداة المضمّنة:
- التطبيق لا مكان فيه للأداة. بوّابة تسجيل دخول محكمة (مثل Authelia)، أو جهاز مورّد، أو أي واجهة لا تستطيع تحريرها.
- تريد إغلاق سطح كامل ببوّابة، لا نموذجًا واحدًا. "أثبِت أنك إنسان قبل أن تبلغ هذا الموقع" بدل فحص على إرسال واحد.
- لا خادم خلفي لديك للتحقّق من رمز. الوكيل هو من يفرض القاعدة؛ ولا نداء
/siteverifyلتكتبه.
لصفحة أو نموذج عادي تتحكّم فيه، أدرِج الأداة بدلًا من ذلك، فهي أخفّ ولا تعيد توجيه الزائر. إن كان لديك نموذج بلا خادم خلفي، فإن التحقّق المُستضاف أنسب.
كيف تعمل
حلٌّ واحد يشتري طلبات كثيرة. يُتِمّ الزائر التحقّق مرة واحدة؛ وبعدها يمرّر كوكي طرف أول طلباته حتى ينتهي.
يجري الوكيل نداء مُخوِّل صغيرًا إلى Caputchin على كل طلب. حين لا يحمل الطلب تصريحًا صالحًا، يجيب Caputchin بـ 401 ويعيد الوكيل توجيه الزائر إلى التحدّي المُستضاف. وحين يكون التصريح حاضرًا وصالحًا، يجيب Caputchin بـ 204 ويمرّر الوكيل الطلب إلى تطبيقك.
كوكي السماح
يعيش التصريح في كوكي طرف أول، اسمه cpt_gate افتراضيًّا وقابل لإعادة التسمية لكل مفتاح موقع، يضبطه على نطاقك أنت ردّ نداء صغير تستضيفه (على /__cpt/callback افتراضيًّا، وهو قابل للنقل أيضًا). إنه رمز موقّع قصير العمر، غير مربوط بجهاز، فسلامته تأتي كلّها من سمات الكوكي (HttpOnly، وSecure، وSameSite=Lax) ومن مدّة TTL قصيرة تختارها. ولأنه يضبط كوكي على زوّارك، أفصِح عنه في سياسة الكوكي عندك. دليل الإعداد يمرّ عبر ردّ النداء والسمات المطلوبة.
ما الذي تُرك عمدًا
- لا بوّابة ذاتية الاستضافة. يستضيف Caputchin التحدّي ويتحقّق من التصريح؛ وأنت لا تشغّل مُتحقّقًا. وكيلك يمرّر كوكي ويتبع عمليات إعادة التوجيه فقط.
- فحص لكل طلب، لا تحقّق محلّي من الرمز. يسأل الوكيل Caputchin على كل طلب. ووضع الفشل الذي تختاره (مفتوح أو مغلق) يقرّر ما يحدث إن صار Caputchin غير قابل للوصول لبرهة.
- سماح لكل مفتاح موقع، بنطاق كوكي. يمرّر التصريح أصلًا واحدًا، لا حسابًا كاملًا ولا عدّة نطاقات، لأنه كوكي طرف أول عادي.
- لا صياغة مخصّصة. أنت تختار لغة صفحة التحقّق وسمتها، لا نصّها.
- ليست جلسة ولا تسجيل دخول. تثبت البوّابة أن إنسانًا بلغ الموقع؛ ويبقى تطبيقك يتولّى المصادقة وحدود المعدّل الخاصّة به. الاثنان يتراكمان.
ما الذي يراه الزائر
تتكلّم صفحة التحقّق لغة الزائر نفسه وتتبع تفضيله الفاتح أو الداكن، وتحمل هوية العلامة نفسها التي تحملها الأداة على مفتاح الموقع هذا، لأنها تشتقّ الاثنين من مفتاح الموقع نفسه الذي ضبطته سلفًا. وبوسعك بدل ذلك تثبيت لغة أو سمة، والاختيار بين لعبة ومربّع اختيار بنقرة واحدة، من صفحة بوّابة الوكيل لمفتاح الموقع. انظر خصّص التحدّي.
انظر أيضًا
- أعدّ بوّابة صفحة الوكيل: فعّلها وصِل وكيلك من طرف إلى طرف.
- خصّص التحدّي: لعبة أو مربّع اختيار، واللغة، والسمة، واسم الكوكي، ومسار ردّ النداء.
- وصفات الوكيل العكسي: nginx، وTraefik، وCaddy، ومثال Authelia المحلول.
- إحصاءات بوّابة صفحة الوكيل: اقرأ نسبة المرور المباشر إلى التحدّي.
- التحقّق المُستضاف: الخيار بلا خادم خلفي حين يكون لديك فعلًا نموذج توجّهه إلينا.