Hoe je CANT_DISABLE_LAST_ADMIN in Salesforce-deployments oplost

Salesforce blokkeert het deactiveren of bevriezen van de laatste actieve gebruiker met System Administrator-toegang, om te voorkomen dat de org wordt vergrendeld.

Komt voor bij: runtime gebruikersbeheer-DML, geen metadata-deployment

Wat het betekent

CANT_DISABLE_LAST_ADMIN treedt op wanneer een bewerking probeert om de laatste actieve gebruiker met adminrechten te deactiveren, te bevriezen of anderszins toegang te ontnemen. Salesforce dwingt dit af als beveiliging: een org zonder actieve admins kan niet via de UI worden hersteld, dus het platform weigert de wijziging domweg in plaats van dit per ongeluk te laten gebeuren.

Het geldt voor elke gebruiker met het equivalent van System Administrator-toegang, niet alleen het profiel dat letterlijk zo heet, dus een custom profiel of combinatie van permission sets die "Modify All Data" plus "Manage Users" toekent kan dezelfde bescherming activeren.

Diagnose

Veelvoorkomende oorzaken

Bulk-deprovisioning deactiveert admins zonder het aantal te controleren
Een offboardingscript deactiveert een groep gebruikers, inclusief admins, zonder te controleren hoeveel actieve admins er daarna overblijven.
Oude admin wordt gedeactiveerd voordat de nieuwe volledig actief is
Een overdrachtsproces schakelt de toegang van de vertrekkende admin uit voordat het account en de rechten van de vervangende admin bevestigd actief zijn.
Wijzigingen in permission sets verwijderen org-breed adminequivalente toegang
Een deployment werkt permission set-toewijzingen zo bij dat "Modify All Data" bij elke resterende actieve gebruiker tegelijk wordt ontnomen.

De oplossing

  1. Bevestig dat er nog een andere actieve admin bestaat voordat je er een deactiveert
    Controleer het aantal actieve gebruikers met System Administrator- of gelijkwaardige toegang voordat een deprovisioningstap wordt uitgevoerd.
    SELECT COUNT(Id) FROM User
    WHERE IsActive = true AND Profile.PermissionsModifyAllData = true
  2. Activeer eerst de vervangende admin
    Orden de offboarding zo dat het account en de rechten van de nieuwe admin bevestigd werken voordat de oude wordt uitgeschakeld.
  3. Voeg een controle op het aantal admins toe aan pre-deploy- of pre-deprovisioningscripts
    Bouw een beveiliging in de automatisering zelf in, zodat er nooit een wijziging kan worden doorgevoerd die nul actieve admins zou achterlaten.
In de praktijk

Hoe Serpent dit voorkomt

De org-toegang van Serpent is gekoppeld aan de taak- en deploymentgeschiedenis, zodat een deprovisioningscript dat een org zonder actieve admin zou achterlaten duidelijk mislukt in plaats van een sandbox of scratch org stilzwijgend te vergrendelen. Zie de bibliotheek met Salesforce-deploymentfouten.

Goedkeurings- en audittraceerbaarheid in Serpent

Preventie

Houd te allen tijde minstens twee actieve admins per org aan
Behandel een org met één admin als een incident in wording; een tweede actief adminaccount is de goedkoopste verzekering tegen deze fout en tegen uitsluiting in het algemeen.
Automatiseer offboarding als geordende stappen, niet als één batch
Splits "nieuwe admin toekennen" en "oude admin intrekken" op in afzonderlijke, opeenvolgende stappen met een verificatiepunt ertussen.
Controleer permission set-deployments op org-brede toegangswijzigingen
Markeer elke deployment die Modify All Data of Manage Users bij meerdere gebruikers tegelijk aanpast voor handmatige controle voordat deze wordt uitgevoerd.
Veelgestelde vragen

CANT_DISABLE_LAST_ADMIN, uitgelegd

Blokkeert dit ook het bevriezen van een adminaccount, niet alleen het deactiveren ervan?
Ja. Dezelfde bescherming geldt voor het bevriezen van de laatste actieve admin, aangezien een bevroren gebruiker ook niet kan inloggen.
Maakt het uit welk profiel de admin gebruikt, of alleen het rechtenniveau?
Het rechtenniveau is bepalend. Elke actieve gebruiker wiens profiel of permission sets adminequivalente toegang verlenen, met name Modify All Data, telt mee voor het minimum, ongeacht de naam van het profiel.
Wat als ik de enige admin daadwerkelijk moet verwijderen, bijvoorbeeld bij het uitfaseren van een org?
Deactiveer eerst alle andere gebruikers en laat de admin als laatste actief, of neem contact op met Salesforce-support als de org zelf volledig wordt uitgefaseerd.

Begin gratis. Geen creditcard, geen installatie, geen verplichtingen.

Binnen 15 minuten ingericht. Geen DevOps-specialist nodig.

Benieuwd naar sneller releasen voordat je instapt? Laten we praten

Vrijblijvend.