OpenID और SAML में क्या अंतर है?


जवाबों:


162

मूल OpenID 2.0 बनाम SAML

वे प्रमाणीकरण के दो अलग-अलग प्रोटोकॉल हैं और वे तकनीकी स्तर पर भिन्न हैं।

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

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

OpenID के साथ आप मनमाने सर्वर से आने वाली पहचान स्वीकार करते हैं। कोई होने का दावा करता है http://someopenid.provider.com/john.smith। आप अपने डेटाबेस के उपयोगकर्ता के साथ इसका मिलान कैसे करेंगे? उदाहरण के लिए, किसी नए खाते के साथ इस जानकारी को संग्रहीत करने और उपयोगकर्ता द्वारा आपकी साइट पर फिर से आने पर इसे पहचानने के लिए। ध्यान दें कि उपयोगकर्ता के बारे में कोई अन्य जानकारी (उसके नाम या ईमेल सहित) पर भरोसा नहीं किया जा सकता है!

दूसरी ओर, यदि आपके एप्लिकेशन और SAML Id प्रदाता के बीच एक स्पष्ट विश्वास है, तो आप उपयोगकर्ता के बारे में पूरी जानकारी प्राप्त कर सकते हैं जिसमें नाम और ईमेल शामिल हैं और इस जानकारी पर भरोसा किया जा सकता है, बस विश्वास संबंध के कारण। इसका मतलब है कि आप यह मानते हैं कि आईडी प्रदाता किसी भी तरह से सभी सूचनाओं को मान्य करता है और आप आवेदन स्तर पर इस पर भरोसा कर सकते हैं। यदि उपयोगकर्ता अनजान प्रदाता द्वारा जारी किए गए SAML टोकन के साथ आते हैं, तो आपका आवेदन प्रमाणीकरण से इनकार कर देता है।

OpenID कनेक्ट बनाम 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_tokenJWT टोकन में शामिल दावों के आधार पर एक स्थानीय सत्र को स्थापित करने के लिए उपयोग कर सकता है , लेकिन अन्य सेवाओं को आगे क्वेरी करने के लिए id_token उपयोग नहीं किया जा सकता है , तीसरे पक्ष की सेवाओं के लिए ऐसी कॉल अभी भी उपयोग करनी चाहिएaccess_token। आप OpenID कनेक्ट के बारे में सोच सकते हैं तो SAML2 (हस्ताक्षरित टोकन) और OAuth2 (एक्सेस टोकन) के बीच एक हाइब्रिड के रूप में, OpenID कनेक्ट दोनों के साथ ही शामिल है।


12
"ट्रस्ट" की अवधारणा एसएएमएल संस्कृति में बहुत महत्वपूर्ण है, क्योंकि यह महासंघ की संस्कृति से आती है। SAML संघों में, उपयोगकर्ता प्रमाणीकरण और प्राधिकरण दोनों को "मुखर" करते हुए IdP के साथ एक वर्तमान संबंध के साथ एक व्यक्ति का 1: 1 संबंध होना चाहिए। एक फेडरेशन में आईडीपी का संचालन करने वाली संस्थाओं को खाता मुद्रा और सत्यापन के आसपास के शासन का अनुपालन करना चाहिए। वर्णन करने के लिए, खाता-विक्षेपण और (भूमिका की-आधारित) की अनुमति विशेष अंतर के क्षेत्र हो सकते हैं। इसके अलावा, एसएएमएल अधिक 'एंटरप्रिस' और ओपनआईडी अधिक 'वेबबी' है।
कैमरून केर

90

OpenID और SAML2 दोनों संघबद्ध पहचान की एक ही अवधारणा पर आधारित हैं। निम्नलिखित उन दोनों के बीच कुछ अंतर हैं ..

  1. SAML2 सिंगल साइन-आउट का समर्थन करता है - लेकिन OpenID नहीं करता है
  2. SAML2 सेवा प्रदाताओं को SAML2 पहचान प्रदाताओं के साथ युग्मित किया जाता है, लेकिन OpenID आश्रित पार्टियां OpenD प्रदाता के साथ युग्मित नहीं होती हैं। OpenID में एक खोज प्रोटोकॉल होता है जो एक OpenID दिए जाने के बाद गतिशील रूप से संबंधित OpenID प्रदाता को दिखाता है। एसएएमएल के पास एक खोज प्रोटोकॉल है जो पहचान प्रदाता डिस्कवरी सेवा प्रोटोकॉल पर आधारित है।
  3. SAML2 के साथ, उपयोगकर्ता SAML2 IdP से जुड़ा हुआ है - आपका SAML2 पहचानकर्ता केवल SAML2 IdP के लिए मान्य है, जिसने इसे जारी किया था। लेकिन OpenID के साथ, आप अपने पहचानकर्ता के मालिक हैं और आप अपनी इच्छानुसार किसी भी OpenID प्रदाता को मैप कर सकते हैं।
  4. SAML2 में अलग-अलग बाइंडिंग हैं, जबकि एकमात्र बाइंडिंग OpenID में HTTP है
  5. SAML2 शुरू किया गया सेवा प्रदाता (SP) या पहचान प्रदाता (IdP) हो सकता है। लेकिन OpenID ने हमेशा SP की शुरुआत की।
  6. SAML 2 XML पर आधारित है जबकि OpenID नहीं है।
  7. पिछले 3 वर्षों में विकसित अधिकांश एप्लिकेशन केवल OpenID कनेक्ट का समर्थन कर रहे थे।
  8. मई 2018 में Microsoft Azure AD को सौंपे गए 8B + प्रमाणीकरण अनुरोधों में से 92% OpenID कनेक्ट सक्षम अनुप्रयोगों से थे।

