OpenID बनाम OAuth

Zhihuang Lin

Zhihuang Lin

July 3, 2024

Technology

उपयोगकर्ता जानकारी की सुरक्षा सुनिश्चित करने और तृतीय-पक्ष एप्लिकेशन को प्रतिबंधित संसाधनों तक पहुंचने की अनुमति देने के लिए, दो मुख्यधारा की तकनीकें उभरी हैं: OpenID Connect और OAuth। जबकि इन दोनों को अक्सर एक साथ चर्चा की जाती है, वे मूल रूप से अपने कार्यात्मक स्थिति और मुख्य उद्देश्यों में भिन्न हैं।

विशेष रूप से, OAuth एक प्राधिकरण ढांचा बनाने पर केंद्रित है, इसका मुख्य उद्देश्य तृतीय-पक्ष एप्लिकेशन को विशिष्ट संसाधनों तक पहुंचने की अनुमति देना है, जिसमें उपयोगकर्ता की पहचान की सीधे सत्यापन शामिल नहीं है। इसके विपरीत, OpenID Connect एक पहचान प्रमाणीकरण सेवा के रूप में सटीक रूप से स्थित है, जो OAuth की पहचान पहचान के क्षेत्र में कमी को पूरा करता है और उपयोगकर्ता पहचान की प्रामाणिकता और विश्वसनीयता सुनिश्चित करता है।

इस ब्लॉग में, हम OpenID Connect और OAuth के सार, संचालन तंत्र, विशिष्ट अनुप्रयोग परिदृश्यों और उनके बीच के सूक्ष्म लेकिन घनिष्ठ संबंध पर गहराई से चर्चा करेंगे।

OpenID Connect क्या है?

OpenID Connect (OIDC) OAuth 2.0 ढांचे पर आधारित एक प्रमाणीकरण प्रोटोकॉल है, जो OAuth की कार्यक्षमता को ID टोकन की अवधारणा को शामिल करके विस्तारित करता है। OIDC न केवल उपयोगकर्ताओं को तृतीय-पक्ष एप्लिकेशन को अपने संसाधनों तक पहुंचने की अनुमति देता है, बल्कि उपयोगकर्ता पहचान जानकारी की सत्यापन भी प्रदान करता है, जिससे एकल लॉगिन क्रेडेंशियल का उपयोग करके कई सेवाओं तक सुरक्षित पहुंच सक्षम होती है।

OAuth 2.0 की तुलना में, OIDC का मुख्य अंतर प्रमाणीकरण परत को जोड़ना है, जबकि OAuth 2.0 मुख्य रूप से प्राधिकरण पर केंद्रित है, जो उपयोगकर्ताओं को तृतीय-पक्ष एप्लिकेशन के अपने संसाधनों तक पहुंचने की अनुमति को नियंत्रित करने की अनुमति देता है, जिसमें उपयोगकर्ता पहचान के विशिष्ट सत्यापन शामिल नहीं है।

