जवाबों:
वे विभिन्न समस्याओं का समाधान करते हैं।
एसएएमएल मानकों का एक समूह है जो एक उपयोगकर्ता कौन है, उसकी विशेषताओं के बारे में जानकारी साझा करने के लिए परिभाषित किया गया है, और आपको किसी चीज़ को एक्सेस करने या यहां तक कि प्रमाणीकरण का अनुरोध करने के लिए अनुदान देने / इनकार करने का एक तरीका है।
OAuth किसी चीज़ तक पहुंच को दर्शाने के बारे में अधिक है। आप मूल रूप से किसी को आप के रूप में "कार्य" करने की अनुमति दे रहे हैं। इसका सबसे अधिक उपयोग पहुँच एपीआई प्रदान करने के लिए किया जाता है जो आपकी ओर से कुछ कर सकता है।
वे दो पूरी तरह से अलग चीजें हैं।
कुछ उदाहरण जो मदद कर सकते हैं।
OAuth एक ट्विटर के बारे में सोचते हैं। कहते हैं कि आप Google Buzz और Twitter का उपयोग कर रहे हैं , और आप एक ऐप लिखना चाहते हैं जो दो को सिंक्रोनाइज़ करने में सक्षम हो। आप मूल रूप से अपने ऐप और ट्विटर के बीच विश्वास स्थापित कर सकते हैं। पहली बार जब आप ऐप को ट्विटर से लिंक करने के लिए जाते हैं, तो आप ट्विटर पर लॉग इन करने के लिए क्लासिक प्रॉम्प्ट करते हैं, और फिर वह पुष्टिकरण बॉक्स पॉप अप करता है और पूछता है "क्या आप" अपने ऐप का नाम »तक पहुंच प्रदान करना चाहेंगे?" एक बार जब आप "हां" पर क्लिक करते हैं, तो विश्वास स्थापित हो गया है, और अब आपका ऐप ट्विटर पर आपकी तरह काम कर सकता है। यह आपके पोस्ट पढ़ सकता है, साथ ही नए भी बना सकता है।
एसएएमएल - एसएएमएल के लिए दो असंबंधित सदस्यता प्रणालियों के बीच कुछ प्रकार के "समझौते" के बारे में सोचते हैं। हमारे मामले में हम यूएस एयरवेज और हर्ट्ज का उपयोग कर सकते हैं। क्रेडेंशियल्स का कोई साझा सेट नहीं है जो आपको एक साइट से दूसरी साइट पर ले जा सकता है, लेकिन आपको बता दें कि हर्ट्ज यूएस एयरवेज को एक "सौदा" पेश करना चाहता है। (मुझे पता है कि यह एक चरम उदाहरण है, लेकिन मेरे साथ सहन करना)। एक उड़ान खरीदने के बाद, वे अपने अध्यक्ष सदस्यों को एक मुफ्त किराये की कार प्रदान करेंगे। यूएस एयरवेज और हर्ट्ज़ ट्रस्ट के कुछ रूप को स्थापित करेंगे, और उपयोगकर्ता को पहचानने का कोई तरीका। हमारे मामले में हमारी "फ़ेडरेटेड आईडी" ईमेल पता होगी, और यह एक तरह से ट्रस्ट हर्ट्ज़ ट्रस्ट का एक सेट होगा जो यूएस एयरवेज के पहचान प्रदाता एक टोकन वितरित करेगा जो सटीक और सुरक्षित तरीके से हो। उड़ान की बुकिंग के बाद यूएस एयरवेज की पहचान प्रदाता एक टोकन जेनरेट करेगी और बताएगी कि कैसे उन्होंने उपयोगकर्ता को प्रमाणित किया है, साथ ही हमारे मामले में व्यक्ति के बारे में "विशेषताएँ" सबसे महत्वपूर्ण विशेषता यूएस एयरवेज में उसकी स्थिति का स्तर होगा। एक बार जब यह टोकन आबाद हो जाता है, तो इसे किसी प्रकार के संदर्भ से गुजरता है, या एक यूआरएल में इनकोड किया जाता है और एक बार जब हम हर्ट्ज के पास पहुंचते हैं, तो यह टोकन को देखता है, इसे सत्यापित करता है और अब मुफ्त किराये की कार के लिए अनुमति दे सकता है।
इस एसएएमएल उदाहरण के साथ समस्या यह है कि कई में से केवल एक विशेष उपयोग का मामला है। एसएएमएल एक मानक है और लगभग कई तरीके हैं जो आप इसे लागू कर सकते हैं।
वैकल्पिक रूप से, यदि आप प्राधिकरण के बारे में परवाह नहीं करते हैं, तो आप लगभग तर्क और SAMID के माध्यम से प्रमाणीकरण का दावा कर सकते हैं ।
संक्षेप में प्रस्तुत इस सरल विवरण पर एक नज़र डालें :
कई लोग SAML, OpenID और OAuth के बीच के मतभेदों को लेकर भ्रमित हैं, लेकिन यह वास्तव में बहुत सरल है। यद्यपि कुछ ओवरलैप हैं, यहां तीनों के बीच अंतर करने का एक बहुत ही सरल तरीका है।
OpenID - उपभोक्ताओं के लिए एकल साइन-ऑन
एसएएमएल - एंटरप्राइज़ उपयोगकर्ताओं के लिए एकल साइन-ऑन
OAuth - अनुप्रयोगों के बीच एपीआई प्राधिकरण
OO डिजाइन पैटर्न के साथ सहज लोगों के लिए, मुझे लगता है कि आवरण पैटर्न के लिए एक अच्छा कोरोलरी है । मुखौटा , डेकोरेटर और प्रॉक्सी पैटर्न के बारे में सोचें । मौलिक रूप से ये सभी समान हैं, वे सिर्फ रैपर हैं ... अंतर प्रत्येक पैटर्न का इरादा है ।
इसी तरह, SAML, OAuth और OpenID सभी एक सामान्य अंतर्निहित तंत्र के माध्यम से अलग-अलग इरादों की सुविधा प्रदान करते हैं , जो कि कुछ निजी इंटरैक्शन के लिए एक सेवा प्रदाता / पहचान प्राधिकरण के लिए पुनर्निर्देशन है, इसके बाद मूल तीसरे पक्ष के ऐप पर पुनर्निर्देशन किया जाता है।
नेट पर चारों ओर देखने से आपको प्रोटोकॉल की क्षमताओं के बीच ओवरलैप मिलेगा। OAuth के माध्यम से प्रमाणीकरण पूरी तरह से उचित है। OAuth पर SSO बहुत मायने नहीं रखता, क्योंकि SAML और OpenID विशेष रूप से संघ की पहचान की ओर अग्रसर हैं।
स्वयं के प्रश्न के लिए, कॉर्पोरेट संदर्भ में SAML SSO के लिए OAuth से अधिक उपयुक्त लगता है । यदि आप अपनी कॉर्पोरेट पहचान के साथ एकीकृत करना चाहते हैं, तो आप शर्त लगा सकते हैं कि आप पहले से ही SAML / LDAP / रेडियस आदि के साथ एकीकृत करने के लिए डिज़ाइन किए गए हैं, IMO OAuth इंटरनेट इंटरैक्शन के लिए अधिक उपयुक्त है। अनुप्रयोगों या शायद अनुप्रयोगों के बीच एक बड़े कॉर्पोरेट वातावरण में एक सेवा उन्मुख वास्तुकला शामिल है।
प्राधिकरण नियमों को कॉर्पोरेट वातावरण में अन्य तरीकों से भी निर्दिष्ट किया जा सकता है। इसके लिए LDAP एक सामान्य टूल है। उपयोगकर्ताओं को समूहों में व्यवस्थित करना और समूह सदस्यता के खिलाफ एप्लिकेशन विशेषाधिकारों को जोड़ना एक व्यापक दृष्टिकोण है। बस ऐसा होता है कि LDAP का उपयोग प्रमाणीकरण के लिए भी किया जा सकता है। सक्रिय निर्देशिका एक महान उदाहरण है, हालांकि मैं OpenLDAP पसंद करता हूं।
यहां अच्छा लेख मिला
एसएएमएल (सुरक्षा अभिकथन मार्कअप लैंग्वेज) सिंगल साइन ऑन (एसएसओ), फेडरेशन और आइडेंटिटी मैनेजमेंट को प्राप्त करने के लिए मानकों का सेट है।
उदाहरण : एक उपयोगकर्ता (प्रिंसिपल) एक फ्लाइट बुकिंग वेबसाइट, एयरफ़ेयर (पहचान प्रदाता) के साथ प्रमाणित करता है, जिसने एसएसएल को एसएएमएल के माध्यम से एक शटल बुकिंग वेबसाइट, शुटलर (सेवा प्रदाता) के साथ कॉन्फ़िगर किया है। एक बार फ्लायर के लिए प्रमाणित होने के बाद, उपयोगकर्ता को प्रमाणीकरण की आवश्यकता के बिना शुटलर पर शटर बुक कर सकते हैं
OAuth (ओपन प्राधिकरण) संसाधनों के प्राधिकरण के लिए एक मानक है। यह प्रमाणीकरण से संबंधित नहीं है।
उदाहरण : एक फोटो शेयरिंग मोबाइल ऐप (OAuth उपभोक्ता) जो उपयोगकर्ताओं को अपने इंस्टाग्राम अकाउंट (OAuth प्रदाता) से फ़ोटो आयात करने की अनुमति देता है जो कुछ घंटों के बाद समाप्त होने वाले फ़ोटो साझाकरण ऐप के लिए एक अस्थायी एक्सेस टोकन या कुंजी भेजता है।
SAML के पास "प्रोफ़ाइल" की एक किस्म है जो अन्य उपयोगकर्ताओं को आपकी साइट पर "लॉग इन" करने की अनुमति देती है। एसएएमएल-पी या एसएएमएल पैसिव सेट करने के लिए बहुत सामान्य और काफी सरल है। डब्ल्यूएस-ट्रस्ट समान है और यह वेबसाइटों के बीच फेडरेशन के लिए भी अनुमति देता है।
OAuth को प्राधिकरण के लिए डिज़ाइन किया गया है। आप यहां और अधिक पढ़ सकते हैं:
SAML
प्रमाणीकरण के लिए है - मुख्य रूप से सिंगल साइन ऑन परिदृश्य में उपयोग किया जाता है। OAuth
संसाधन अभ्यावेदन के प्राधिकार के लिए है।
JSON वेब टोकन (JWT) SAML XML टोकन के लिए एक विकल्प है। JWT का उपयोग OAuth के साथ किया जा सकता है
एक अच्छा संदर्भ SAML बनाम OAuth है: मुझे किसका उपयोग करना चाहिए?
शब्द महासंघ वास्तव में पूरे सिस्टम में कनेक्शन पहचान का मतलब है। यह SSO से संबंधित है लेकिन वे समान नहीं हैं। मैंने पाया कि यह ब्लॉग पोस्ट वास्तव में इस बात के लिए सहायक है कि फेडरेशन वास्तव में क्या मायने रखता है।