डेलिगेटेड एक्सेस: यूज़र्स की ओर से काम करना
जब कोई एजेंट किसी व्यक्ति के लिए काम करता है, तो उसके पास उस व्यक्ति की ही अनुमतियाँ (permissions) होनी चाहिए, जो ज़रूरत पड़ने पर और सीमित की जा सकें, पर कभी बढ़ाई न जाएँ। OAuth scopes, सहमति (consent) और ऑडिट इसे मुमकिन बनाते हैं।
60 सेकंड में
डेलिगेटेड एक्सेस: यूज़र्स की ओर से काम करना
जब कोई एजेंट किसी व्यक्ति के लिए काम करता है, तो उसके पास उस व्यक्ति की ही अनुमतियाँ (permissions) होनी चाहिए, जो ज़रूरत पड़ने पर और सीमित की जा सकें, पर कभी बढ़ाई न जाएँ। OAuth…
एजेंट के पास अधिकार होने के दो तरीके
| मॉडल | यह कैसे काम करता है | किसके लिए अच्छा है | मुख्य जोखिम |
|---|---|---|---|
| एजेंट के अपने अधिकार | एजेंट की अपनी पहचान और अनुमतियाँ होती हैं, जो हर यूज़र के लिए एक जैसी होती हैं | बिना किसी यूज़र वाले बैकग्राउंड काम, जैसे रोज़ रात को बनने वाली रिपोर्ट्स | Confused deputy: कोई भी यूज़र इससे ऐसे अधिकारों का इस्तेमाल करने को कह सकता है जो उनके पास नहीं हैं |
| यूज़र की ओर से | एजेंट को उस खास यूज़र से जुड़ा एक टोकन मिलता है, जिसमें scopes सीमित होते हैं | ऐसे असिस्टेंट जो यूज़र के डेटा को पढ़ते हैं या उस पर काम करते हैं | Scopes का ज़रूरत से ज़्यादा बड़ा होना; टोकन का बहुत लंबे समय तक चलना |
effective access = user's permissions
∩ scopes granted to this agent
∩ what this task needs right now
Example: Meera can read and send mail and read all shared drives.
The agent was granted: mail.read, calendar.read
This task ("summarise today's mail") needs: mail.read (today only)
=> The agent may read today's mail. It cannot send, and cannot open drives.Scopes डिज़ाइन करना
- मेलबॉक्स का "full_access"
- "बस यूँ ही ज़रूरत पड़ सकती है" सोचकर पढ़ने और लिखने (read and write) दोनों का एक्सेस एक साथ मांगना
- Refresh tokens जो बिना किसी रिव्यू के महीनों तक चलते रहते हैं
- एक ही सहमति (consent) स्क्रीन जो हमेशा के लिए हर फ़ीचर को कवर कर लेती है
- पढ़ने और लिखने के अलग-अलग scopes; लिखने का एक्सेस केवल तभी मांगें जब लिखने वाले फ़ीचर का इस्तेमाल हो
- जहाँ प्लेटफ़ॉर्म सपोर्ट करता हो वहाँ रिसोर्स की सीमाएँ तय करना (एक फ़ोल्डर, एक प्रोजेक्ट)
- कम समय वाले access tokens; सीमित और रद्द करने योग्य (revocable) रिफ्रेश
- स्टेप-अप सहमति: जब एजेंट को कोई नया, ज़्यादा जोखिम भरा अधिकार चाहिए, तो दोबारा पूछें
डेलिगेशन की कड़ियाँ (Chains of delegation)
ऐसी सहमति जिसे लोग समझ सकें
- सीधे-सादे शब्दों में बताएं कि एजेंट क्या करेगा: "मीटिंग का समय सुझाने के लिए आपका कैलेंडर पढ़ें। यह इवेंट्स को डिलीट नहीं कर सकता।"
- पहले सबसे छोटे scopes मांगें; जब किसी फ़ीचर को ज़रूरत हो तब और मांगें।
- यूज़र्स को एक ही जगह देखने और हटाने दें कि उन्होंने क्या अनुमति दी थी।
- कंपनी के डेटा के लिए, यूज़र्स किन ऐप्स को एक्सेस दे सकते हैं, इसके लिए एडमिन की मंज़ूरी की ज़रूरत हो सकती है। वरना, कोई भी कंपनी का मेल किसी भी ऐप को सौंप सकता है।
ऑडिट: किसने क्या अनुमति दी
और देखें और पढ़ें
लैब
एक मीटिंग असिस्टेंट एजेंट के लिए scope डिज़ाइन और आसान भाषा में सहमति (consent) स्क्रीन।
समस्या
एक मीटिंग असिस्टेंट के लिए डेलिगेटेड एक्सेस डिज़ाइन करें जो (a) यूज़र का कैलेंडर पढ़ता है, (b) मीटिंग के समय सुझाता है, (c) यूज़र की पुष्टि के बाद मीटिंग बुक करता है, और (d) एक शेयर्ड नोट्स फ़ोल्डर में सारांश लिखता है।
- उन scopes की लिस्ट बनाएं जिनका आप अनुरोध करेंगे, उन्हें पढ़ने और लिखने (read and write) में बाँटें। मार्क करें कि कौन से पहली बार साइन-इन करने पर मांगे जाते हैं और कौन से केवल तब जब किसी फ़ीचर का पहली बार इस्तेमाल किया जाता है (स्टेप-अप)।
- वह सहमति टेक्स्ट लिखें जो यूज़र देखेगा, आसान भाषा में, 80 शब्दों से कम।
- "मीटिंग बुक करें" के लिए प्रभावी-पहुँच (effective-access) नियम को यूज़र की अनुमतियाँ ∩ एजेंट के scopes ∩ काम की ज़रूरत के रूप में लिखें।
- वे फ़ील्ड्स लिखें जो हर ऑडिट लॉग लाइन में होने चाहिए।
- बताएं कि किसी भी कर्मचारी द्वारा इस एजेंट को एक्सेस देने से पहले एक एडमिन को क्या मंज़ूर करना होगा।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1नोट्स फ़ोल्डर पूरे विभाग के साथ शेयर किया गया है। एजेंट यूज़र की ओर से वहाँ सारांश लिखता है। कौन सा नया जोखिम सामने आता है?दिखाएं
एजेंट डेटा को एक निजी जगह (यूज़र का कैलेंडर और मीटिंग्स) से बड़े समूह (पूरे विभाग) में ले जा सकता है। भले ही हर अनुमति सही हो, सारांश में निजी जानकारी शामिल हो सकती है। सारांश में क्या जाता है उसे सीमित करें, पोस्ट करने से पहले यूज़र को रिव्यू करने दें, या केवल उस फ़ोल्डर में लिखें जिसे सिर्फ़ शामिल होने वाले लोग ही देख सकते हैं।
Q2एक यूज़र एजेंट का एक्सेस रद्द कर देता है, लेकिन एजेंट के पास अभी भी कुछ मिनटों के लिए एक मान्य access token है। आप उस अंतर (gap) को कैसे संभालते हैं?दिखाएं
Access tokens को कम समय तक चलने वाला रखें ताकि अंतर छोटा हो, पक्का करें कि refresh tokens तुरंत रद्द कर दिए जाएँ, और उच्च-जोखिम वाले कामों के लिए, केवल टोकन पर भरोसा करने के बजाय रिसोर्स से रियल टाइम में रद्दीकरण या सेशन की स्थिति की जाँच करवाएं। इसके अलावा, एक्सेस रद्द होने पर उस यूज़र के लिए चल रहे किसी भी काम को रोक दें।
अक्सर पूछे जाने वाले सवाल
एजेंट को सीधे यूज़र का पासवर्ड ही क्यों न दे दें?
क्योंकि तब एजेंट के पास वह सब कुछ होगा जो यूज़र के पास है, हमेशा के लिए, और कोई भी एजेंट के काम को यूज़र के काम से अलग नहीं पहचान पाएगा। OAuth इसके बजाय एक सीमित, रद्द किया जा सकने वाला टोकन देता है, और पासवर्ड यूज़र के पास ही रहता है।
क्या हो अगर एजेंट को ऐसे एक्सेस की ज़रूरत हो जो यूज़र के पास नहीं है?
तब वह वास्तव में यूज़र की ओर से काम नहीं कर रहा है; वह अपने अधिकारों के साथ काम कर रहा है। कभी-कभी यह ठीक होता है (जैसे कोई सिस्टम चेक) लेकिन इसे सावधानी से डिज़ाइन किया जाना चाहिए: कुछ भी वापस भेजने से पहले एजेंट को यह जाँचना होगा कि यूज़र को क्या देखने की अनुमति है, वरना आप एक confused deputy बना देंगे।
टोकन्स कितने समय तक चलने चाहिए?
उस काम के लिए जितना कम व्यावहारिक हो। Access tokens आमतौर पर कम समय के लिए होते हैं, और refresh tokens सीमित, रद्द करने योग्य और रिव्यू किए जाने वाले होने चाहिए। इसका कोई एक सही नंबर नहीं है; एक टोकन जितना ज़्यादा कर सकता है, उसे उतना ही कम चलना चाहिए।
क्या यूज़र्स अपने दम पर किसी एजेंट को कंपनी के डेटा का एक्सेस दे सकते हैं?
कई प्लेटफ़ॉर्म पर, हाँ, जब तक कि एडमिन इसे प्रतिबंधित न करें। ज़्यादातर एंटरप्राइज़ आइडेंटिटी प्लेटफ़ॉर्म एडमिन को यह तय करने देते हैं कि यूज़र्स द्वारा थर्ड-पार्टी ऐप्स को कंपनी का डेटा देने से पहले मंज़ूरी ज़रूरी हो। इसे चालू करना शैडो एजेंट्स (shadow agents) से बचने का एक मुख्य उपाय है।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।