1
2. जरूरी नहीं: एसपी विशेष आईपी से ही पहचान पर भरोसा कर सकते हैं। लेकिन सहमत हैं, किसी भी आईपी का समर्थन डिफ़ॉल्ट है और
ओपनआईडी के

यदि आप ओकेटी या ओनलोगिन से किसी भी ओपन सोर्स एसएएमएल लाइब्रेरी का उपयोग करते हैं, तो क्या आप दोनों पहचान प्रदाताओं के लिए लाइब्रेरी का उपयोग कर सकते हैं या आपको प्रत्येक के लिए एक अलग लाइब्रेरी का उपयोग करना होगा?
ब्लैंकमैन

16

तकनीकी विवरणों को एक तरफ रख दें, तो पार्टी के लिए काफी देर हो चुकी है, जो मैं समझता हूं कि एसएएमएल और अन्य मानक मानकों (इंक। ओपनआईडी) के बीच सबसे बड़ा अंतर है।

एसएएमएल को पहचानकर्ता प्रदाता (आईडीपी) और सेवा प्रदाता (एसपी) की आवश्यकता होती है, ताकि एक-दूसरे को हाथ से पहले जानने के लिए, पूर्व-कॉन्फ़िगर , स्थैतिक प्रमाणीकरण और प्राधिकरण किया जा सके। OpenId (+ कनेक्ट) ऐसी आवश्यकता नहीं है।

यह IDPs के लिए महत्वपूर्ण है जो डेटा तक पहुँचने वाले पर पूर्ण नियंत्रण चाहते हैं। मानक का हिस्सा विशिष्ट एसपी को प्रदान करने के लिए कॉन्फ़िगर करना है।

उदाहरण के लिए, एक बैंक अपने उपयोगकर्ताओं को कुछ पूर्वनिर्धारित (नियमों या अन्य सख्त सुरक्षा नियमों के कारण) को छोड़कर किसी भी सेवा तक नहीं पहुंच सकता है।

इसका मतलब यह नहीं है कि एक OpenId IDP, इस तरह के प्रतिबंध को लागू नहीं कर सकता है। एक OpenID कार्यान्वयनकर्ता पहुंच को नियंत्रित कर सकता है, लेकिन यह OpenID का उद्देश्य नहीं है।

पूर्वनिर्धारित, सख्त, स्थिर, अभिगम नियंत्रण अंतर के अलावा, वैचारिक रूप से (तकनीकी रूप से नहीं), ओपनआईडी कनेक्ट और एसएएमएल समान हैं।

नीचे पंक्ति, यदि आप एक एसपी हैं, तो आपको अपने ग्राहकों की आवश्यकता का समर्थन करना चाहिए:

  1. यदि आपका ग्राहक एक व्यक्तिगत अंतिम उपयोगकर्ता ग्राहक है (उदाहरण के लिए अपनी Google आईडी का उपयोग करके), SAML के बारे में भूल जाएं। OpenID कनेक्ट का उपयोग करें।
  2. यदि आपका ग्राहक एक ऐसा बैंक है जो चाहता है कि उसके कर्मचारी आपकी सेवा का उपयोग करें और डेटा की केवल स्थिर सूची का ही निर्यात करें, जो आपकी सेवा को प्रदान करेगा, तो बैंक संभवतः आपको SAML का समर्थन करना चाहेगा। बैंक के पास ग्राहक प्रतिबंध के साथ एक OpenID कार्यान्वयन हो सकता है, जो आपका भाग्यशाली दिन होगा :)

1
इसे लगाने का यह सबसे सरल तरीका है। अच्छे उदाहरण, स्पष्टीकरण के लिए धन्यवाद!
BBK

10

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 प्रदाता चलाते हैं क्योंकि वे "किसी और को अपनी पहचान नहीं चाहते हैं"।

यहाँ छवि विवरण दर्ज करें
स्रोत


यह एक भ्रमित करने वाला उत्तर है। आपने पाठ में "ओपेनआईडी कनेक्ट" को सही ढंग से वर्णित किया है, लेकिन ओरिजित ओआईडीआईडी। ओपन आईडी कनेक्ट ओपनआईडी नहीं है।
टॉम पी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.