OpenID Connect प्रमाणीकरण प्रक्रिया:

  1. एप्लिकेशन तक पहुंच: जब एक उपयोगकर्ता किसी एप्लिकेशन या सेवा का उपयोग करना चाहता है, यदि एप्लिकेशन को उपयोगकर्ता की पहचान सत्यापित करने की आवश्यकता होती है, तो उपयोगकर्ता को पहचान प्रमाणीकरण सेवा प्रदाता, OpenID Connect प्रदाता (OP) पर लॉगिन के लिए निर्देशित किया जाएगा।

  2. उपयोगकर्ता लॉगिन: उपयोगकर्ता OP के लॉगिन इंटरफेस पर अपना उपयोगकर्ता नाम और पासवर्ड (या OP द्वारा समर्थित अन्य प्रमाणीकरण तंत्र) दर्ज करता है। एक बार उपयोगकर्ता सफलतापूर्वक लॉगिन करने के बाद, OpenID Connect प्रदाता उपयोगकर्ता की पहचान की पुष्टि करेगा।

  3. ID टोकन जारी करना: उपयोगकर्ता की पहचान की पुष्टि करने के बाद, OpenID Connect प्रदाता एक विशेष टोकन जनरेट करेगा जिसे ID टोकन कहा जाता है। यह टोकन उपयोगकर्ता की पहचान जानकारी, जैसे उपयोगकर्ता नाम, ईमेल पता और अन्य महत्वपूर्ण डेटा शामिल करता है, जो उपयोगकर्ता की पहचान के डिजिटल प्रतिनिधित्व और संचरण को सुनिश्चित करता है।

  4. ID टोकन का उपयोग: ID टोकन प्राप्त करने के बाद, उपयोगकर्ता इसे पहले तक पहुंचने के लिए चाहे गए एप्लिकेशन को प्रस्तुत कर सकता है। एप्लिकेशन तब सत्यापन तंत्र को सक्रिय करेगा ताकि टोकन की जांच की जा सके और यह सुनिश्चित किया जा सके कि यह एक विश्वसनीय OpenID Connect प्रदाता द्वारा जारी किया गया है और यह समाप्त नहीं हुआ है।

  5. एप्लिकेशन तक पहुंच: एक बार एप्लिकेशन ने ID टोकन की वैधता की पुष्टि कर दी है, तो यह उपयोगकर्ता को संरक्षित संसाधनों या सेवाओं तक पहुंचने की अनुमति देगा। इस तरह, उपयोगकर्ता को प्रत्येक एप्लिकेशन में अलग से पंजीकरण और लॉगिन करने की आवश्यकता नहीं होती है, बल्कि वह OpenID Connect प्रदाता द्वारा जारी किए गए ID टोकन का उपयोग कर सकता है।

  6. सुरक्षा आश्वासन: OpenID Connect उन्नत JSON Web Token (JWT) तकनीक का उपयोग करता है ताकि टोकन जनरेट और सत्यापित किए जा सकें, जो डेटा छेड़छाड़ और चोरी के जोखिम को प्रभावी ढंग से कम करता है। इसके अलावा, OpenID Connect लचीले ढंग से कई प्रमाणीकरण और प्राधिकरण मोड का समर्थन करता है, जैसे प्राधिकरण कोड मोड, अंतर्निहित मोड और हाइब्रिड मोड, ताकि विभिन्न परिदृश्यों की सुरक्षा आवश्यकताओं के अनुकूल हो सके।

OAuth क्या है?

संक्षेप में, OAuth एक प्रोटोकॉल है जो तृतीय-पक्ष एप्लिकेशन को उपयोगकर्ता के लॉगिन क्रेडेंशियल (उपयोगकर्ता नाम और पासवर्ड) को सीधे एक्सेस किए बिना किसी अन्य सेवा पर संग्रहीत संवेदनशील संसाधनों (जैसे फोटो लाइब्रेरी, संपर्क सूची आदि) तक पहुंचने की अनुमति देता है। यह तंत्र "प्राधिकरण" के बजाय "प्रमाणीकरण" की ओर अधिक झुकाव रखता है।

उदाहरण के लिए, यदि आप अपने Google खाते का उपयोग करके एक समाचार एप्लिकेशन में लॉगिन करना चाहते हैं, तो एप्लिकेशन OAuth का उपयोग करके आपके Google खाते से आपकी सार्वजनिक जानकारी (जैसे प्रोफाइल चित्र और उपनाम) का अनुरोध कर सकता है, बिना आपको सीधे समाचार एप्लिकेशन को Google खाते का उपयोगकर्ता नाम और पासवर्ड प्रदान करने की आवश्यकता के।

OAuth प्राधिकरण प्रक्रिया:

  1. उपयोगकर्ता प्राधिकरण का अनुरोध करता है: मान लीजिए कि आप एक सोशल एप्लिकेशन का उपयोग कर रहे हैं जो किसी अन्य सोशल नेटवर्क पर आपके खाते की जानकारी तक पहुंचना चाहता है। हालांकि, यह जानकारी संरक्षित है, इसलिए प्राधिकरण की आवश्यकता है।

  2. प्राधिकरण सर्वर पर पुनर्निर्देशित करना: तृतीय-पक्ष एप्लिकेशन आपके अनुरोध को एक प्राधिकरण सर्वर के पृष्ठ पर पुनर्निर्देशित करेगा, जो आमतौर पर आपसे उस सेवा में लॉगिन करने के लिए कहेगा जिसे आप प्राधिकृत करना चाहते हैं।

  3. उपयोगकर्ता लॉगिन और प्राधिकरण: प्राधिकरण सर्वर के पृष्ठ पर, आपको अपने खाते से लॉगिन करने की आवश्यकता होगी। लॉगिन करने के बाद, पृष्ठ आपसे पूछेगा कि क्या आप तृतीय-पक्ष एप्लिकेशन को अपनी जानकारी तक पहुंचने की अनुमति देना चाहते हैं।

  4. प्राधिकरण सर्वर एक्सेस टोकन जारी करता है: यदि आप सहमत हैं, तो प्राधिकरण सर्वर एक विशेष "पास" जनरेट करेगा जिसे एक्सेस टोकन कहा जाता है। यह टोकन एक अस्थायी प्रवेश पास की तरह है जो तृतीय-पक्ष एप्लिकेशन को एक निश्चित समय के लिए आपकी जानकारी तक पहुंचने की अनुमति देता है।

  5. तृतीय-पक्ष एप्लिकेशन एक्सेस टोकन का उपयोग करता है: एक बार तृतीय-पक्ष एप्लिकेशन ने एक्सेस टोकन प्राप्त कर लिया है, तो यह इस टोकन का उपयोग करके एक निश्चित समय के लिए आपकी जानकारी का अनुरोध कर सकता है। हर बार अनुरोध करने पर, इसे यह टोकन प्रस्तुत करने की आवश्यकता होगी ताकि यह साबित हो सके कि इसे आपके द्वारा प्राधिकृत किया गया है।

  6. प्राधिकरण सर्वर टोकन की जांच करता है और संसाधन लौटाता है: जब तृतीय-पक्ष एप्लिकेशन आपकी जानकारी संग्रहीत करने वाले प्राधिकरण सर्वर को एक्सेस टोकन प्रस्तुत करता है, तो प्राधिकरण सर्वर यह जांच करेगा कि टोकन वैध है या नहीं। यदि यह वैध है, तो यह तृतीय-पक्ष एप्लिकेशन को टोकन की अनुमतियों के आधार पर संबंधित जानकारी तक पहुंचने की अनुमति देगा।

