Worauf muss ich bei Salesforce Permission Sets und Berechtigungen achten? Welche Salesforce Tools und Best Practices gibt es? In diesem Blogbeitrag geben wir Tipps und Tricks und liefern Beispiele.
Salesforce Permission Sets – Berechtigungskonzept
Ein Berechtigungskonzept welches auf Salesforce Permission Sets basiert, bietet dir viele Vorteile gegenüber einem klassischen Berechtigungskonzept, welches auf Profilen basiert.
Wenn du noch mehr über Berechtigungen in Salesforce erfahren möchtest, habe ich dir hier einen Blogbeitrag verlinkt.
Aufbau Berechtigungen
Berechtigungen Salesforce Profile
In deinen Salesforce Profilen solltest du nur so wenig Berechtigungen wie möglich vergeben. Um neue Profile zu erstellen, klone am besten das Salesforce Minimum Access Profil. Das neue Profil sollte dabei jedoch die Default Werte für Apps, Record Types und Page Layouts enthalten.
Berechtigungen Salesforce Permission Sets
Die weiteren Berechtigungen wie Objekt Berechtigungen, System Berechtigungen oder APEX Klassen solltest du über Permission Sets vergeben. Mit den Permission Sets kannst du sehr fein granulierte Berechtigungen an deine Benutzer vergeben.
Übersicht Berechtigungen Profil und Permission Set
Anbei eine Übersicht über die unterschiedlichen Salesforce Berechtigungen und ob diese mit Profilen oder Permission Sets vergeben werden sollten:
Salesforce Profile | Salesforce Permission Sets |
– Record Type (Default) – App (Default) – Page Layout Zuweisungen – Login Hours – Login IP Ranges | – System Berechtigungen – App Berechtigungen – Objekt Berechtigungen – FLS (Field Level Security) – Record Type (keine Defaults) – App (keine Defaults) – Tabs – Connected Apps – APEX Klassen – Visualforce Seiten – Custom Permission – Custom Metadata Types – Organization-Wide Email Address Access – Email-to-Case Routing Address Access |
Berechtigungen Permission Set Groups
Du kannst einzelne Permission Sets in einer Permission Set Group zusammenfassen. Die Permission Set Group sollte den Berechtigungen entsprechen, die für eine bestimmte Jobposition benötigt wird. So hast du die Berechtigungen für eine Jobposition zusammengefasst und musst nur eine Permission Set Group zuweisen, anstatt mehrere Permission Sets.
Zusammenspiel von Profilen, Permission Sets und Permission Set Groups
Als erstes weist du deinen Benutzern ein Profil zu, welches die absoluten Basis Berechtigungen enthält. Das Profil sollte wenn möglich nur die Defaultwerte beinhalten.
Als nächstes erstellst du Permission Sets auf Basis von Funktionen (wie zum Beispiel eine Custom Permission, um mit einem Button einen Flow zu starten) oder Objekt Berechtigungen auf ein bestimmten Objekt (zum Beispiel Leads) zu geben.
Dann kannst du einzelne Permission Sets zu einem Permission Set Group zusammenfassen, um die gesamten Berechtigungen für eine Jobposition in Salesforce abzubilden.
Als letztes weißt du den Benutzern die entsprechenden Permission Set Groups zu. Da du einem Benutzer auch mehrere Permission Set Groups zuweisen kannst, können so die Berechtigungen für zwei Jobpositionen an einen Benutzer vergeben werden. Wenn du zum Beispiel einen Benutzer hast, der in der Marketing Abteilung und im Vertrieb arbeitet, kannst du ihm beide Permission Sets Groups (Marketing und Vertrieb) zuweisen. Mit Profilen war dies nicht so einfach möglich, da jeder Benutzer nur ein Profil haben kann.
Zusätzlich zu dem Permission Set Group kannst du einzelnen Benutzern auch noch einzelne Permission Sets zuweisen, um die Berechtigungen noch feiner zu vergeben. Wenn du zum Beispiel einen Benutzer im Marketing hast, der nur Opportunities bearbeiten soll, aber nicht alle Berechtigungen für den Vertrieb haben soll, kannst du ihm ein einzelnen Permission Set mit den Berechtigungen für Opportunities zuweisen.
Anbei noch ein Schaubild über das Zusammenspiel am Beispiel von Handwerkern:

