ASP.NET Core एप्लीकेशन के भीतर ऑथेंटिकेशन फीचर को शामिल करने का अभिप्राय

एप्लीकेशन के भीतर ऑथेंटिकेशन फीचर को शामिल करने का क्या अभिप्राय हो सकता है, इस को समझते हैं। जब कोई यूजर एप्लीकेशन के पास रिक्वेस्ट भेजता है तो यह एप्लीकेशन कैसे पहचान करेगा कि यह रिक्वेस्ट फालना यूजर के द्वारा ही भेजा जा रहा है। इसके लिए यह जरूरी है कि ऑथेंटिकेशन के लिए कोई स्कीम हो। कहने का अभिप्राय है कि यूजर के इनफॉरमेशन को किसी तरीके से एप्लीकेशन के द्वारा स्टोर कर लिया जाए और इसको सुरक्षित तरीके से क्लाइंट ब्राउज़र के पास भेज दिया जाए। जब-जब ब्राउज़र के द्वारा रिक्वेस्ट भेजा जाए तो उस इनफॉरमेशन को एप्लीकेशन क्लाइंट के पास भेजें और एप्लीकेशन जांच करें जो इनफॉरमेशन उसके पास स्टोर है क्या वही इनफॉरमेशन क्लाइंट के द्वारा भेजा जा रहा है यदि हां तो यूजर को ऑथेंटिकेटेड मान लिया जाएगा यदि ना तो यूजर को अनऑथेंटिकेटेड कर दिया जाएगा।

अब सवाल है कि यूजर को ऑथेंटिकेशन करने के लिए क्या स्कीम हो सकता है? 

देखिए यूजर को ऑथेंटिकेशन करने के लिए अलग-अलग टेक्नोलॉजी के द्वारा अलग-अलग उपाय संभव है उदाहरण के लिए कूकी का प्रयोग करके भी हो यूजर को ऑथेंटिकेशन किया जा सकता है इसके अंतर्गत एप्लीकेशन के द्वारा यूजर के इनफार्मेशन को कूकी के भीतर इंक्रिप्ट करके ब्राउज़र के पास भेजा जा सकता है दूसरा तरीका यह है कि टोकन का निर्माण किया जाए और टोकन के भीतर यूजर के इनफार्मेशन को इंक्रीस करके एप्लीकेशन के द्वारा क्लाइंट ब्राउज़र के पास भेज दिया जाए इस तरह अन्य तरफ के टेक्नोलॉजी का उपयोग करके यूजर को ऑथेंटिकेशन किया जा सकता है इन अलग-अलग तरीकों को ऑथेंटिकेशन स्कीम के नाम से जाना जाता है 

आप यदि आप कुकी के ऑथेंटिकेशन स्कीम का यूज करें तो कुकी के भेजने के समय न केवल यूजर का इनफार्मेशन बल्कि कुकी का नाम और उसमें इस तरह की इनफार्मेशन को भी शामिल किया जा सकता है कि: यदि यूजर के द्वारा कुकी भेजा जाता है तो यदि यूजर ऑथेंटिकेटेड नहीं है तो उसे लोगिन करने के लिए किस पेज पर भेजा जाए इत्यादि। कोई जरूरी नहीं है इस तरह के अतिरिक्त इनफॉरमेशन को कूकी के भीतर ही रखा जाए ऐसा भी किया जा सकता है कि कुकी सर्विस के भीतर इस तरह के कॉन्फ़िगरेशन को किया जाए कि यदि यूजर ऑथेंटिकेटेड नहीं है तो उसे लोगिन के लिए किस पेज पर भेजा जाएगा, कुकी का क्या नाम होगा इत्यादि।

एप्लीकेशन में ऑथेंटिकेशन (Authentication) का क्या महत्व है?

एप्लीकेशन के भीतर Authentication फीचर को शामिल करने का मुख्य उद्देश्य सुरक्षा और पहचान सुनिश्चित करना है। सरल शब्दों में कहें तो, जब कोई यूजर एप्लीकेशन को रिक्वेस्ट भेजता है, तो सर्वर को यह पता होना चाहिए कि वह रिक्वेस्ट किस यूजर की तरफ से आई है।

