
Salesforce Policy Deviation Checker
NCC Group Plc द्वारा ओपन सोर्स के रूप में जारी - https://www.nccgroup.com/
Jerome Smith द्वारा विकसित (@exploresecurity) Stephen Tomkinson को धन्यवाद (@neonbunny9)
https://www.github.com/nccgroup/SFPolDevChk
AGPL के अंतर्गत जारी - अधिक जानकारी के लिए LICENSE देखें।
Salesforce के भीतर, शीर्ष Organization स्तर पर निर्धारित पासवर्ड नीतियाँ और सत्र सेटिंग्स को Profile स्तर पर निर्धारित सेटिंग्स द्वारा अधिलेखित (override) किया जा सकता है। हालाँकि यह डिज़ाइन द्वारा है, किसी Profile के भीतर इन क्षेत्रों में कोई भी परिवर्तन, भले ही बाद में Organization सेटिंग्स से मेल खाने के लिए पूर्ववत किया जाए, Profile को Organization के साथ तालमेल से बाहर (out of sync) कर देता है। दूसरे शब्दों में, Organization स्तर पर पासवर्ड नीतियों और सत्र सेटिंग्स में बाद के परिवर्तन अब इन Profiles में प्रसारित नहीं होंगे। समय के साथ, जैसे-जैसे Profiles जोड़ी और कॉपी की जाती हैं, यह उपयोगकर्ताओं के कुछ समूहों के लिए आकस्मिक गलत कॉन्फ़िगरेशन का कारण बन सकता है। SFPolDevChk बताता है कि कौन सी Profiles इस तरह से डिसिंक्रनाइज़ हो गई हैं, और प्रत्येक की पासवर्ड नीतियों और सत्र सेटिंग्स की समीक्षा करता है ताकि Organization स्तर पर निर्धारित सेटिंग्स से किसी भी विचलन को उजागर किया जा सके।
आवश्यकताएँ:
requests मॉड्यूल (requirements.txt द्वारा शामिल)एक JSON कॉन्फ़िग फ़ाइल बनाएँ (ताकि क्रेडेंशियल कंसोल इतिहास में न छूटें):
{
"hostname": "somewhere.my.salesforce.com",
"username": "",
"password": "",
"token": "<optional token>"
"debug": <optional debug level (0, 1 or 2)>
}
फिर चलाएँ:
git clone https://github.com/nccgroup/SFPolDevChk
pip install -r requirements.txt
python3 sfpoldevchk.py <config_file>

उपरोक्त उदाहरण में, Profile 'Read Only' के लिए पंक्ति अन्यथा खाली है। ऐसा इसलिए है क्योंकि उस समय इस Profile के लिए पासवर्ड नीति Organization के लिए निर्धारित नीति के समान थी। हालाँकि, यदि Organization सेटिंग्स बदलती हैं, तो इस Profile को सौंपे गए उपयोगकर्ता स्वचालित रूप से संशोधित पासवर्ड नीति नहीं अपनाएँगे (तब टूल को दोबारा चलाने पर अंतर उजागर होंगे)।
यह टूल केवल-पठन (read-only) कार्य करता है। इसलिए टूल चलाने के लिए उपयोग किए गए खाते के लिए 'Modify Metadata Through Metadata API Functions' को आवश्यकता के रूप में देखना आश्चर्यजनक हो सकता है। हालाँकि, लेखन के समय, Metadata API के लिए केवल-पठन अनुमतियों वाला खाता कॉन्फ़िगर करना संभव नहीं लगता है। https://developer.salesforce.com/docs/atlas.en-us.226.0.api_meta.meta/api_meta/meta_quickstart_prereqs.htm से:
ऐसे उपयोगकर्ता की पहचान करें जिसके पास API Enabled अनुमति और Modify Metadata Through Metadata API Functions अनुमति या Modify All Data अनुमति हो। Metadata API कॉल्स तक पहुँचने के लिए ये अनुमतियाँ आवश्यक हैं। यदि किसी उपयोगकर्ता को मेटाडेटा तक पहुँच चाहिए लेकिन डेटा तक नहीं, तो Modify Metadata Through Metadata API Functions अनुमति सक्षम करें। अन्यथा, Modify All Data अनुमति सक्षम करें।
इसलिए, 'Modify All Data' की तुलना में न्यूनतम आवश्यकता के रूप में 'Modify Metadata Through Metadata API Functions' का उपयोग करना अधिक उपयुक्त लगा। (जिज्ञासावश, 'View All Data' का उपयोग करके एक परीक्षण मामला चलाया गया - यह विफल रहा।)