So beheben Sie INSUFFICIENT_ACCESS bei Salesforce-Deployments

Der Benutzer oder die Integration, die den API-Aufruf tätigt, verfügt nicht über die Objekt- oder Feldberechtigungen, die der Vorgang erfordert.

Tritt auf bei: Laufzeit-API-Aufrufen, sowohl REST/SOAP-Datenoperationen als auch Connected-App-Anfragen

Was das bedeutet

INSUFFICIENT_ACCESS bedeutet, dass der aufrufende Benutzer, oft ein Integrations- oder CI-Servicekonto statt einer Person, nicht über die Objektberechtigung oder Field-Level Security verfügt, die zum Abschluss der Anfrage nötig ist. Es ist ein Berechtigungsfehler, kein Datenproblem: Datensatz und Vorgang sind beide gültig, aber die ausführende Anmeldeinformation ist dafür nicht autorisiert.

Da er sowohl die Connected-App- und OAuth-Ebene als auch objektbezogenes CRUD abdeckt, ist er der umfassendste der zugriffsbezogenen Fehlercodes; INSUFFICIENT_ACCESS_OR_READONLY und INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY sind beide engere, DML-spezifische Varianten derselben zugrunde liegenden Idee.

Diagnose

Häufige Ursachen

Profil des Integrationsbenutzers hat keinen Objektzugriff
Dem Servicekonto, das die Pipeline ausführt, wurde nie Zugriff auf das Objekt gewährt, in das der Datenschritt des Deployments schreibt.
Field-Level Security wurde für ein neues Feld nicht aktualisiert
Ein vom CI-Servicekonto verwendetes Permission Set wurde nicht aktualisiert, als dem Objekt ein neues Pflichtfeld hinzugefügt wurde.
Connected-App-Scope oder IP-Beschränkung hat den Aufruf blockiert
Der OAuth-Scope der Connected App deckt den Vorgang nicht ab, oder eine IP-Bereichsbeschränkung hat den aufrufenden Kontext abgelehnt.

Die Lösung

  1. Permission Sets des Integrationsbenutzers prüfen
    Stellen Sie sicher, dass das Konto, das Deployments ausführt, expliziten Objekt- und Feldzugriff auf alles hat, was die Pipeline berührt.
  2. FLS für neue Felder den CI-Permission-Sets gewähren
    Fügen Sie Field-Level Security für neu erstellte Felder dem Permission Set hinzu, das das Servicekonto der Pipeline verwendet.
  3. OAuth-Scopes und IP-Richtlinien der Connected App prüfen
    Prüfen Sie, ob die Scopes und IP-Lockerungseinstellungen der Connected App den versuchten Vorgang abdecken.
In der Praxis

Wie Serpent das verhindert

Serpent führt Deployments über eine eingeschränkte Verbindung zu jeder Org aus, sodass eine Berechtigungslücke als klarer Fehler bei der Task auftaucht, statt als stilles Teil-Deployment, das erst später entdeckt wird. Siehe die Bibliothek der Salesforce-Deployment-Fehler.

Freigabe- und Audit-Nachverfolgbarkeit in Serpent

Prävention

Connected-App-Berechtigungen genau auf den Bedarf der Integration begrenzen
Gewähren Sie nur die minimalen OAuth-Scopes und den Objektzugriff, den die Integration tatsächlich nutzt, und erweitern Sie bewusst, sobald neue Felder oder Objekte hinzukommen, statt von Anfang an breit anzusetzen.
Neue Felder im selben Deployment zum Integrations-Permission-Set hinzufügen
Aktualisieren Sie die Field-Level Security des CI-Servicekontos als Teil derselben Änderung, die ein Pflichtfeld hinzufügt, nicht als Folgeaufgabe.
IP-Beschränkungen der Connected App mit Ihrem CI-Anbieter aktuell halten
Verfolgen Sie die veröffentlichten IP-Bereiche Ihres CI/CD-Anbieters und aktualisieren Sie die vertrauenswürdigen IPs der Connected App, bevor sie sich ändern, nicht nachdem ein Lauf fehlgeschlagen ist.
Häufige Fragen

INSUFFICIENT_ACCESS, erklärt

Ist INSUFFICIENT_ACCESS dasselbe wie ein Metadaten-Deployment-Berechtigungsfehler?
Es ist verwandt, aber nicht identisch. Dieser Fehler betrifft den Laufzeit-Objekt- oder Feldzugriff des aufrufenden Benutzers bei einer Datensatzoperation, nicht die Frage, wer Metadatenänderungen in die Org deployen darf.
Kann eine IP-Beschränkung diesen Fehler auslösen, selbst bei korrekten Objektberechtigungen?
Ja. Wenn für die Connected App oder das Profil Login-IP-Bereiche konfiguriert sind und der aufrufende Kontext außerhalb liegt, lehnt Salesforce die Anfrage ab, noch bevor Objektberechtigungen überhaupt geprüft werden.
Spielt der OAuth-Scope eine Rolle, wenn das Profil des Benutzers bereits vollen Zugriff hat?
Ja. OAuth-Scopes und Profilberechtigungen werden unabhängig voneinander durchgesetzt; eine Connected App ohne den api- oder full-Scope kann einen Aufruf sogar für einen System-Administrator-Benutzer blockieren.

Kostenlos starten. Keine Kreditkarte, keine Installation, keine Verpflichtung.

Einrichtung in unter 15 Minuten. Keine DevOps-Fachkraft nötig.

Neugierig auf schnelleres Shipping, bevor Sie einsteigen? Sprechen wir

Unverbindlich.