OAuth दृष्टिकोण को अपनाने से, न केवल आपके खाते की सुरक्षा में काफी वृद्धि होती है, क्योंकि इससे तृतीय-पक्ष एप्लिकेशन को सीधे आपका उपयोगकर्ता नाम और पासवर्ड प्रकट करने की आवश्यकता नहीं होती है, बल्कि यह एक लचीला प्राधिकरण तंत्र भी प्रदान करता है जो आपको स्वतंत्र रूप से यह निर्णय लेने की अनुमति देता है कि कौन से एप्लिकेशन आपकी कौन सी जानकारी तक पहुंच सकते हैं, जिससे आपकी व्यक्तिगत जानकारी के प्रवाह पर सटीक नियंत्रण प्राप्त होता है।

OpenID Connect और OAuth के बीच अंतर और संबंध

OpenID Connect और OAuth के बीच अंतर और संबंध व्यावहारिक अनुप्रयोगों में विशेष रूप से स्पष्ट होते हैं। मान लीजिए कि एक ऑनलाइन पालतू वेबसाइट है जिसका नाम "पेट पैराडाइज" है, जहां ग्राहक पालतू सामग्री खरीद सकते हैं, और पालतू दुकान एक पालतू स्वास्थ्य ट्रैकिंग ऐप भी प्रदान करती है जहां ग्राहक अपने पालतू के स्वास्थ्य डेटा, जैसे वजन, आहार और टीकाकरण स्थिति को रिकॉर्ड कर सकते हैं।

इस उपयोग मामले में OpenID Connect का अनुप्रयोग:

  1. प्रमाणीकरण: जब ग्राहक पहली बार "पेट पैराडाइज" वेबसाइट पर जाते हैं या पालतू स्वास्थ्य ट्रैकिंग ऐप डाउनलोड और उपयोग करते हैं, तो उन्हें पंजीकरण और लॉगिन करने की आवश्यकता होती है। एक सुविधाजनक लॉगिन अनुभव प्रदान करने के लिए, पालतू दुकान OpenID Connect का उपयोग करके सिंगल साइन-ऑन (SSO) लागू करने का निर्णय लेती है।

  2. ID टोकन: ग्राहक OpenID Connect का समर्थन करने वाली अन्य सेवाओं (जैसे सोशल मीडिया खाते) के क्रेडेंशियल का उपयोग करके लॉगिन कर सकते हैं। एक बार लॉगिन सफल होने के बाद, OpenID Connect प्रदाता ग्राहक को एक ID टोकन जारी करेगा। यह टोकन ग्राहक की पहचान जानकारी शामिल करता है और इसे एन्क्रिप्ट और साइन किया जाता है।

  3. क्रॉस-सेवा प्रमाणीकरण: यदि ग्राहक बाद में पालतू दुकान की अन्य सेवाओं (जैसे वेबसाइट से ऐप) पर जाते हैं, तो वे पहले प्राप्त ID टोकन का उपयोग करके सीधे प्रमाणीकरण कर सकते हैं, बिना उपयोगकर्ता नाम और पासवर्ड को फिर से दर्ज करने की आवश्यकता के। इससे ग्राहक विभिन्न सेवाओं के बीच सहजता से स्विच कर सकते हैं।

