
Salesforce Policy Deviation Checker
Als Open Source veröffentlicht von NCC Group Plc - https://www.nccgroup.com/
Entwickelt von Jerome Smith (@exploresecurity) Mit Dank an Stephen Tomkinson (@neonbunny9)
https://www.github.com/nccgroup/SFPolDevChk
Veröffentlicht unter AGPL - siehe LICENSE für weitere Informationen.
In Salesforce können die auf der obersten Organisationsebene festgelegten Passwortrichtlinien und Sitzungseinstellungen durch die auf Profilebene festgelegten überschrieben werden. Obwohl dies beabsichtigt ist, führen Änderungen in diesen Bereichen innerhalb eines Profils, selbst wenn sie später zurückgesetzt werden, um den Einstellungen der Organisation zu entsprechen, dazu, dass das Profil nicht mehr mit der Organisation synchron ist. Mit anderen Worten: Nachfolgende Änderungen an den Passwortrichtlinien und Sitzungseinstellungen auf Organisationsebene werden nicht mehr an diese Profile weitergegeben. Im Laufe der Zeit, wenn Profile hinzugefügt und kopiert werden, kann dies zu einer versehentlichen Fehlkonfiguration für bestimmte Benutzergruppen führen. SFPolDevChk zeigt auf, welche Profile auf diese Weise desynchronisiert wurden, und überprüft deren Passwortrichtlinien und Sitzungseinstellungen, um Abweichungen von den auf Organisationsebene festgelegten Werten hervorzuheben.
Voraussetzungen:
requests (abgedeckt durch requirements.txt)Erstellen Sie eine JSON-Konfigurationsdatei (damit Anmeldedaten nicht in der Konsolenhistorie zurückbleiben):
{
"hostname": "somewhere.my.salesforce.com",
"username": "",
"password": "",
"token": "<optional token>"
"debug": <optional debug level (0, 1 or 2)>
}
Führen Sie dann Folgendes aus:
git clone https://github.com/nccgroup/SFPolDevChk
pip install -r requirements.txt
python3 sfpoldevchk.py <config_file>

Im obigen Beispiel ist die Zeile für das Profil 'Read Only' ansonsten leer. Dies liegt daran, dass die Passwortrichtlinie für dieses Profil zu diesem Zeitpunkt mit der für die Organisation festgelegten Richtlinie übereinstimmte. Sollten sich die Einstellungen der Organisation jedoch ändern, würden Benutzer, die diesem Profil zugewiesen sind, die überarbeitete Passwortrichtlinie nicht automatisch übernehmen (ein erneuter Lauf des Tools würde dann die Unterschiede hervorheben).
Dieses Tool führt schreibgeschützte Vorgänge aus. Es könnte daher überraschend sein, 'Modify Metadata Through Metadata API Functions' als Anforderung an das Konto zu sehen, mit dem das Tool ausgeführt wird. Zum Zeitpunkt der Erstellung dieses Textes scheint es jedoch nicht möglich zu sein, ein Konto mit schreibgeschützten Berechtigungen für die Metadata API zu konfigurieren. Von https://developer.salesforce.com/docs/atlas.en-us.226.0.api_meta.meta/api_meta/meta_quickstart_prereqs.htm:
Identifizieren Sie einen Benutzer, der über die Berechtigung API Enabled und die Berechtigung Modify Metadata Through Metadata API Functions oder die Berechtigung Modify All Data verfügt. Diese Berechtigungen sind erforderlich, um auf Metadata-API-Aufrufe zugreifen zu können. Wenn ein Benutzer Zugriff auf Metadaten, aber nicht auf Daten benötigt, aktivieren Sie die Berechtigung Modify Metadata Through Metadata API Functions. Aktivieren Sie andernfalls die Berechtigung Modify All Data.
Daher erschien es vorzuziehen, 'Modify Metadata Through Metadata API Functions' als Mindestanforderung anstelle von 'Modify All Data' zu verwenden. (Interessanterweise wurde ein Testfall mit 'View All Data' ausgeführt - er schlug fehl.)