
Salesforce Policy Deviation Checker
Publicado como código abierto por NCC Group Plc - https://www.nccgroup.com/
Desarrollado por Jerome Smith (@exploresecurity) Con agradecimientos a Stephen Tomkinson (@neonbunny9)
https://www.github.com/nccgroup/SFPolDevChk
Publicado bajo AGPL - consulte LICENSE para más información.
Dentro de Salesforce, las políticas de contraseñas y los ajustes de sesión establecidos a nivel de Organización superior pueden ser sobrescritos por los del nivel de Perfil. Aunque esto está diseñado así, cualquier cambio en estas áreas dentro de un Perfil, incluso si luego se revierte para coincidir con los ajustes de la Organización, hace que el Perfil se desincronice con la Organización. En otras palabras, los cambios posteriores en las políticas de contraseñas y los ajustes de sesión a nivel de Organización ya no se propagarán a estos Perfiles. Con el tiempo, a medida que se añaden y copian Perfiles, esto podría llevar a una mala configuración accidental para ciertos conjuntos de usuarios. SFPolDevChk revela qué Perfiles se han desincronizado de esta manera, y revisa las políticas de contraseñas y los ajustes de sesión de cada uno para resaltar cualquier desviación respecto a los establecidos a nivel de Organización.
Requisitos:
requests de Python (cubierto por requirements.txt)Cree un archivo de configuración JSON (para que las credenciales no queden en el historial de la consola):
{
"hostname": "somewhere.my.salesforce.com",
"username": "",
"password": "",
"token": "<token opcional>"
"debug": "<nivel de depuración opcional (0, 1 o 2)>"
}
Luego ejecute:
git clone https://github.com/nccgroup/SFPolDevChk
pip install -r requirements.txt
python3 sfpoldevchk.py <archivo_de_configuración>

En el ejemplo anterior, la fila para el Perfil 'Read Only' está por lo demás vacía. Esto se debe a que la política de contraseñas para este Perfil era, en ese momento, la misma que la política establecida para la Organización. Sin embargo, si los ajustes de la Organización cambian, los usuarios asignados a este Perfil no adoptarían automáticamente la política de contraseñas revisada (ejecutar la herramienta nuevamente resaltaría entonces las diferencias).
Esta herramienta realiza operaciones de solo lectura. Por lo tanto, podría resultar sorprendente ver 'Modificar Metadatos Mediante Funciones de API de Metadatos' como requisito para la cuenta utilizada para ejecutar la herramienta. Sin embargo, al momento de escribir esto, no parece posible configurar una cuenta con permisos de solo lectura para la API de Metadatos. De https://developer.salesforce.com/docs/atlas.en-us.226.0.api_meta.meta/api_meta/meta_quickstart_prereqs.htm:
Identifique un usuario que tenga el permiso API Habilitada y el permiso Modificar Metadatos Mediante Funciones de API de Metadatos o el permiso Modificar Todos los Datos. Estos permisos son necesarios para acceder a las llamadas de la API de Metadatos. Si un usuario requiere acceso a los metadatos pero no a los datos, habilite el permiso Modificar Metadatos Mediante Funciones de API de Metadatos. De lo contrario, habilite el permiso Modificar Todos los Datos.
Por lo tanto, pareció preferible usar 'Modificar Metadatos Mediante Funciones de API de Metadatos' como requisito mínimo en lugar de 'Modificar Todos los Datos'. (Por interés, se ejecutó un caso de prueba usando 'Ver Todos los Datos' - falló.)