जब आप किसी मोबाइल ऐप या वेबसाइट में अपना यूजरनेम और पासवर्ड डालते हैं, तो स्क्रीन पर लिख कर आता है कि आप सफलतापूर्वक लॉगिन हो चुके हैं। इसके बाद जब आप ऐप के किसी खास सेक्शन पर क्लिक करते हैं, तो कभी-कभी आपको एक्सेस मिल जाता है और कभी स्क्रीन पर मैसेज आता है कि आपके पास इसे देखने की अनुमति नहीं है। यह पूरी प्रक्रिया साइबर सुरक्षा और सॉफ्टवेयर इंजीनियरिंग के दो बेहद महत्वपूर्ण सिद्धांतों पर चलती है, जिन्हें ऑथेंटिकेशन (Authentication) और ऑथराइजेशन (Authorization) कहा जाता है।
तकनीकी दुनिया में नए छात्रों और डेवलपर्स के बीच इन दोनों शब्दों को लेकर काफी भ्रम रहता है। दोनों शब्द सुनने में एक जैसे लगते हैं और लॉगिन प्रक्रिया के दौरान एक के बाद एक काम करते हैं। हालांकि, इन दोनों का मकसद और काम करने का तरीका पूरी तरह अलग होता है। आसान शब्दों में कहें तो ऑथेंटिकेशन यह तय करता है कि आप कौन हैं, जबकि ऑथराइजेशन यह तय करता है कि आप सिस्टम के अंदर क्या-क्या कर सकते हैं।
ऑथेंटिकेशन (Authentication) क्या है?
ऑथेंटिकेशन किसी यूजर, डिवाइस या सिस्टम की पहचान साबित करने की प्रक्रिया है। जब भी आप किसी डिजिटल सर्विस तक पहुंचने की कोशिश करते हैं, तो सिस्टम सबसे पहले आपसे यह सबूत मांगता है कि आप वही व्यक्ति हैं जिसका दावा आप कर रहे हैं। इस चरण को पहचान की पुष्टि कहा जा सकता है।
उदाहरण के लिए, जब आप किसी हवाई अड्डे या बैंक में जाते हैं, तो सुरक्षा गार्ड सबसे पहले आपका पहचान पत्र (Identity Card) देखता है। आईडी कार्ड की जांच करने की यह प्रक्रिया ऑथेंटिकेशन है। डिजिटल दुनिया में पहचान साबित करने के लिए मुख्य रूप से तीन प्रकार के तरीकों का इस्तेमाल किया जाता है:
- कुछ ऐसा जो आप जानते हैं (Something you know): इसमें पासवर्ड, पिन (PIN) या सुरक्षा प्रश्न शामिल हैं।
- कुछ ऐसा जो आपके पास है (Something you have): इसमें आपके मोबाइल पर आने वाला OTP, सिक्योरिटी की (Security Key) या ऑथेंटिकेटर ऐप का कोड शामिल है।
- कुछ ऐसा जो आप खुद हैं (Something you are): इसमें बायोमेट्रिक डेटा जैसे फिंगरप्रिंट, फेस आईडी (Face ID) या आईरिस स्कैन शामिल हैं।
जब आप किसी एप्लीकेशन में सही पासवर्ड और ओटीपी दर्ज करते हैं, तो ऑथेंटिकेशन सिस्टम आपकी दी गई जानकारी का मिलान अपने डेटाबेस में मौजूद जानकारी से करता है। अगर जानकारी सही निकलती है, तो सिस्टम यह मान लेता है कि आपकी पहचान प्रामाणिक (Authentic) है।
ऑथराइजेशन (Authorization) क्या है?
एक बार जब सिस्टम आपकी पहचान की पुष्टि (Authentication) कर लेता है, तो इसके बाद ऑथराइजेशन का काम शुरू होता है। ऑथराइजेशन यह जांचने की प्रक्रिया है कि ऑथेंटिकेट हो चुके यूजर के पास किन-किन फाइलों, फीचर्स या डेटा को देखने, बदलने या डिलीट करने का अधिकार है।
हवाई अड्डे वाले उदाहरण से समझें तो, जब गार्ड आपका आईडी देखकर आपको अंदर जाने देता है, तो वह ऑथेंटिकेशन था। लेकिन बोर्डिंग पास चेक करने के बाद यह तय होना कि आप केवल इकोनॉमी क्लास में बैठेंगे या बिजनेस क्लास में, ऑथराइजेशन कहलाता है। आपके पास पूरे प्लेन में कहीं भी बैठने की आजादी नहीं होती, बल्कि आपको सिर्फ आपकी टिकट के हिसाब से जगह मिलती है।
सॉफ्टवेयर की भाषा में इसे एक्सेस कंट्रोल (Access Control) या परमिशन मैनेजमेंट (Permission Management) कहा जाता है। ऑथराइजेशन सिस्टम यह जांचता है कि आपकी यूजर प्रोफाइल को कौन-कौन से रोल (Roles) और परमिशन्स (Permissions) दिए गए हैं।
Authentication और Authorization के बीच मुख्य अंतर
दोनों प्रक्रियाओं के अंतर को गहराई से समझने के लिए नीचे दी गई तुलना को देखें:
| तुलना का आधार | ऑथेंटिकेशन (Authentication) | ऑथराइजेशन (Authorization) |
|---|---|---|
| मुख्य उद्देश्य | यूजर की सही पहचान की पुष्टि करना। | यूजर को संसाधनों तक पहुँच की अनुमति देना। |
| प्रक्रिया का समय | यह सुरक्षा प्रक्रिया का पहला चरण है। | यह ऑथेंटिकेशन के सफलता से पूरे होने के बाद होता है। |
| पूछा जाने वाला सवाल | आप कौन हैं? (Who are you?) | आप क्या-क्या कर सकते हैं? (What can you do?) |
| सत्यापन का तरीका | पासवर्ड, ओटीपी, बायोमेट्रिक्स, टोकन। | रोल-बेस्ड एक्सेस (RBAC), परमिशन लिस्ट, पॉलिसी। |
| डेटा की दृश्यता | यूजर द्वारा दी गई पहचान जानकारी। | सिस्टम की आंतरिक एक्सेस नीतियां (Access Policies)। |
| बदलाव की आवृत्ति | यूजर द्वारा पासवर्ड बदलने तक स्थिर रहता है। | एडमिनिस्ट्रेटर द्वारा कभी भी बदला जा सकता है। |
ऐप्स के जरिए समझें व्यावहारिक उदाहरण
इन दोनों धारणाओं को रियल-वर्ल्ड मोबाइल और वेब ऐप्स के उदाहरणों से समझना बेहद आसान है।
1. Google Drive का उदाहरण
जब आप अपने जीमेल अकाउंट से लॉग इन करते हैं, तो गूगल आपका पासवर्ड जांचता है। यह ऑथेंटिकेशन है। लॉगिन करने के बाद जब आप गूगल ड्राइव खोलते हैं और किसी फाइल को अपने सहकर्मी के साथ शेयर करते हैं, तो वहां तीन विकल्प मिलते हैं: Viewer, Commenter और Editor।
यदि आप किसी को Viewer बनाते हैं, तो वह व्यक्ति फाइल खोल तो सकता है लेकिन उसमें बदलाव नहीं कर सकता। यदि आप किसी को Editor बनाते हैं, तो वह फाइल में नए शब्द जोड़ या हटा सकता है। यहां यह तय करना कि कौन सा यूजर फाइल में बदलाव कर सकता है और कौन सिर्फ पढ़ सकता है, ऑथराइजेशन का सटीक उदाहरण है।
2. नेट बैंकिंग ऐप का उदाहरण
मोबाइल बैंकिंग ऐप खोलते समय जब आप अपना फिंगरप्रिंट या 6-अंकों का एमपिन (MPIN) डालते हैं, तो ऐप आपकी identity सत्यापित करता है। यह ऑथेंटिकेशन है।
लॉगिन होने के बाद, आप अपना अकाउंट बैलेंस देख सकते हैं और पैसे ट्रांसफर कर सकते हैं। लेकिन आप बैंक के इंटरनल सर्वर की सेटिंग्स नहीं बदल सकते या किसी अन्य ग्राहक का अकाउंट स्टेटमेंट नहीं देख सकते। बैंक का सॉफ्टवेयर आपकी भूमिका (Customer) के आधार पर आपको केवल आपके अपने खाते तक सीमित रखता है। यह ऑथराइजेशन का काम है।
3. कंपनी का इंटरनल पोर्टल
किसी कंपनी की वेबसाइट पर एक आम कर्मचारी (Employee) और एक एडमिन (Admin) दोनों ही एक ही लॉगिन पेज से लॉगिन करते हैं। दोनों का ऑथेंटिकेशन एक ही तरह से होता है।
लेकिन लॉगिन के बाद एडमिन के पास नए कर्मचारियों के अकाउंट बनाने, सैलरी की जानकारी देखने और पुराने अकाउंट डिलीट करने के बटन दिखाई देते हैं। वहीं आम कर्मचारी केवल अपनी अटेंडेंस और लीव एप्लीकेशन देख पाता है। यह अंतर Role-Based Access Control (RBAC) के जरिए ऑथराइजेशन द्वारा लागू किया जाता है।
सुरक्षा व्यवस्था में दोनों की एक साथ भूमिका
सुरक्षित एप्लीकेशन बनाने के लिए ऑथेंटिकेशन और ऑथराइजेशन दोनों का एक साथ होना अनिवार्य है। यदि इनमें से एक भी सिस्टम कमजोर होता है, तो पूरा एप्लीकेशन असुरक्षित हो जाता है।
मान लीजिए कि एक वेबसाइट पर ऑथेंटिकेशन बहुत मजबूत है और उसमें टू-फैक्टर ऑथेंटिकेशन भी लगा है। लेकिन अगर उसमें ऑथराइजेशन सही से लागू नहीं किया गया है, तो एक साधारण यूजर लॉगिन करने के बाद यूआरएल (URL) में बदलाव करके किसी दूसरे यूजर का डेटा देख सकता है। इसे साइबर सुरक्षा की भाषा में बbroken Access Control कहा जाता है।
इसके विपरीत, यदि ऑथराइजेशन नियम तो सख्त बनाए गए हैं लेकिन ऑथेंटिकेशन प्रक्रिया कमजोर है (जैसे बिना पासवर्ड के लॉगिन की अनुमति देना), तो कोई भी हैकर किसी दूसरे की पहचान चुराकर सिस्टम में प्रवेश कर सकता है और उस यूजर के अधिकारों का दुरुपयोग कर सकता है।
2FA और MFA का ऑथेंटिकेशन में महत्व
आजकल केवल एक पासवर्ड पर निर्भर रहना सुरक्षित नहीं माना जाता। इसलिए ऑथेंटिकेशन प्रक्रिया को मजबूत बनाने के लिए टू-फैक्टर ऑथेंटिकेशन (2FA) और मल्टी-फैक्टर ऑथेंटिकेशन (MFA) का उपयोग किया जाता है।
जब आप पासवर्ड डालने के बाद अपने फोन पर आया SMS कोड भी दर्ज करते हैं, तो आप ऑथेंटिकेशन के दो अलग-अलग कारकों (Something you know + Something you have) का उपयोग कर रहे होते हैं। इससे यह सुनिश्चित होता है कि यदि किसी को आपका पासवर्ड मिल भी जाए, तो भी वह बिना आपके फोन के लॉगिन न कर सके। ध्यान देने वाली बात यह है कि 2FA ऑथेंटिकेशन को मजबूत बनाता है, इसका ऑथराइजेशन से सीधा संबंध नहीं होता।
डेवलपर्स और यूज़र्स के लिए काम की बातें
सॉफ्टवेयर डेवलपर्स के लिए यह बेहद जरूरी है कि वे ऑथेंटिकेशन और ऑथराइजेशन के लॉजिक को अलग-अलग रखें। आधुनिक वेब डेवलपमेंट में ऑथेंटिकेशन के लिए OAuth 2.0 या OpenID Connect जैसे मानकों का उपयोग किया जाता है, जबकि ऑथराइजेशन के लिए JSON Web Tokens (JWT) और एक्सेस टोकन्स में स्कोप (Scopes) तय किए जाते हैं।
डेवलपर्स को ‘कम से कम अधिकार का सिद्धांत’ (Principle of Least Privilege) अपनाना चाहिए। इसका सीधा मतलब है कि किसी भी यूजर या सिस्टम कॉम्पोनेंट को केवल उतने ही काम करने की अनुमति दी जानी चाहिए जितनी उसे अपना काम पूरा करने के लिए जरूरी है।
आम यूज़र्स के लिए सबसे अच्छा अभ्यास यह है कि वे अपने सभी अकाउंट्स पर 2FA ऑन रखें और किसी भी ऐप को इंस्टॉल करते समय अनावश्यक परमिशन्स (जैसे कांटेक्ट्स या लोकेशन का एक्सेस) न दें। ऐप्स द्वारा मांगी जाने वाली ये परमिशन्स ऑथराइजेशन का ही एक रूप हैं, जहां आप ऐप को अपने फोन के संसाधनों का उपयोग करने की अनुमति देते हैं।
