يحتفظ Immich بهوية الحساب على الخادم، بينما يقدّم العملاء المحليون والبعيدون بيانات اعتماد الجلسة عبر مسارات قد تختلف في المصدر والوكيل وإعادة التوجيه.
قد يكون المستخدم نفسه على الشبكة المحلية ومن خارج المنزل، ومع ذلك لا يتعامل المتصفح وتطبيق الهاتف والوكيل العكسي وموفّر الهوية مع كل عملية انتقال بالطريقة نفسها. لذلك ينبغي تتبّع إخفاقات المصادقة بدءًا من إصدار بيانات الاعتماد، مرورًا بالنقل، ووصولًا إلى التحقق منها على الخادم.
الهوية وبيانات اعتماد الجلسة طبقتان مختلفتان
تثبت المصادقة الهوية أولًا، ثم تعرض الطلبات اللاحقة بيانات الجلسة التي يتحقق منها الخادم. وقد تتوافق كلمة المرور الصحيحة أو نتيجة موفّر الهوية مع فشل الجلسة لاحقًا إذا كان الرمز مفقودًا أو منتهي الصلاحية أو مخزنًا تحت مصدر آخر أو مُرسلًا عبر مسار يفسره الخادم بطريقة مختلفة.
يوضح دليل مستقل حول تهيئة Authelia OIDC لـ Immich مشاركة موفّر هوية خارجي في تسجيل الدخول، مع بقاء Immich هو التطبيق الوجهة. وهذا يوضح الحد الفاصل: يثبت الموفّر الهوية عبر عمليات إعادة التوجيه، لكن Immich لا يزال يطابق النتيجة مع مستخدمه وسلوك جلسته الخاصين.
عند تصحيح الأخطاء، سجّل ما إذا كان الفشل يحدث قبل قبول بيانات الاعتماد، أو أثناء استدعاء إعادة التوجيه، أو في طلب API لاحق. فهذه النقاط تشير إلى مكونات مختلفة. لا يمكن لإعادة تعيين كلمات المرور مرارًا إصلاح عدم تطابق عنوان URL للاستدعاء، كما أن تعديلات الوكيل لا يمكنها إصلاح حساب Immich معطّل.
تُنشئ عناوين URL المحلية والبعيدة سياقات مختلفة للعملاء
قد يصل عنوان محلي واسم مضيف عام إلى حاوية Immich نفسها، لكن العملاء يرون مخططات ومضيفين وشهادات وإجابات DNS وقفزات وكيل مختلفة. يقسّم المتصفح مساحة التخزين حسب المصدر، بينما يمكن للعملاء الأصليين تطبيق قواعدهم الخاصة بإعادة التوجيه والشهادات. ولا يستمرّ الاتصال بالجلسة تلقائيًا عبر هذه الحدود.
تذكر حالة في مجتمع Caddy أن Authelia يعمل مع Immich في متصفح الويب، بينما يُظهر تطبيق الهاتف أخطاءً. هذا تصميم وكيل واحد، لكنه يوضح النقطة الأوسع: نجاح المصادقة في المتصفح لا يتحقق من صحة تدفق إعادة التوجيه وطلبات API لدى العميل الأصلي.
اختبر كل تركيبة مدعومة بوضوح: متصفح عبر الشبكة المحلية، ومتصفح عن بُعد، وهاتف عبر الشبكة المحلية، وهاتف عن بُعد. سجّل عنوان URL الدقيق وخطوة الفشل. إذا فشل سياق واحد فقط، فقارن سلسلة شهادته ومعرّف إعادة التوجيه ومعالجة ملفات تعريف الارتباط أو الرموز ومسار DNS قبل تغيير أذونات المستخدمين المشتركة.
يجب أن يحافظ الوكيل على سياق الطلب
ينهي الوكيل العكسي النقل أو يمرره قبل وصول الطلبات إلى Immich. وقد يعتمد التطبيق على المخطط والمضيف ومعلومات العميل المُمرّرة لإنشاء الروابط أو تقييم سياق الطلب. ويمكن أن يؤدي التحويل غير الصحيح إلى توجيه الاستدعاءات إلى مصدر خاطئ أو إلى جعل جلسة صالحة تبدو غير متسقة.
تؤكد مقالة مسار بيانات Immich من ZimaSpace أن سلوك التطبيق الظاهر يمر عبر عدة تبعيات، وليس عبر حدود حاوية واحدة فقط. وينطبق المنطق نفسه على المصادقة: إذ يشارك DNS وإنهاء TLS وتوجيه الوكيل والتطبيق وأي موفّر هوية قبل نجاح طلب وسائط مصادق عليه.
افحص تتبع شبكة المتصفح أو سجلات وكيل الهاتف من تسجيل الدخول الأولي حتى طلب API واحد مصادق عليه. تأكد من بقاء المخطط والمضيف الظاهرين خارجيًا متسقين أثناء عمليات إعادة التوجيه. ثم تحقّق من أن التطبيق يتلقى معلومات التمرير المقصودة. غيّر إعدادًا واحدًا للوكيل في كل مرة، واحتفظ بمسار محلي معروف بأنه يعمل.
تحقق من استمرارية الجلسة باستخدام مصفوفة المسارات
أنشئ صفوفًا للمتصفح والهاتف، وأعمدة للوصول المحلي والبعيد. في كل خلية، اختبر تسجيل دخول جديدًا، وإعادة تحميل الصفحة أو المخطط الزمني، وإعادة تشغيل التطبيق، وتجديد الرمز بعد مرور الوقت، وتسجيل الخروج، والوصول إلى أصل يملكه حساب اختباري آخر. لا تستخدم صورًا مخصصة للإنتاج فقط لاختبار الأذونات.
يغطي دليل الوصول عن بُعد الآمن الخاص بـ Immich نفق HTTPS والاتصال عن بُعد والمراقبة واستكشاف الأخطاء وإصلاحها. وتكمن قيمته المعمارية في أن الإتاحة عن بُعد تضيف طبقة وصول حول التطبيق؛ ويجب اختبار هذه الطبقة من دون افتراض أنها تغيّر ملكية المستخدم الأساسية أو نموذج التفويض في Immich.
صنّف الإخفاقات حسب أول خطوة تتعطل: إمكانية الوصول، أو TLS، أو إعادة التوجيه، أو قبول بيانات الاعتماد، أو استمرار الجلسة، أو تفويض الوصول إلى الأصل. ولا تكتمل المصفوفة إلا عند رصد النجاح والرفض المقصود معًا. فالجلسة التي تبقى مسجّلة للدخول لكنها تكشف أصول مستخدم خاطئ ليست نجاحًا في المصادقة.
مركز التكنولوجيا والذكاء الاصطناعي
المزيد للقراءة

ما هي حالة Immich، وما الأجزاء التي يجب أن تستمر؟
تتضمن حالة Immich الملفات الأصلية، والعلاقات في قاعدة البيانات، والهوية، والإعدادات، والمشتقات؛ احفظ كل عنصر منها وفقًا لإمكانية إعادة إنشائه.

ما الذي يسبب بطء البحث أو نتائج الاستعلام في Immich مع ازدياد حجم البيانات؟
يمكن لنمو Immich أن يوسّع الفهارس، ويُخرج الصفحات النشطة من الذاكرة، ويعقّد عمليات التصفية، ويؤخر تسليم الوسائط؛ لذا افصل هذه المراحل قبل الضبط.

لماذا يتصرف Immich بشكل مختلف بعد إعادة تشغيل الحاوية؟
بعد إعادة تشغيل Immich، يُتوقَّع فقدان ذاكرة التخزين المؤقت المؤقتة؛ أما التغييرات المستمرة في تسجيل الدخول أو قاعدة البيانات أو الوسائط فتشير إلى أعطال...