Best Practice Beispiele
Es gibt verschiedene Ansätze, wie du dein Berechtigungskonzept aufbauen kannst. Ich möchte an dieser Stelle zwei verschiedene Konzepte kurz erläutern. Es gibt dabei jedoch kein richtig oder falsch und du solltest darauf achten, dass dein Berechtigungskonzept zu deiner Org passt. Wenn du eine sehr „komplexe“ Org mit vielen verschiedenen Funktionen, benutzerdefinierten Objekten und unterschiedlichen Benutzern hast, wird dein Berechtigungskonzept wahrscheinlich auch etwas komplizierter ausfallen. Du wirst wahrscheinlich mehr Permission Sets und Permission Set Groups benötigen, als in einer „einfachen“ Org, die nur die Salesforce Standard Funktionen und Objekte verwendet.
Allgemeine Berechtigungen in Profilen und Permission Sets
Berechtigungen in Profilen
Du erstellst so wenig Profile wie möglich, die den Benutzern einen Basisumfang an Funktionen geben. Versuche dabei so wenig Funktionen wie möglich über das Profil zu berechtigen. Anbei ein Beispiel hierzu mit drei Profilen:
- System Administrator Profil
- API/Integration Profil
- Basis Profil
Berechtigungen in Permission Sets
Du erstellst Permission Sets mit unterschiedlichen Berechtigungsleveln und um verschiedene Funktionen in Salesforce zu berechtigen. Anbei einige Beispiele hierzu:
Permission Set Basis Objekte in Salesforce
Zugriff auf die Salesforce Objekte, die alle Benutzer haben sollen. Zum Beispiel Lese- und Schreibzugriff auf Accounts.
Permission Set Basis Zugriff
Zugriff zum Beispiel auf APEX Klassen, Visualforce Pages, etc. die alle Benutzer haben sollen.
Permission Set Basis System Permissions
Zugriff auf alle System Permissions, die alle Benutzer haben sollen, wie zum Beispiel Run Reports.
Permission Set Delete auf Basis Objekte
Zum Beispiel die Berechtigung Accounts zu löschen. Dieses Permission Set kannst du später Benutzern zuweisen, die mehr Berechtigungen haben sollen, als die „Basis“ Benutzer.
Permission Set für einzelne Jobpositionen in Salesforce
Zum Beispiel ein Permission Set mit allen Berechtigungen, die ein Vertriebsmitarbeiter in Salesforce benötigt. Das können Berechtigungen für das Objekt Lead sein oder eine Berechtigung für eine Vertriebs App.
Permission Sets für einzelne Funktionen
Hier kannst du zum Beispiel alle Berechtigungen für Reports gruppieren, um Reports zu erstellen oder zu exportieren.
Permission Sets in Permission Set Groups zusammenfassen
Diese Permission Sets kannst du dann in Permission Set Groups zusammenfassen.
Permission Set Group für Basis Berechtigungen
Du kannst so zum Beispiel das Permission Set Group Basis Berechtigungen mit den Permission Sets Permission Set Basis Objekte in Salesforce, Permission Set Basis Zugriff und Permission Set Basis System Permissions erstellen. Diese Permission Set Group gibt deinen Benutzern die Basisberechtigungen in Salesforce. Dieses kann als Basis für alle Benutzer verwendet werden.
Spezifische Permission Set Groups (z.B. Super User)
Zusätzlich zu dem Permission Set Group mit den Basis Berechtigungen, kannst du weitere Permission Set Groups erstellen mit zusätzlichen und spezifischeren Berechtigungen, die du den Benutzern zuweisen kannst. Zum Beispiel ein Super Benutzer Permission Set Group mit den Permission Sets Permission Set Delete auf Haupt Objekte und dem Reporting Permission Set.
Fazit Allgemeine Berechtigungen in Profilen und Permission Sets
Diesen Ansatz kannst du implementieren, wenn du eine relativ „einfache“ Org hast und von Anfang an verschiedene Abstufungen in der Tiefe der Berechtigung vergeben möchtest. Wenn du deinen Benutzern keine unterschiedlichen Default Werte für Record Types, Apps oder auch Login Hours zuweisen möchtest. Ich habe dir hier noch ein Video verlinkt, in dem dieser Ansatz tiefer erklärt wird.
Berechtigungen in Profilen und Permission Sets auf Basis von Profilen/Jobpositionen
Berechtigungen in Profilen
Wenn du bereits unterschiedliche Profile in Salesforce hast, wie zum Beispiel das Profil Marketing User oder Sales User, behältst du diese Profile und die enthaltenen Default Werte wie Record Types, Apps oder Login Hours. Bis auf die Default Werte kannst du alle weiteren Berechtigungen aus diesen Profilen löschen.
Wenn du eine neue Org hast und noch keine Profile, kannst du die Profile für die unterschiedlichen Jobpositionen erstellen. Achte dabei darauf so wenig Profile wie möglich zu erstellen. Wenn zwei unterschiedliche Jobpositionen die gleichen Default Werte benötigen, reicht hierfür ein Profil.
Berechtigungen in Permission Sets
Du erstellst Permission Sets für die unterschiedlichen Profile/Jobpositionen und für zusätzliche Funktionen.
Permission Sets Profile/Jobpositionen
Du erstellt zum Beispiel ein Permission Set für das Profil/Jobposition Sales User. In diesem Permission Set sind alle Berechtigungen enthalten, die als Basis benötigt werden. Dies sind zum Beispiel die benötigten Objekt Berechtigungen, Feldberechtigungen oder System Permissions. Wenn du bereits vorher das Profil Sales User hattest, sind alle Berechtigungen, die du aus dem Profil gelöscht hast in diesem Permission Set enthalten.
Permission Sets Funktionen
Hier kannst du zusätzliche Funktionen berechtigen, um zum Beispiel einen Flow zum Erstellen eines PDF Files für ein Angebot zu berechtigen.
Permission Sets in Permission Set Groups zusammenfassen
Permission Set Groups Profil/Jobposition
Für jedes Profil/Jobposition erstellst du ein Permission Set Group, welches alle Basis Berechtigungen beinhaltet und zusätzliche Funktionen, die benötigt werden. Dieses Permission Set Group kannst du dann den Benutzern mit dem Profil/Jobposition zuweisen.
Fazit Berechtigungen in Profilen und Permission Sets auf Basis von Profilen/Jobpositionen
Wenn du eine „komplexere“ Org hast und für deine Benutzer viele unterschiedliche Default Werte benötigst, kann dieser Ansatz dir helfen. Auch wenn du bereits eine bestehende Org hast könnte es einfacher oder schneller sein diesen Ansatz zu wählen.
Wenn du die Vergabe der FLS auf Permissions Sets umstellst, hast du außerdem den Vorteil, dass du dir die Permission Sets mit den Basis Berechtigungen für die Profile/Jobpositionen angezeigt werden. Du kannst also auch weiterhin sehr übersichtlich und fein beim Erstellen neuer Felder die FLS vergeben.
Profile in Permission Set umwandeln
Wenn du bereits eine bestehende Org mit Profilen hast und diese in Permission Sets umwandeln möchtest, gibt es hierzu verschiedene Möglichkeiten. Du solltest dir jedoch als erstes einen Überblick über deine bestehenden Profile und Permission Sets machen
Analyse Profile und Permission Sets
Analyse Profile
Zuerst solltest du dir einen Überblick verschaffen welche Profile in deiner Org überhaupt verwendet werden. Wenn du eine ältere Org hast, kann es durchaus sein, dass es Profile gibt, die keinem Benutzer zugewiesen sind. Diese benötigst du im weiteren Verlauf nicht mehr. Wenn es sich um benutzerdefinierte Profile handelt, kannst du sie löschen.
Du findest heraus welche Profile Benutzern zugeordnet sind, in dem du auf dem Profil den Button „View Users“ klickst. Salesforce zeigt dir dann die Liste der Benutzer an. Eine andere Möglichkeit besteht darin über die Listenansicht der Benutzer nach Profilen zu sortieren.
Analyse Permission Sets
Du hast die Möglichkeit einen Report Type über die Permission Assignments zu erstellen und Reports zu den Permission Set Assignments zu erstellen. So findest du übersichtlich heraus welche Permission Sets verwendet werden und welche Benutzer diese und Profile/Jobpositionen diese Permission Sets diese zugewiesen haben. Ich habe dir hier einen Blogartikel mit einer Klickanleitung verlinkt.
Was in den Permission Sets enthalten ist, kannst du mit einem Klick auf den View Summary Button in dem Permission Set herausfinden. Salesforce zeigt dir dann eine Übersicht der enthaltenen Berechtigungen an.
Tools zum Umwandeln von Profilen auf Permission Sets
Um aus deinen Profilen Permission Sets zu erstellen, stehen dir unterschiedliche Tools zur Verfügung. Ich möchte an dieser Stelle drei Tools kurz vorstellen.
User Access and Permissions Assistant
Es handelt sich hierbei um eine App, die du in Salesforce installieren kannst. Diese kann für dich aus einem Profil ein Permission Set erstellen. Dies beinhaltet jedoch einige Einschränkungen. So werden zum Beispiel Record Types und Tab Sichtbarkeit nicht unterstütz. Mir sind beim Testen in einer Sandbox auch noch weitere Diskrepanzen zwischen dem ursprünglichen Profil und dem erstellten Permission Set aufgefallen. Ich habe dir hier einen Link zur Salesforce Hilfeseite verlinkt.
Wenn du dieses Tool verwendest, hast du relativ schnell dein Permission Set erstellt. Du solltest dieses und die enthalten Berechtigungen jedoch genau überprüfen und musst einige Berechtigungen manuell nachtragen.
Export und Import der Berechtigungen
Du hast die Möglichkeit die Berechtigungen aus den Profilen zu exportieren. Hierbei musst du dich mit der Datenbankstruktur der Berechtigungen von Salesforce auseinandersetzen und du benötigst ein Tool zum Exportieren und Importieren von und nach Salesforce. Ich habe dir hier den XL Connector verlinkt, den du hierfür als Tool verwenden kannst.
Du kannst die Berechtigungen, die du aus dem Profil übertragen möchtest (zum Beispiel die Objekt Berechtigungen) aus Salesforce exportieren. Dann benötigst du ein Permission Set in Salesforce und kannst die Berechtigungen wieder in dieses importieren.
Dieser Vorgang ist etwas aufwendiger und komplizierter. Du bekommst aber einen sehr guten Überblick wie Berechtigungen in Salesforce funktionieren und was alles in deinen Profilen und Permission Sets berechtigt wird.
Konvertieren von Profilen in Permission Sets mit APEX
Wenn du einen guten Entwickler in deinem Team hast oder selber APEX programmieren kannst, kannst du die Berechtigungen aus den Profilen (wie zum Beispiel Objekt Berechtigungen) auch in APEX Code in das Permission konvertieren. Auch hierfür benötigst du ein gutes Verständnis der Datenbankstruktur der Berechtigungen in Salesforce.
Automation
Wenn du die Berechtigungen in Profilen, Permission Sets und Permission Set Group vergeben hast, kannst du die Zuweisung und die Entziehung von Berechtigungen in Salesforce automatisieren. Auch hier hast du unterschiedliche Tools zur Verfügung.
User Access Policies
Mit den User Access Policies kannst du mit Klicks eine Automation erstellen, um den Benutzern Berechtigungen wie Lizenzen oder Permission Sets zuzuweisen oder wieder wegzunehmen. Diese Automation kann durch Änderung oder Erstellung eines Benutzers getriggert werden oder manuell von dir durchgeführt werden.
Weitere Informationen zu User Access Policies habe ich dir hier verlinkt.
Dieses Tool hat jedoch auch einige Einschränkungen. So können insgesamt nur 200 Einträge für User Access Policies erstellt werden und ganz wichtig es zieht bei einer Änderung oder Erstellung eines Benutzers immer nur der erste Eintrag in der Reihenfolge. Wenn du also eine Automation benötigst, um bei Änderungen Berechtigungen wegzunehmen und andere Berechtigungen zuzuweisen, kommst du mit den User Access Policies sehr schnell an Grenzen.
Ich habe dir hier weitere Informationen zu Einschränkungen verlinkt.
Flows
Wenn du komplexere Automatismen abbilden möchtest, kannst du dies mit Flows abbilden, die bei einer Änderung oder Erstellung von Benutzern in Salesforce getriggert werden.
Auch Flows haben bei der Automatisierung ihre Grenzen und Einschränkungen. Du solltest die unterschiedlichen zeitlichen Abfolgen in der Order of Execution beachten in der die Automatismen laufen sollen. Es können außerdem Mixed DML Fehler auftreten. Hier können asynchrone Pfade im Flow helfen.
APEX
Wenn du auch mit Flows bei deiner Automatisierung nicht weiter kommst oder einfach zu viele und zu komplexe Flows benötigst, hast du noch die Möglichkeit die Automatismen in APEX zu programmieren.
Dokumentation
Wenn du mit deinem Berechtigungskonzept fertig bist, solltest du alles ganz genau dokumentieren. Anbei einige Fragen, die du dir dabei stellen solltest:
Welche Berechtigungen sind in den Permission Sets enthalten?
Welche Permission Sets sind in welcher Permission Set Group?
Wann werden welche Permission Set Groups zugewiesen?
Welche Automatismen hast du erstellt und was ist in diesen enthalten?
Du solltest außerdem regelmäßig überprüfen, ob deine Benutzer die richtigen Berechtigungen haben. Dies kannst du zum Beispiel über Reports sicherstellen.
Wenn zusätzliche Berechtigungen oder Automatismen hinzukommen, solltest du diese auch in deine Dokumentation aufnehmen.
Fazit
Dein Berechtigungskonzept von Profilen auf Permission Sets umzustellen und zu einem gewissen Grad zu automatisieren, kann zu einem großen Projekt werden. Es lohnt sich jedoch auch, da du die Vergabe der Berechtigungen deutlich feiner vornehmen kannst und nur das berechtigst, was auch wirklich benötigt wird.
Wenn du bei der Umstellung alles analysierst und dokumentierst, kann dir das auch helfen, um in deiner Org aufzuräumen.
Du kannst die Umstellung mit unterschiedlichen Tools durchführen und unterschiedliche Ansätze bei deinem Berechtigungskonzept verfolgen. Du solltest dir vorher einen Plan machen wie du dein Berechtigungskonzept gestalten möchtest. Dann kannst du die einzelnen Schritte angehen und die Tools für die Schritte auswählen.
Kontaktiere uns
Du hast Fragen oder benötigst Unterstützung bei deinem Projekt. Kontaktiere uns gerne und vereinbare einen ersten kostenlosen Termin mit uns. Hier der Link zu unserer Kontaktseite.