यह प्रक्रिया कैसे काम करती है?

जब कोई यूजर पहली बार लॉगिन करता है, तो एप्लीकेशन उसकी पहचान की पुष्टि करती है (जैसे यूजरनेम और पासवर्ड के जरिए)। इसके बाद, उस यूजर की जानकारी को सुरक्षित तरीके से स्टोर करना और क्लाइंट (ब्राउज़र) के पास भेजना जरूरी होता है।

इस पूरी प्रक्रिया को निम्नलिखित चरणों में समझा जा सकता है:

  1. Request & Storage: यूजर की पहचान से जुड़ी जानकारी (Claims) को एप्लीकेशन द्वारा एक सुरक्षित फॉर्मेट में बदला जाता है।
  2. Handshake: इस जानकारी को क्लाइंट ब्राउज़र के पास भेज दिया जाता है।
  3. Verification: अब, जब भी ब्राउज़र कोई अगली रिक्वेस्ट भेजता है, तो वह साथ में उस जानकारी (Cookie या Token) को भी भेजता है। एप्लीकेशन अपने पास मौजूद डेटा से इसकी तुलना करती है।

यदि डेटा मैच होता है, तो यूजर Authenticated माना जाता है।

यदि डेटा मैच नहीं होता या मौजूद नहीं है, तो यूजर Unauthenticated (अज्ञात) माना जाता है।

ऑथेंटिकेशन स्कीम्स (Authentication Schemes) क्या हैं?

यूजर की पहचान करने के लिए अलग-अलग टेक्नोलॉजी और तरीके इस्तेमाल किए जाते हैं, जिन्हें Authentication Schemes कहा जाता है। मुख्य रूप से दो तरीके सबसे ज्यादा लोकप्रिय हैं:

  1. Cookie-Based Authentication: इसमें सर्वर यूजर की जानकारी को एन्क्रिप्ट (Encrypt) करके एक 'कुकी' के रूप में ब्राउज़र को भेजता है। ब्राउज़र हर रिक्वेस्ट के साथ इस कुकी को ऑटोमैटिकली सर्वर पर भेजता रहता है।
  2. Token-Based Authentication (JWT): इसमें एक डिजिटल 'टोकन' जनरेट किया जाता है। यह अक्सर मोबाइल ऐप्स और मॉडर्न वेब ऐप्स (SPAs) में उपयोग होता है।

कुकी ऑथेंटिकेशन और कॉन्फ़िगरेशन

जब हम Cookie Authentication Scheme का उपयोग करते हैं, तो हम केवल यूजर डेटा ही नहीं, बल्कि कुछ अतिरिक्त नियम (Configuration) भी तय करते हैं।

यह कॉन्फ़िगरेशन कुकी के भीतर या एप्लीकेशन की सर्विस सेटिंग्स (जैसे ASP.NET Core में AddAuthentication) में किया जा सकता है। इसमें हम निम्नलिखित बातें तय कर सकते हैं:

  1. Cookie Name: कुकी का नाम क्या होगा (जैसे .AspNetCore.Cookies)।
  2. Login Path: यदि कोई अनधिकृत (Unauthorized) यूजर किसी सुरक्षित पेज को एक्सेस करने की कोशिश करे, तो उसे किस Login Page पर रीडायरेक्ट किया जाए।
  3. Expiration: कुकी कितने समय तक वैलिड रहेगी।
  4. Access Denied Path: यदि यूजर लॉगिन तो है, लेकिन उसके पास उस खास पेज को देखने की अनुमति नहीं है, तो उसे कहाँ भेजा जाए।

टिप्पणियाँ

इस ब्लॉग से लोकप्रिय पोस्ट

Differences between in-process and out-of-process hosting models

Web Fundamental Concepts in Hindi for Beginners - FAQs with their Answers Part-1

Introduction to ASP.NET Core and Web Frameworks