25 पॉइंट द्वारा GN⁺ 2024-05-28 | 8 टिप्पणियां | WhatsApp पर शेयर करें
  • "auth" शब्द के दो अर्थ होते हैं: authentication और authorization
  • इसी वजह से library या package के नामों में भ्रम पैदा होता है
  • "authn" और "authz" जैसे शब्द स्पष्ट नहीं हैं और समझने में कठिन हैं

authentication और authorization में अंतर

  • authentication: यह पुष्टि करने की प्रक्रिया कि उपयोगकर्ता कौन है
  • authorization: यह तय करने की प्रक्रिया कि उपयोगकर्ता क्या कर सकता है
  • ये दोनों अवधारणाएँ अलग हैं, और एक समस्या हल करने से दूसरी अपने-आप हल नहीं होती

"permissions" और "login" इस्तेमाल करने का प्रस्ताव

  • प्रस्ताव है कि authentication को "login" और authorization को "permissions" के रूप में स्पष्ट रूप से अलग किया जाए
  • "login" को noun और verb, दोनों रूपों में इस्तेमाल किया जा सकता है
    • noun: सिस्टम तक पहुँचने के लिए दर्ज की जाने वाली जानकारी
    • verb: सिस्टम का उपयोग करने के लिए लॉग इन करने की क्रिया
  • "permissions" का उपयोग noun के रूप में किया जाए, और verb रूप में "check permissions" इस्तेमाल किया जाए

स्पष्ट शब्दावली इस्तेमाल करने के फायदे

  • software engineer के बाहर के दूसरे क्षेत्रों के लोग भी इसे आसानी से समझ सकते हैं
  • इससे बेहतर abstraction संभव होती है
  • authentication और authorization को अलग-अलग module में बाँटकर डिज़ाइन किया जा सकता है

GN⁺ की राय

  • स्पष्ट शब्दावली का महत्व: शब्द स्पष्ट हों तो communication सुचारु होता है और गलतफहमियाँ कम होती हैं।
  • abstraction का लाभ: authentication और authorization को अलग करने से system design अधिक flexible होता है और maintenance आसान हो जाती है।
  • दूसरे शब्दों के उपयोग के उदाहरण: "login" और "permissions" के अलावा "access control" जैसे शब्दों पर भी विचार किया जा सकता है।
  • तकनीक अपनाते समय ध्यान देने योग्य बातें: नई शब्दावली अपनाने से पहले टीम के भीतर पर्याप्त चर्चा और सहमति ज़रूरी है।
  • संबंधित प्रोजेक्ट की सिफारिश: authentication और authorization को अलग रखने वाले प्रमुख प्रोजेक्ट्स में OAuth और OpenID Connect शामिल हैं।

8 टिप्पणियां

 
savvykang 2024-05-29

डेवलपर्स के बीच auth की जगह authn, authz का इस्तेमाल करना, और यूज़र से जुड़ी docs या controller/facade में login, permission का इस्तेमाल करना मुझे उचित लगता है। लेकिन authn, authz तक भी हटा देने की बात मुझे ज़रूरी नहीं लगती।

 
gcback 2024-05-29

जैसा कि मुख्य लेख में बताया गया है, auth का इस्तेमाल authentication और permissions दोनों अर्थों में होने से भ्रम जरूर होता था। शुद्ध डेवलपर्स के बाहर दूसरे क्षेत्रों के लोगों के साथ comm के लिए इसे अधिक सामान्य शब्दों के जरिए अलग करना एक बेहतर कोशिश लगती है.

 
nemorize 2024-05-28

समस्या अगर यह है कि Authentication और Authorization दोनों को संक्षेप में Auth कहा जा सकता है,
तो जैसा मूल लेख में कहा गया था, Authn और Authz ही काफ़ी लगते हैं...
अगर लगा कि यह भी पर्याप्त रूप से स्पष्ट नहीं है, तो इसे थोड़ा और बढ़ाकर Authenty, Authory कहना भी ठीक रहेगा.

 
koxel 2024-05-28

परमिशन सिस्टम में भी एक permission वाला रूप होता है, एक ACL वाला रूप होता है, तो फिर इन्हें अलग कैसे पहचानेंगे..?
कुछ ज़बरदस्ती जैसा लग रहा है...

 
namarie32ilu 2024-05-28

