
भाषा 🇮🇳 हिन्दी
पृष्ठभूमि
कार्यान्वयन
SSO एक्सेस कंट्रोल
एक्सेस कंट्रोल क्या है? 
FastComments SSO Access Control, जिसे कभी-कभी RBAC भी कहा जाता है, के साथ उपयोगकर्ताओं को केवल निश्चित पृष्ठों या कमेंट थ्रेड्स तक सीमित किया जा सकता है। इसके अलावा,
उपयोगकर्ता केवल उसी समूह में एक-दूसरे को @mention कर सकते हैं।
विस्तार से
हम Users और वैकल्पिक रूप से Pages को समूहों में रख सकते हैं।
जब Users को समूहों में रखा जाता है, और Widget Settings में Limit Comments by SSO User Groups सक्षम किया जाता है, तो उपयोगकर्ता
केवल अपने समान समूहों के उपयोगकर्ताओं के कमेंट देखेंगे और केवल उसी समूहों के उपयोगकर्ताओं को @mention कर सकेंगे।
इसके अलावा, Pages को समूहों में रखा जा सकता है, और फिर उपयोगकर्ता केवल उन पृष्ठों के कमेंट एक्सेस कर सकते हैं जिनकी उन्हें अनुमति है।
हम इसे "User-Level" समूह बनाम "Page-Level" समूह कहते हैं।
तो आपके लिए कौन सा सही है?
User-Level समूहों का उपयोग करें यदि...
- आप उसी
urlIdमान (पेज URL, या आर्टिकल ID) का उपयोग करना चाहते हैं, लेकिन समूह के अनुसार कमेंट सीमित करना चाहते हैं। - उदाहरण के लिए, आप "New User" और "Veteran User" समूह बनाना चाहते हैं, और उन्हें एक ही पृष्ठों पर एक-दूसरे के कमेंट कभी नहीं देखने चाहिए।
Page-Level समूहों का उपयोग करें यदि...
- आपके समूहों के पास विशिष्ट पृष्ठ हैं।
- उदाहरण के लिए, "Public Pages" समूह के उपयोगकर्ताओं को "Top Secret" आर्टिकल्स को कभी नहीं देखना चाहिए।
यह कैसे काम करता है 
FastComments एक्सेस कंट्रोल Pages और Users को वांछित समूहों में असाइन करके काम करता है।
एक समूह केवल एक स्ट्रिंग पहचानकर्ता है, जैसे GREEN या abc-123।
Users और Pages केवल एक समूह तक सीमित नहीं हैं। वे क्रमशः 100 और 1000 समूहों तक सीमित हैं।
अनधिकृत पेजों तक पहुँच
यदि कोई उपयोगकर्ता किसी ऐसे पेज तक पहुँचने का प्रयास करता है जिसकी उसे अनुमति नहीं है, तो उसे नीचे जैसा एक त्रुटि संदेश दिखाई देगा:
संदेश का टेक्स्ट कस्टमाइज़ किया जा सकता है।
विनिर्देश 
कई उपयोगकर्ताओं के इंटरैक्ट करने के तरीके को परिभाषित करना, और उसका परीक्षण करना, जटिल है। यहाँ वह विनिर्देश (spec) है जिसका हम एक्सेस कंट्रोल के लिए पालन करते हैं, जिसका उपयोग आप अपने कार्यान्वयन (implementation) के परीक्षण के लिए कर सकते हैं:
null group ids वाला पेज, null group ids वाला उपयोगकर्ता - एक्सेस होना चाहिए।
null group ids वाला पेज, group ids वाला उपयोगकर्ता - एक्सेस होना चाहिए।
group ids वाला पेज, null group ids वाला उपयोगकर्ता - एक्सेस होना चाहिए।
group ids वाला पेज, खाली लिस्ट वाला उपयोगकर्ता - एक्सेस नहीं होना चाहिए।
group ids वाला पेज, group ids वाला उपयोगकर्ता - इंटरसेक्शन मौजूद है - एक्सेस होना चाहिए।
group ids वाला पेज, group ids वाला उपयोगकर्ता - इंटरसेक्शन मौजूद नहीं है - एक्सेस नहीं होना चाहिए।
group ids की खाली लिस्ट वाला पेज (किसी को एक्सेस नहीं), null वाला उपयोगकर्ता - एक्सेस नहीं होना चाहिए।
SSO User A = कोई group ids परिभाषित नहीं (null = पूर्ण एक्सेस)।
SSO User B = कोई group ids परिभाषित नहीं (null = पूर्ण एक्सेस)।
A, B को @ कर सकता है।
SSO User A = कोई group ids परिभाषित नहीं (null = पूर्ण एक्सेस)।
SSO User B = group ids परिभाषित हैं।
A, B को @ कर सकता है।
SSO User A = group ids परिभाषित हैं।
SSO User B = कोई group ids परिभाषित नहीं (null = पूर्ण एक्सेस)।
A, B को @ कर सकता है।
SSO User A = Group ids = [a]।
SSO User B = Group ids = [b]।
A, B को @ नहीं कर सकता।
SSO User A = Group ids = [a]।
SSO User B = Group ids = [a, b]।
A, B को @ कर सकता है।
कार्यान्वयन 
अन्य समूहों के उपयोगकर्ताओं का उल्लेख करना
यदि दो उपयोगकर्ता दो अलग-अलग समूहों के सेट से संबंधित हैं, और उनके बीच कोई समानता नहीं है, तो वे एक-दूसरे को @mention नहीं कर सकेंगे।
यदि कोई उपयोगकर्ता मैन्युअल रूप से एक @mention टाइप करता है और अपनी टिप्पणी सबमिट करता है, तो वह सादे टेक्स्ट के रूप में ही रहेगी। दूसरे उपयोगकर्ता को टैग नहीं किया जाएगा।
समूहों का रखरखाव
Groups को क्रमशः Pages और SSOUsers API संसाधनों का उपयोग करके परिभाषित किया जाता है।
Pages API को यह परिभाषित करने के लिए बुलाया जा सकता है कि कौन से समूह पेज तक पहुँचने की अनुमति रखते हैं। डिफ़ॉल्ट रूप से, सभी समूह, और जो उपयोगकर्ता किसी समूह से संबंधित नहीं हैं, उन्हें पहुँच प्राप्त होती है।
इसी प्रकार, SSOUsers API को प्रत्येक उपयोगकर्ता से संबंधित समूहों को परिभाषित करने के लिए बुलाया जा सकता है।
दोनों संसाधनों के लिए, समूहों को कब सेट या अपडेट किया जा सकता है, इसमें कोई सीमा नहीं है।
यदि केवल उपयोगकर्ताओं को एक-दूसरे को @mention करने से सीमित करना है, तो Pages पर विचार करने की आवश्यकता नहीं है।
ध्यान दें!
SSO उपयोगकर्ता समूहों को परिभाषित और अपडेट करने के लिए API का उपयोग करने की आवश्यकता नहीं है, और इसके बजाय कमेंट विजेट को दिए गए SSO पेलोड में समूह आईडी परिभाषित करके इन्हें स्वचालित रूप से अपडेट किया जा सकता है। हालाँकि, समूहों की बड़ी सूचियों के लिए यह अनुशंसित नहीं है, क्योंकि उपयोगकर्ता को हर पेज लोड पर यह पेलोड सबमिट करना होगा।
उदाहरण API कॉल 
यहाँ हम FastComments API को कॉल करके एक्सेस कंट्रोल सेटअप करने की प्रक्रिया देखेंगे।
शुरू करने से पहले, ध्यान दें कि हमें स्पष्ट रूप से एक Group संरचना बनाने की आवश्यकता नहीं है। ग्रुप केवल पहचानकर्ता (identifiers) होते हैं जो Users और Pages में जोड़े जाते हैं। किसी यूज़र या पेज में ग्रुप जोड़ने से वह ग्रुप स्वतः "बन" जाता है।
सबसे पहले, आइए दो यूज़र बनाते हैं, User A और User B, हम उन्हें Group X में शुरू करेंगे:


