जवाबों:
वे प्रमाणीकरण के दो अलग-अलग प्रोटोकॉल हैं और वे तकनीकी स्तर पर भिन्न हैं।
जब उपयोगकर्ता प्रमाणीकरण शुरू करते हैं, तब से एक अंतर शुरू होता है। OpenID के साथ, एक उपयोगकर्ता लॉगिन आमतौर पर संसाधन का एक HTTP पता होता है जो प्रमाणीकरण के लिए जिम्मेदार होता है। दूसरी ओर, एसएएमएल आपकी साइट और पहचान प्रदाता के बीच एक स्पष्ट विश्वास पर आधारित है, इसलिए किसी अज्ञात साइट से क्रेडेंशियल्स को स्वीकार करना असामान्य है।
ओपनआईडी पहचान नेट के आसपास प्राप्त करना आसान है। एक डेवलपर के रूप में आप तब बहुत अलग OpenID प्रदाताओं से आने वाले उपयोगकर्ताओं को स्वीकार कर सकते हैं। दूसरी ओर, एसएएमएल प्रदाता को आमतौर पर पहले से कोडित करना होता है और आप केवल चयनित पहचान प्रदाताओं के साथ अपना आवेदन जमा करते हैं। स्वीकृत ओपनआईडी पहचान प्रदाताओं की सूची को संकीर्ण करना संभव है, लेकिन मुझे लगता है कि यह सामान्य ओपनआईडी अवधारणा के खिलाफ होगा।
OpenID के साथ आप मनमाने सर्वर से आने वाली पहचान स्वीकार करते हैं। कोई होने का दावा करता है http://someopenid.provider.com/john.smith
। आप अपने डेटाबेस के उपयोगकर्ता के साथ इसका मिलान कैसे करेंगे? उदाहरण के लिए, किसी नए खाते के साथ इस जानकारी को संग्रहीत करने और उपयोगकर्ता द्वारा आपकी साइट पर फिर से आने पर इसे पहचानने के लिए। ध्यान दें कि उपयोगकर्ता के बारे में कोई अन्य जानकारी (उसके नाम या ईमेल सहित) पर भरोसा नहीं किया जा सकता है!
दूसरी ओर, यदि आपके एप्लिकेशन और SAML Id प्रदाता के बीच एक स्पष्ट विश्वास है, तो आप उपयोगकर्ता के बारे में पूरी जानकारी प्राप्त कर सकते हैं जिसमें नाम और ईमेल शामिल हैं और इस जानकारी पर भरोसा किया जा सकता है, बस विश्वास संबंध के कारण। इसका मतलब है कि आप यह मानते हैं कि आईडी प्रदाता किसी भी तरह से सभी सूचनाओं को मान्य करता है और आप आवेदन स्तर पर इस पर भरोसा कर सकते हैं। यदि उपयोगकर्ता अनजान प्रदाता द्वारा जारी किए गए SAML टोकन के साथ आते हैं, तो आपका आवेदन प्रमाणीकरण से इनकार कर देता है।
(खंड 07-2017 जोड़ा गया, 08-2018 विस्तारित)
यह उत्तर 2011 की है और उस समय OpenID 2.0 OpenID के लिए खड़ा था । बाद में, 2012 कहीं, OAuth2.0 प्रकाशित किया गया है और 2014 में, OpenID Connect ने (एक अधिक विस्तृत समय यहाँ )।
आजकल इसे पढ़ने वाले किसी भी व्यक्ति के लिए - ओपेनआईडी कनेक्ट वही ओपेनआईडी नहीं है जिसका मूल उत्तर संदर्भित है , बल्कि यह OAuth2.0 के एक्सटेंशन का एक सेट है।
जबकि इस जवाब वैचारिक दृष्टिकोण से कुछ प्रकाश डाला सकता है, किसी को OAuth2.0 पृष्ठभूमि के साथ आने के लिए एक बहुत ही संक्षिप्त संस्करण है कि OpenID Connect है है तथ्य OAuth2.0 में लेकिन इसके बारे में एक मानक तरीका कहते हैं उपयोगकर्ता की जानकारी क्वेरी करने पहुँच टोकन के बाद, उपलब्ध है।
मूल प्रश्न का जिक्र - OpenID कनेक्ट (OAuth2.0) और SAML के बीच मुख्य अंतर क्या है कि आवेदन और पहचान प्रदाता के बीच विश्वास संबंध कैसे बनाया जाता है:
एसएएमएल एक डिजिटल हस्ताक्षर पर विश्वास संबंध बनाता है, पहचान प्रदाता द्वारा जारी एसएएमएल टोकन एक्सएमएल पर हस्ताक्षर किए जाते हैं, आवेदन स्वयं हस्ताक्षर और प्रमाण पत्र प्रस्तुत करता है। उपयोगकर्ता जानकारी अन्य सूचनाओं के अलावा एक एसएएमएल टोकन में शामिल है।
OAuth2 एक सीधा HTTPs अनुप्रयोग से पहचान के लिए विश्वास संबंध बनाता है। अनुरोध में एक्सेस टोकन (प्रोटोकॉल प्रवाह के दौरान एप्लिकेशन द्वारा प्राप्त) और प्रतिक्रिया में उपयोगकर्ता के बारे में जानकारी शामिल है।
OpenID कनेक्ट इस अतिरिक्त कदम को आगे बढ़ाता है ताकि पहचान को इस अतिरिक्त कदम के बिना संभव हो सके जिसमें एप्लिकेशन से पहचान प्रदाता तक कॉल शामिल हो। यह विचार इस तथ्य पर आधारित है कि OpenID कनेक्ट प्रदाता वास्तव में दो टोकन जारी करते हैं access_token
, बहुत ही एक OAuth2.0 मुद्दे और नया, id_token
जो कि JWT टोकन है, पहचान प्रदाता द्वारा हस्ताक्षरित है। एप्लिकेशन id_token
JWT टोकन में शामिल दावों के आधार पर एक स्थानीय सत्र को स्थापित करने के लिए उपयोग कर सकता है , लेकिन अन्य सेवाओं को आगे क्वेरी करने के लिए id_token
उपयोग नहीं किया जा सकता है , तीसरे पक्ष की सेवाओं के लिए ऐसी कॉल अभी भी उपयोग करनी चाहिएaccess_token
। आप OpenID कनेक्ट के बारे में सोच सकते हैं तो SAML2 (हस्ताक्षरित टोकन) और OAuth2 (एक्सेस टोकन) के बीच एक हाइब्रिड के रूप में, OpenID कनेक्ट दोनों के साथ ही शामिल है।
OpenID और SAML2 दोनों संघबद्ध पहचान की एक ही अवधारणा पर आधारित हैं। निम्नलिखित उन दोनों के बीच कुछ अंतर हैं ..
तकनीकी विवरणों को एक तरफ रख दें, तो पार्टी के लिए काफी देर हो चुकी है, जो मैं समझता हूं कि एसएएमएल और अन्य मानक मानकों (इंक। ओपनआईडी) के बीच सबसे बड़ा अंतर है।
एसएएमएल को पहचानकर्ता प्रदाता (आईडीपी) और सेवा प्रदाता (एसपी) की आवश्यकता होती है, ताकि एक-दूसरे को हाथ से पहले जानने के लिए, पूर्व-कॉन्फ़िगर , स्थैतिक प्रमाणीकरण और प्राधिकरण किया जा सके। OpenId (+ कनेक्ट) ऐसी आवश्यकता नहीं है।
यह IDPs के लिए महत्वपूर्ण है जो डेटा तक पहुँचने वाले पर पूर्ण नियंत्रण चाहते हैं। मानक का हिस्सा विशिष्ट एसपी को प्रदान करने के लिए कॉन्फ़िगर करना है।
उदाहरण के लिए, एक बैंक अपने उपयोगकर्ताओं को कुछ पूर्वनिर्धारित (नियमों या अन्य सख्त सुरक्षा नियमों के कारण) को छोड़कर किसी भी सेवा तक नहीं पहुंच सकता है।
इसका मतलब यह नहीं है कि एक OpenId IDP, इस तरह के प्रतिबंध को लागू नहीं कर सकता है। एक OpenID कार्यान्वयनकर्ता पहुंच को नियंत्रित कर सकता है, लेकिन यह OpenID का उद्देश्य नहीं है।
पूर्वनिर्धारित, सख्त, स्थिर, अभिगम नियंत्रण अंतर के अलावा, वैचारिक रूप से (तकनीकी रूप से नहीं), ओपनआईडी कनेक्ट और एसएएमएल समान हैं।
नीचे पंक्ति, यदि आप एक एसपी हैं, तो आपको अपने ग्राहकों की आवश्यकता का समर्थन करना चाहिए:
SAML और OpenID दोनों पहचान प्रदाता (संक्षिप्त आईडीपी) अर्थात विकेंद्रीकृत प्रमाणीकरण प्रोटोकॉल (एकल साइन-ऑन पहचान) के रूप में कार्य कर सकते हैं।
एस ecurity एक ssertion एम arkup एल anguage ( SAML ) सुरक्षा डोमेन के बीच प्रमाणीकरण और प्राधिकरण डेटा का आदान प्रदान के लिए प्रोफाइल के एक सेट है। SAML डोमेन मॉडल में, एक पहचान प्रदाता एक विशेष प्रकार का प्रमाणीकरण प्राधिकरण है। विशेष रूप से, एक एसएएमएल पहचान प्रदाता एक सिस्टम एंटिटी है जो एसएएमएल प्रोफाइल के एसएसओ प्रोफाइल के साथ प्रमाणीकरण प्रमाणीकरण जारी करता है। एक पार्टी जो इन प्रमाणीकरण अभिकल्पों का उपभोग करती है, उसे SAML सेवा प्रदाता कहा जाता है। स्रोत
O पेन आईडी C onnect ( OIDC ) ऑथोराइज़ेशन फ्रेमवर्क OAuth 2.0 के शीर्ष पर एक प्रमाणीकरण परत है। मानक OpenID फाउंडेशन द्वारा नियंत्रित किया जाता है। OAuth प्रमाणीकरण प्रोटोकॉल के बजाय ऑथोराइज़ेशन प्रोटोकॉल के लिए है और OpenID विशेष रूप से प्रमाणीकरण प्रोटोकॉल के रूप में डिज़ाइन किया गया है। OIDC सरल JSON वेब टोकन (JWT) का उपयोग करता है, वे जावास्क्रिप्ट द्वारा उपभोग करना आसान है।
OAuth का उपयोग करें यदि आपके उपयोगकर्ता Facebook, या Twitter के साथ लॉगिन करना चाहते हैं। OpenID का उपयोग करें यदि आपके उपयोगकर्ता नेकबर्ड हैं जो अपने स्वयं के OpenID प्रदाता चलाते हैं क्योंकि वे "किसी और को अपनी पहचान नहीं चाहते हैं"।