इस उपयोग मामले में OAuth का अनुप्रयोग:

  1. तृतीय-पक्ष एप्लिकेशन प्राधिकरण: मान लीजिए कि "पेट पैराडाइज" एक तृतीय-पक्ष एप्लिकेशन "पेट डायरी" के साथ सहयोग करना चाहता है और ग्राहकों को "पेट पैराडाइज" से अपनी पालतू सामग्री खरीद रिकॉर्ड और पालतू स्वास्थ्य डेटा को "पेट डायरी" में सिंक्रनाइज़ करने की अनुमति देना चाहता है।

  2. एक्सेस टोकन: इस कार्यक्षमता को प्राप्त करने के लिए, "पेट पैराडाइज" OAuth का उपयोग करके "पेट डायरी" एप्लिकेशन को ग्राहक के डेटा तक पहुंचने की अनुमति देगा। ग्राहक द्वारा "पेट पैराडाइज" वेबसाइट पर प्राधिकरण के लिए सहमति देने के बाद, OAuth प्रवाह के माध्यम से एक एक्सेस टोकन जनरेट किया जाएगा, जो "पेट डायरी" एप्लिकेशन को "पेट पैराडाइज" पर ग्राहक के विशिष्ट डेटा तक पहुंचने की अनुमति देता है।

  3. उपयोगकर्ता डेटा की सुरक्षा: OAuth के माध्यम से, ग्राहक के लॉगिन क्रेडेंशियल (उपयोगकर्ता नाम और पासवर्ड) सीधे "पेट डायरी" एप्लिकेशन को प्रकट नहीं होंगे, बल्कि एक्सेस टोकन के माध्यम से सुरक्षित रूप से साझा किए जाएंगे। इस तरह, यदि "पेट डायरी" एप्लिकेशन पर हमला होता है, तो हमलावर सीधे ग्राहक के लॉगिन क्रेडेंशियल प्राप्त नहीं कर सकता है।

सारांश

संक्षेप में, OAuth और OpenID Connect के बीच अंतर और संबंध निम्नलिखित रूप में सारांशित किए जा सकते हैं।

  1. आधार और विस्तार:

    • OAuth एक प्राधिकरण ढांचा है जो तृतीय-पक्ष एप्लिकेशन को उपयोगकर्ता के उपयोगकर्ता नाम और पासवर्ड का उपयोग किए बिना सीमित पहुंच अनुमतियां प्राप्त करने की अनुमति देता है।
    • OpenID Connect, दूसरी ओर, OAuth 2.0 के आधार पर बनता है और प्रमाणीकरण परत को जोड़कर इसकी कार्यक्षमता को विस्तारित करता है।
  2. टोकन और प्रमाणीकरण:

    • OAuth में, मुख्य ध्यान प्राधिकरण पर होता है, यानी एप्लिकेशन को उपयोगकर्ता के संसाधनों तक पहुंचने की अनुमति देना, जबकि OpenID Connect प्रमाणीकरण पर अधिक ध्यान केंद्रित करता है, यानी उपयोगकर्ता की पहचान की पुष्टि करना।
    • OpenID Connect ID टोकन की अवधारणा को पेश करता है, जो एक JSON Web Token (JWT) है जिसमें उपयोगकर्ता की पहचान जानकारी शामिल होती है। यह टोकन न केवल उपयोगकर्ता की पहचान को साबित करता है, बल्कि उपयोगकर्ता के व्यक्तिगत प्रोफाइल जानकारी को भी शामिल कर सकता है।
  3. सहयोग:

    • जब किसी एप्लिकेशन को उपयोगकर्ता की पहचान सत्यापित करने और उपयोगकर्ता के संसाधनों तक पहुंचने की आवश्यकता होती है, तो OpenID Connect और OAuth एक साथ काम कर सकते हैं।
    • उपयोगकर्ता पहले OpenID Connect के माध्यम से अपनी पहचान सत्यापित करता है, एक ID टोकन प्राप्त करता है, और फिर एप्लिकेशन इस टोकन और OAuth प्रवाह का उपयोग करके उपयोगकर्ता के संसाधनों तक पहुंचने की अनुमति प्राप्त कर सकता है।

संक्षेप में, OpenID Connect और OAuth दो पूरक पहचान प्रमाणीकरण और प्राधिकरण प्रोटोकॉल हैं जो आधुनिक वेब और मोबाइल एप्लिकेशन के लिए एक सुरक्षित, लचीला और उपयोगकर्ता-अनुकूल प्रमाणीकरण और प्राधिकरण समाधान प्रदान करते हैं।

Tags: