تسجيل الدخول إلى Salesforce CLI عبر شبكة VPN: واجهة CLI والمتصفح ومضيف API
يمكن أن يعمل CLI والمتصفح وطلب API اللاحق على ثلاثة مضيفات مختلفة. حدّد كلًا منها قبل أن تلوم النفق أو المؤسسة أو الرمز المخزَّن مؤقتًا.
تُبلَّغ أعطال تسجيل الدخول إلى Salesforce CLI على أنها مشكلة واحدة، لكنها عادةً ثلاث. تعمل عملية CLI في مكان ما، ويعمل المتصفح الذي يُكمل تدفق الويب في مكان ما، ويعمل طلب API اللاحق في مكان ما، ولا يلزم أن تتشارك هذه الأماكن الثلاثة مسارًا أو محللًا أو قائمة سماح. ومقارنتها أسرع طريقة لمعرفة أيّها يحجبه النفق فعليًا. ولا يذكر أي شيء في مخرجات تسجيل الدخول أيّ الثلاثة قد فشل.
ثلاثة مضيفات وقصة دخول واحدة
يُسلّم تدفق تسجيل الدخول عبر الويب خطوة الهوية إلى متصفح، وهذا المتصفح غالبًا على حاسوبك المحمول بينما يجلس CLI على مضيف تطوير بعيد أو داخل حاوية. الحاسوب المحمول لديه عميل VPN، والمضيف البعيد لديه ما منحه فريق المنصة، ولا يغطي أي من الترتيبين الآخر تلقائيًا. وأيقونة VPN في شريط الحالة لا تقول شيئًا عن مضيف لم يشغّل العميل قط.
بعد تسجيل الدخول، يرسل CLI طلبات API الخاصة به من حيث تعيش العملية. تحتاج تلك الطلبات إلى DNS والتوجيه وثقة TLS وتفويض العميل من جانب المؤسسة، وهي أربعة فحوص منفصلة يمكن أن يفشل كل منها بمفرده. والمتصفح الذي سجّل الدخول ببراعة لا يخبرك بشيء عن أي منها.
أبقِ النصفين في خط زمني واحد، لكن قيّمهما منفصلين. عندئذٍ تستطيع تذكرة واحدة أن تقول أيّ النصفين انكسر دون أن تحوّل ذلك إلى جدال حول الملكية.
خُذ مدخل المؤسسة من المؤسسة لا من الذاكرة
يأخذ تدفق الويب عنوان URL للنظام الأساسي ويخزّن النتيجة تحت اسم مستعار، وينبغي أن تأتي القيمتان من مالك المؤسسة لا من سجل الطرفية لدى زميل. ومضيف بيئة اختبار منسوخ من تذكرة قديمة سبب شائع لتسجيل دخول يُصادق على المؤسسة الخطأ ثم يُفشل كل استعلام.
استخدم الشكل الذي توثقه الإضافة المثبَّتة، بمضيفك واسمك المستعار المعتمدين. ذلك التوثيق هو المرجع للأعلام التي تغيرت بين sfdx وCLI الحالي.
sf org login web --instance-url https://acme--uat.sandbox.my.salesforce.com --alias uat
sf org display --target-org uatاسم المضيف والاسم المستعار أعلاه مثالان، وليسا قيمًا افتراضية ينبغي نسخها. أكمل خطوات هوية المتصفح وMFA المعتادة بدلًا من الالتفاف عليها بالبرمجة النصية، ولا تضع أبدًا كلمة مرور أو معرّف جلسة أو بذرة مصادقة داخل أمر صدفة لتخطي المطالبة.
ما يثبته التفويض المخزَّن مؤقتًا
الاسم المستعار الذي يظهر في قائمة المصادقة المحلية يثبت أن تسجيل دخول نجح مرة على ذلك الجهاز. وتُقرأ القائمة من التخزين المحلي ولا تتصل بالمؤسسة لتأكيد أن الرمز ما زال يعمل، لذا يمكن أن يكون المدخل السليم المظهر وطلب API المرفوض صحيحين معًا. تعامل مع ذاكرة التخزين المؤقت كسجل للماضي لا كاختبار اتصال حيّ. وفحص ذاكرة التخزين المؤقت يجيب عن سؤال دعم، لكنه لا يغلق تحقيق اتصال أبدًا.
ينطبق التمييز نفسه على جلسة المتصفح. تبويب لا يزال يعرض المؤسسة لا يعني أن رمز CLI المخزَّن يطابق السياسة الحالية، لأن عمر الرمز وقيود IP وقواعد تطبيق العميل تُفرض عند حدود API.
اقرأ السجل المحلي قبل أن تحذفه، لأن الاسم المستعار ومضيف المؤسسة هما الحقيقتان التي سيطلبها الدعم. إزالة اسم مستعار قابلة للتراجع، لكن إزالة الاسم الخطأ في منتصف حادثة تضيف مشكلة ثانية فقط.
أين يُرفض طلب API فعليًا
اتبع طلبًا واحدًا من البداية إلى النهاية ولاحظ أي مكوّن يجيب. فشل TLS يسمّي مشكلة مختلفة عن 403، الذي يسمّي مشكلة مختلفة عن المهلة، والمهلة هي الوحيدة من الثلاثة التي تشير إلى النفق كمشتبه به أول. وقراءة صنف الخطأ قبل الرسالة توفر الكثير من التخمين. اكتب الصنف قبل أن تعيد تشغيل أي شيء.
قيود عنوان المصدر هي الحالة التي تُنتج تسجيل دخول يعمل واستعلامًا لا يعمل، لأن تدفق المتصفح وطلب API يمكن أن يخرجا عبر عنوانين مختلفين. وإصلاح ذلك بقائمة سماح أوسع قرار يخص مالك المؤسسة لا وسيلة راحة، وينبغي أن يكون أصغر نطاق يغطي المضيف.
سجّل الأمر الفاشل والاسم المستعار ومضيف التنفيذ والطابع الزمني، واترك الرمز خارج كل ما تلصقه في التذكرة. ذلك الملخص المكوَّن من أربعة أسطر هو ما يحتاجه مالك المؤسسة لفحص جهته.
افحص التدفق من المضيف الذي سيستخدمه
اختبر من الجهاز الذي سيشغّل العبء. تسجيل دخول جرى التحقق منه على حاسوبك المحمول لا يقول شيئًا عن وكيل بناء في منطقة شبكة أخرى، والفرق هو بالضبط ما تحاول إيجاده.
استخدم قراءة مصرَّحًا بها غير ضارة للفحص، واحتفظ بالخطأ الأول إن فشل.
sf org list auth
sf org display --target-org uat
sf data query --target-org uat --query "select Id, Name from Organization"عندما ينجح تسجيل الدخول ويفشل الاستعلام، تكون المرشحات المتبقية هي DNS والتوجيه واعتراض TLS وسياسة العميل من جانب المؤسسة، ولكل منها مالكه. وعندما يفشل تسجيل الدخول نفسه، فالمتصفح وCLI على الأرجح ليسا على المضيف نفسه، والإصلاح يعود إلى الترتيب بينهما لا إلى النفق. وتحصل الأتمتة على قاعدة أخرى: تحتاج أي مهمة غير مراقبة إلى تسجيل دخول معتمد قائم على الشهادة، لأن جلسة تفاعلية مخزَّنة مؤقتًا منسوخة إلى عامل ليست تصميم هوية.