كيفية إصلاح INSUFFICIENT_ACCESS في عمليات نشر Salesforce

لا يملك المستخدم أو التكامل الذي يقوم باستدعاء API صلاحيات الكائن أو مستوى الحقل التي تتطلبها العملية.

يظهر أثناء: استدعاءات API وقت التشغيل، سواء عمليات بيانات REST/SOAP أو طلبات التطبيق المتصل (connected app)

المعنى

يعني INSUFFICIENT_ACCESS أن المستخدم المستدعي، وغالبًا ما يكون حساب خدمة تكامل أو CI لا شخصًا، لا يملك صلاحية الكائن أو أمان مستوى الحقل اللازم لإتمام الطلب. إنه فشل صلاحيات لا مشكلة بيانات: السجل والعملية كلاهما صالح، لكن بيانات الاعتماد التي تُشغّل العملية غير مصرّح لها بها.

بما أنه يغطي طبقة التطبيق المتصل و OAuth إضافة إلى عمليات CRUD على الكائنات، فهو الأوسع بين رموز أخطاء الوصول؛ يُعد كل من INSUFFICIENT_ACCESS_OR_READONLY و INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY نسختين أضيق وخاصتين بـ DML من الفكرة الأساسية نفسها.

التشخيص

الأسباب الشائعة

ملف تعريف مستخدم التكامل يفتقر إلى صلاحية الكائن
لم يُمنح حساب الخدمة الذي يُشغّل خط الأنابيب (pipeline) صلاحية الوصول إلى الكائن الذي تكتب إليه خطوة بيانات النشر.
لم يُحدَّث أمان مستوى الحقل لحقل جديد
لم تُحدَّث مجموعة صلاحيات (permission set) يستخدمها حساب خدمة CI عند إضافة حقل مطلوب جديد إلى الكائن.
نطاق التطبيق المتصل أو قيد IP حجب الاستدعاء
لا يغطي نطاق OAuth على التطبيق المتصل هذه العملية، أو رفض قيد نطاق IP سياق الاستدعاء.

الحل

  1. دقّق في مجموعات صلاحيات مستخدم التكامل
    تأكد أن الحساب الذي يُنفّذ عمليات النشر يملك صلاحية صريحة على مستوى الكائن والحقل لكل ما يلمسه خط الأنابيب.
  2. امنح أمان مستوى الحقل (FLS) للحقول الجديدة لمجموعات صلاحيات CI
    أضف أمان مستوى الحقل للحقول المُنشأة حديثًا إلى مجموعة الصلاحيات التي يستخدمها حساب خدمة خط الأنابيب.
  3. راجع نطاقات OAuth وسياسات IP للتطبيق المتصل
    تحقق من أن النطاقات وإعدادات تخفيف قيود IP على التطبيق المتصل تغطي العملية المطلوب تنفيذها.
من واقع الاستخدام

إزاي Serpent بتمنع ده

يُشغّل Serpent عمليات النشر عبر اتصال محدود النطاق بكل مؤسسة، بحيث تظهر فجوة الصلاحيات كفشل واضح في المهمة، بدلًا من نشر جزئي صامت يُكتشف لاحقًا. طالع مكتبة أخطاء نشر Salesforce.

تتبع الموافقات والتدقيق في Serpent

الوقاية

قصر صلاحيات التطبيق المتصل على ما يحتاجه التكامل بالضبط
امنح الحد الأدنى من نطاقات OAuth وصلاحيات الكائن التي يستخدمها التكامل فعليًا، ثم وسّعها بوعي مع إضافة حقول أو كائنات جديدة، بدلًا من البدء بنطاق واسع.
أضف الحقول الجديدة إلى مجموعة صلاحيات التكامل ضمن النشر نفسه
حدّث أمان مستوى الحقل لحساب خدمة CI كجزء من التغيير نفسه الذي يضيف حقلًا مطلوبًا، لا كمهمة لاحقة.
حافظ على تحديث قيود IP للتطبيق المتصل بما يواكب مزوّد CI لديك
تتبّع نطاقات IP المنشورة لمزوّد CI/CD لديك وحدّث عناوين IP الموثوقة للتطبيق المتصل قبل أن تتغيّر، لا بعد فشل عملية تشغيل.
أسئلة شائعة

INSUFFICIENT_ACCESS، بالشرح

هل INSUFFICIENT_ACCESS هو نفسه خطأ صلاحية نشر البيانات الوصفية؟
إنه ذو صلة لكنه مختلف. يتعلق هذا الخطأ بصلاحية الكائن أو الحقل وقت التشغيل للمستخدم المستدعي على عملية سجل، لا بمن يستطيع نشر تغييرات البيانات الوصفية إلى المؤسسة.
هل يمكن أن يتسبب قيد IP في هذا الخطأ حتى مع صلاحيات كائن صحيحة؟
نعم. إذا كان التطبيق المتصل أو الملف الشخصي مضبوطًا بنطاقات IP لتسجيل الدخول ووقع سياق الاستدعاء خارجها، يرفض Salesforce الطلب حتى قبل تقييم صلاحيات الكائن.
هل يهم نطاق OAuth إذا كان ملف المستخدم الشخصي يملك بالفعل صلاحية كاملة؟
نعم. تُفرض نطاقات OAuth وصلاحيات الملف الشخصي بشكل مستقل؛ يمكن لتطبيق متصل يفتقر إلى نطاق api أو full أن يحظر استدعاءً حتى لمستخدم System Administrator.

ابدأ مجانًا. دون بطاقة ائتمان، دون تثبيت، ودون التزام.

الإعداد في أقل من 15 دقيقة. لا حاجة لتوظيف مختص DevOps.

هل تريد معرفة كيف يمكنكم الشحن أسرع قبل البدء؟ لنتحدث

بدون التزام.