शायद यह non-developer टीम के सदस्यों के साथ communication cost कम करने की कोशिश लगती है, लेकिन थोड़ा ज़रूरत से ज़्यादा है।

 
iolothebard 2024-05-28

क्या जानबूझकर दोनों को मिलाकर auth नहीं कहा जाता?

 
kuber 2024-05-28

Authentication और authorization हैं, तो फिर आखिर क्यों जानबूझकर...

 
GN⁺ 2024-05-28
Hacker News राय
  • "Authorize" और "Authenticate" मध्ययुगीन काल से इस्तेमाल होने वाले बेहतरीन शब्द हैं. इन दोनों शब्दों के अर्थ में बहुत बड़ा बदलाव नहीं आया है।
  • क्रिप्टोग्राफिक सिस्टम में इन दोनों शब्दों के बीच महत्वपूर्ण अंतर है. भ्रम कम करने के लिए शब्द बदलना शायद मददगार नहीं होगा।
  • "auth" नाम की वजह से भ्रम पैदा होता है, यह दावा बहुत प्रभावी नहीं लगता. शब्द बदलने से समस्या हल होती नहीं दिखती।
  • "authn" और "authz" जैसे संक्षेपों का इस्तेमाल करना अच्छा है. हालांकि पूरे लंबे शब्दों का इस्तेमाल करना भी ठीक है।
  • "Identity" और "Access" Management (IAM) मानक शब्द हैं. व्यक्तिगत रूप से मैं "authnz" शब्द को पसंद करता हूँ।
  • "Login" में token या key-आधारित authentication शामिल नहीं होता. service account login नहीं करते, लेकिन उन्हें authentication और authorization की ज़रूरत होती है।
  • Authn और Authz के बीच का भेद हमेशा स्पष्ट नहीं होता. कभी-कभी ऐसा लगता है कि लोग स्पष्ट शब्दों से ज़्यादा आकर्षक शब्द पसंद करते हैं।
  • IAM सिस्टम में "auth" शब्द इस्तेमाल करने में कभी कोई समस्या नहीं हुई. जब अधिक विशिष्ट अभिव्यक्ति चाहिए हो, तो उपयुक्त वाक्यांश का इस्तेमाल किया जा सकता है।
  • "login" और "permissions" सिस्टम के पूरे अर्थ और जटिलता को नहीं पकड़ते. authentication का मतलब सिर्फ login से कहीं ज़्यादा है।
  • authentication और authorization आपस में काफ़ी निकटता से जुड़े हैं. authentication के बिना authorization संभव नहीं है।
  • login, authentication का उपयुक्त विकल्प नहीं है. authentication के कुछ मामलों में login की आवश्यकता ही नहीं होती।
  • "auth" का अर्थ authentication और authorization दोनों हो सकता है. क्योंकि ये दोनों अवधारणाएँ अक्सर साथ में इस्तेमाल होती हैं।
  • authentication और authorization IT और information security में मानक शब्द हैं. भ्रम से बचने के लिए पूरे शब्दों का इस्तेमाल करना बेहतर है।
  • "authn" और "authz" तकनीकी लोगों के बीच पर्याप्त रूप से उपयोगी हैं. आम जनता के लिए "login" और "permissions" का इस्तेमाल करना बेहतर है।
  • असल जीवन में भी इसी तरह की अवधारणाएँ मौजूद हैं. उदाहरण के लिए, work badge पहचान की पुष्टि करता है और access अधिकार देता है।
  • authorization और permissions एक ही चीज़ नहीं हैं. permissions ऐसे अधिकार या विशेषाधिकार हैं जो किसी विशेष उपयोगकर्ता को सौंपे नहीं गए होते।
  • authorization के दो अर्थ हो सकते हैं. एक, उपयोगकर्ता को किसी विशेष काम की अनुमति देने की प्रक्रिया; और दूसरा, इसकी पुष्टि करने की प्रक्रिया।
  • "access control" का अर्थ runtime access control हो सकता है. यह वह काम है जो application उपयोगकर्ता के authenticate होने के बाद करती है।
  • "authN" और "authZ" पर्याप्त रूप से उपयुक्त हैं और अच्छी तरह समझे जाते हैं. authorization हमेशा permissions और उपयोगकर्ता के बीच संबंध से जुड़ा होता है।