Master Role-Based Access Control Patterns ऑथेंटिकेशन और ऑथराइजेशन कॉन्सेप्ट्स पर नोट्स यह नोट्स ऑथेंटिकेशन और ऑथराइजेशन के विभिन्न कॉन्सेप्ट्स को समझने में मदद करेंगे, साथ ही Google के ज़ेंजीबार जैसे बड़े पैमाने पर ऑथराइजेशन सिस्टम को कैसे लागू किया जाता है, इस पर भी चर्चा करेंगे। ऑथेंटिकेशन बनाम ऑथराइजेशन ऑथेंटिकेशन: यह प्रक्रिया यह सत्यापित करती है कि कोई उपयोगकर्ता कौन है। यह आम तौर पर प्लेटफ़ॉर्म स्तर पर होता है, जैसे कि Facebook या Google पर लॉग इन करना। इससे सर्वर को उपयोगकर्ता की पहचान (आईडी, नाम, ईमेल आदि) पता चल जाती है। ऑथराइजेशन: यह प्रक्रिया यह निर्धारित करती है कि क्या किसी उपयोगकर्ता को किसी विशिष्ट क्रिया को करने का अधिकार है। यह ऑथेंटिकेशन के बाद होता है और यह जांचता है कि क्या उपयोगकर्ता के पास आवश्यक अनुमतियाँ हैं। उदाहरण के लिए, Twitter पर, सभी उपयोगकर्ता फीड देख सकते हैं (ऑथेंटिकेशन के बाद), लेकिन केवल पोस्ट के लेखक ही उसे संपादित कर सकते हैं (ऑथराइजेशन)। ऑथराइजेशन पैटर्न ऑथराइजेशन सिस्टम को स्केल करने से पहले, विभिन्न प्रकार के ऑथराइजेशन पैटर्न को समझना महत्वपूर्ण है। यहाँ कुछ उदाहरण दिए गए हैं: रोल-बेस्ड एक्सेस कंट्रोल (RBAC) एक सरल ऑथराइजेशन विधि जहाँ उपयोगकर्ताओं को विभिन्न भूमिकाएँ (रोल) सौंपी जाती हैं, और प्रत्येक भूमिका के पास विशिष्ट अनुमतियाँ होती हैं। उदाहरण: एक ब्लॉगिंग वेबसाइट में, "एडमिन" रोल पोस्ट बना सकता है, "एडिटर" रोल पोस्ट को संपादित कर सकता है, और "यूजर" रोल केवल पोस्ट को पढ़ सकता है। लागूकरण: डेटाबेस में एक यूजर टेबल होता है जिसमें यूजर आईडी , नाम , ईमेल और रोल होता है। बैकएंड में, राउट (जैसे, पोस्ट बनाना) रोल की जांच करता है और उसके अनुसार अनुमति देता है या अस्वीकार करता है। सीमाएँ: RBAC बड़े पैमाने पर अनुप्रयोगों के लिए पर्याप्त नहीं है जहाँ अधिक सूक्ष्म नियंत्रण की आवश्यकता होती है। फाइन-ग्रेन्ड एक्सेस कंट्रोल RBAC का एक विस्तार जहाँ अनुमतियाँ विशिष्ट संसाधनों (जैसे, व्यक्तिगत ब्लॉग पोस्ट) पर आधारित होती हैं, न कि केवल भूमिकाओं पर। उदाहरण: Facebook ग्रुप्स, जहाँ एक उपयोगकर्ता एक ग्रुप में एडमिन हो सकता है और दूसरे में केवल सदस्य। या Medium पर, केवल ब्लॉग पोस्ट के लेखक ही उसे संपादित कर सकते हैं। लागूकरण: एक अतिरिक्त टेबल (जैसे, यूजर_ब्लॉग_रोल ) जो उपयोगकर्ता, ब्लॉग और उनकी भूमिका के बीच मैपिंग स्टोर करता है। हर क्रिया के लिए, यह टेबल क्वेरी की जाती है ताकि यह जांचा जा सके कि क्या उपयोगकर्ता के पास आवश्यक अनुमतियाँ हैं। सीमाएँ: बढ़ती जटिलता और प्रदर्शन समस्याएँ बड़े डेटासेट के साथ। एट्रिब्यूट-बेस्ड एक्सेस कंट्रोल (ABAC) एक अधिक उन्नत विधि जहाँ अनुमतियाँ संसाधनों के एट्रिब्यूट्स, उपयोगकर्ता के एट्रिब्यूट्स और पर्यावरण के एट्रिब्यूट्स पर आधारित होती हैं। उदाहरण: एक एंटरप्राइज़ में, एक ब्लॉग पोस्ट को "मार्केटिंग" एट्रिब्यूट दिया जा सकता है, जिससे केवल मार्केटिंग टीम के सदस्यों को ही उसे संपादित करने की अनुमति मिलती है। लागूकरण: एट्रिब्यूट्स को डेटाबेस में स्टोर किया जाता है। अनुमति की जांच करने के लिए, कई टेबल जॉइन और क्वेरीज़ की आवश्यकता होती है, जिससे जटिलता और प्रदर्शन समस्याएँ पैदा होती हैं। सीमाएँ: अत्यधिक जटिलता और स्केलेबिलिटी की कमी। पॉलिसी-बेस्ड एक्सेस कंट्रोल (PBAC) ABAC को लागू करने का एक तरीका जहाँ अनुमतियाँ केंद्रीय रूप से प्रबंधित पॉलिसियों द्वारा परिभाषित की जाती हैं। उदाहरण: AWS में IAM पॉलिसियाँ। लागूकरण: पॉलिसियों को JSON या XML जैसे फॉर्मेट में स्टोर किया जाता है। अनुमति की जांच करने के लिए, पॉलिसी टेबल को क्वेरी किया जाता है। लाभ: कोड को डीकपल करता है और स्केलेबिलिटी को बेहतर बनाता है। रिलेशनशिप-बेस्ड एक्सेस कंट्रोल (RBAC) अनुमतियाँ संसाधनों के बीच संबंधों पर आधारित होती हैं (जैसे, Google Drive में फ़ोल्डर और फ़ाइलें)। उदाहरण: Google Drive में, यदि किसी उपयोगकर्ता को फ़ोल्डर तक पहुँच है, तो उसे फ़ोल्डर के अंदर फ़ाइलों तक भी पहुँच हो सकती है। लागूकरण: रिकर्सिव क्वेरीज़ और ग्राफ़ ट्रेवर्सल एल्गोरिदम की आवश्यकता होती है। सीमाएँ: बड़े पैमाने पर सिस्टम में इसे लागू करना मुश्किल है। Google ज़ेंजीबार और ओपन FGAC Google ज़ेंजीबार: Google का एक बड़ा पैमाने पर ऑथराइजेशन सिस्टम जो विभिन्न Google सेवाओं (जैसे, Drive, Sheets, Calendar) में उपयोग किया जाता है। यह रिलेशनशिप-बेस्ड एक्सेस कंट्रोल को कुशलतापूर्वक संभालता है। ओपन FGAC: Google ज़ेंजीबार से प्रेरित एक ओपन-सोर्स फाइन-ग्रेन्ड एक्सेस कंट्रोल लेयर। यह ग्राफ ट्रेवर्सल एल्गोरिदम का उपयोग करता है और उच्च प्रदर्शन प्रदान करता है। इसे Docker में होस्ट किया जा सकता है और इसमें एक प्लेग्राउंड वेबसाइट है। सारांश ऑथेंटिकेशन और ऑथराइजेशन अलग-अलग लेकिन परस्पर संबंधित अवधारणाएँ हैं। ऑथराइजेशन सिस्टम को स्केल करने के लिए विभिन्न पैटर्न हैं, प्रत्येक की अपनी सीमाएँ हैं। Google ज़ेंजीबार और ओपन FGAC जैसे सिस्टम बड़े पैमाने पर ऑथराइजेशन सिस्टम को लागू करने के लिए प्रभावी समाधान प्रदान करते हैं। ओपन FGAC का उपयोग करके, आप रिलेशनशिप-बेस्ड एक्सेस कंट्रोल को आसानी से लागू कर सकते हैं।