अब आइए एक Page बनाते हैं। हम इसे अपना Confidential Page कहेंगे, और अभी तक इनमें से किसी भी यूज़र को इसका एक्सेस नहीं होगा क्योंकि यह CONFIDENTIAL ग्रुप में होगा:

यूज़र A और B को इस समय नए पेज का एक्सेस नहीं है। हालाँकि, चूँकि वे एक ही ग्रुप, GROUP-X, में हैं, वे एक-दूसरे को @mention कर सकते हैं।
आइए User B को अपडेट करें ताकि वह अब पेज का एक्सेस कर सके:

अब User B दोनों ग्रुप का सदस्य है। हमारे यूज़र अभी भी एक-दूसरे को @mention कर सकते हैं, लेकिन केवल User B ही हमारा कॉन्फिडेंशियल पेज देख सकता है।
आइए ऐसा बनाते हैं कि User B केवल कॉन्फिडेंशियल पेज देख सके:

अब वह कॉन्फिडेंशियल पेज देख सकता है, लेकिन हमारे दोनों यूज़र एक-दूसरे को @mention नहीं कर सकते, क्योंकि वे अलग-अलग ग्रुप में हैं।
हालाँकि, कोई भी यूज़र जो एक्सेस कंट्रोल का हिस्सा नहीं है, वह हमारे पेज का एक्सेस कर सकेगा। इसे रोकने के लिए, सुनिश्चित करें कि किसी SSO यूज़र का groupIds null पर सेट न हो। उदाहरण के लिए, आइए User C बनाते हैं, जिसे सब कुछ एक्सेस करने की अनुमति है:

groupIds को null पर सेट करके, हम कहते हैं कि वे एक्सेस कंट्रोल द्वारा सीमित नहीं हैं।
अब, आइए एक ऐसा पेज बनाते हैं जिसका एक्सेस सभी को हो:

accessibleByGroupIds को null पर सेट करके, हम कहते हैं कि यह Page एक्सेस कंट्रोल द्वारा नियंत्रित नहीं है, और दोनों यूज़र इसका एक्सेस कर सकते हैं।
इसके साथ हमारी एक्सेस कंट्रोल के लिए API वॉक-थ्रू पूरी हुई।