कस्टम RBAC कार्यान्वयन के साथ प्रयोग करते हुए मेरा अनुभव इस प्रकार है:
-
आप आरबीएसी का बहुत सारा साहित्य पढ़ते हैं और सोचते हैं कि आप इसे समझते हैं। फिर आप आगे बढ़ते हैं और इसे लागू करने का प्रयास करते हैं, बस यह महसूस करने के लिए कि आपने वास्तव में इसे बिल्कुल भी नहीं समझा है। जब आप प्रोजेक्ट में आगे बढ़ेंगे तो अंततः यह समझ में आएगा।
-
आपके प्रश्न के आधार पर, आप पहले से ही उस व्यावसायिक डोमेन को जानते हैं जिस पर आप आरबीएसी लागू करना चाहते हैं। लेकिन अभी के लिए वास्तविक व्यावसायिक वस्तुओं के बारे में भूल जाओ। आपका आरबीएसी कार्यान्वयन सामान्य होना चाहिए, जिसका अर्थ है कि आपके पास एक डीबी स्कीमा है जिसमें भूमिका, उपयोगकर्ता, अनुमति, संचालन, आदि टेबल शामिल हैं। तब आपके पास ऐसी वस्तुएं होंगी जो ऐसी तालिकाओं (एक-से-एक संबंध) के लिए मैप करती हैं।
एक बार जब आपके पास यह आरबीएसी कार्यान्वयन हो जाता है, तो इसे व्यावहारिक रूप से किसी भी व्यावसायिक डोमेन के लिए तैयार किया जा सकता है, जैसे कि 'डिपार्टमेंट' जिसका आपने उल्लेख किया है।
बस याद रखें कि यह बिल्कुल सही नहीं है... मैंने कस्टम सुविधाओं को जोड़ने, प्रदर्शन बढ़ाने आदि के लिए वास्तविक आरबीएसी साहित्य से उन्नत/संशोधित/व्युत्पन्न किया है।
मैंने कुछ समय से इस पर काम नहीं किया है, इसलिए मुझे आशा है कि मैं निम्नलिखित में सही हूँ:
- उपयोगकर्ता:उदाहरण बनाए जाते हैं और इसकी बैकिंग टेबल में सहेजे जाते हैं।
-
भूमिका:इंस्टेंस बनाए जाते हैं और इसकी बैकिंग टेबल में सहेजे जाते हैं। भूमिकाएं उपयोगकर्ताओं को सौंपी जाएंगी.
-
अनुमति:अनुमति मूल रूप से किसी ऑब्जेक्ट पर ऑपरेशन का संयोजन है। अनुमतियाँ भूमिकाओं को सौंपी जाती हैं।
-
ऑपरेशन:एक ऑपरेशन बस कुछ भी है जो आप चाहते हैं। यह सीआरयूडी हो सकता है (बनाएं, पढ़ें, अपडेट करें, हटाएं) या यह 'प्रिंट', 'खोज' या कुछ भी हो सकता है जो मानव (या सिस्टम) किसी वस्तु (या वस्तुओं के समूह) पर कर सकता है।
- वस्तु:यह मूल रूप से आपकी सभी वस्तुएं हैं जो आपके व्यवसाय का डोमेन बनाती हैं।
और भी अधिक शक्ति के लिए, आप भारी मात्रा में विभिन्न प्रतिबंधों को लागू करने के लिए बाधाओं को लागू कर सकते हैं।
इस ढांचे के साथ, आपको मानचित्रण करने में सक्षम होना चाहिए:
- उपयोगकर्ताओं को किसी विभाग को कौन असाइन कर सकता है
- उन्हें विभागों से कौन हटा सकता है
- एक विभाग में कितने उपयोगकर्ता हो सकते हैं
- किसी विभाग में किस प्रकार के उपयोगकर्ता (उनकी निर्दिष्ट भूमिकाओं के आधार पर) हो सकते हैं
- कौन से रोल विभाग के लिए कौन से ऑपरेशन कर सकते हैं (उन्हें बनाएं, पढ़ें, अपडेट करें, हटाएं)
- आदि