2013-10-10 11 views
13

हालांकि मैंने पहले ओएथ 2 के साथ काम किया है, मैं ओपन आईडी कनेक्ट करने के लिए नौसिखिया हूं।ओएथ 2 access_token बनाम ओपनआईडी कनेक्ट id_token

ट्यूटोरियल और दस्तावेजों मैं ACCESS_TOKEN दोनों भर में आ गए हैं और पढ़ना id_token जहां ACCESS_TOKEN यादृच्छिक अद्वितीय OAuth के अनुसार उत्पन्न स्ट्रिंग 2 और id_token JSON वेब टोकन जिनमें से आईडी जैसी जानकारी होती है उपयोगकर्ता, एल्गोरिदम, जारीकर्ता और कई अन्य जानकारी जिनका उपयोग इसे सत्यापित करने के लिए किया जा सकता है। मैंने एपीआई प्रदाताओं को भी देखा है जो access_token और id_token दोनों प्रदान करते हैं और जहां तक ​​मुझे पता है कि यह पिछड़ा संगतता के लिए है।

मेरा प्रश्न यह है कि सुरक्षित संसाधनों तक पहुंचने के लिए access_token और id_token दोनों का उपयोग करना संभव है? या सत्यापन उद्देश्यों के लिए id_token है और access_token संरक्षित संसाधनों तक पहुंच प्राप्त करने के लिए उपयोग किया जाता है?

उत्तर

24

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

id_token प्रमाणीकृत उपयोगकर्ता की पहचान करने के लिए उपयोग किया जाता है, उदा। एसएसओ के लिए। Access_token का उपयोग सुरक्षित संसाधनों तक पहुंच अधिकारों को साबित करने के लिए किया जाना चाहिए, उदा। OpenId कनेक्ट में userinfo एंडपॉइंट के लिए।

+0

मैं इस खुले आईडी कनेक्ट और ओथ 2 कार्यान्वयन के साथ थोड़ा उलझन में हूं। मेरे पास फ्रंट एंड (एचटीएमएल, एंजुलरजेस) और बैक एंड webservice है। अब मैं लॉगिन के दौरान टोकन आधारित तंत्र को कार्यान्वित करना चाहता हूं ताकि लॉगिन उपयोगकर्ता क्लाइंट आईडी भेज सके , ईमेल आईडी, पासवर्ड और बैकएंड में मैं क्लाइंट आईडी को अन्य क्रेडेंशियल मान्य कर दूंगा जिसके बाद मैं उपयोगकर्ता को टोकन जारी करूंगा और उस टोकन उपयोगकर्ता की मदद से उस उपयोगकर्ता सत्र को बनाए रखेगा। तो ओपनिड कनेक्ट कहां आता है और यह कैसे उपयोगी होगा मेरे लिए। क्या आप कृपया मुझे कुछ अंतर्दृष्टि प्रदान कर सकते हैं क्योंकि मैं वास्तव में यहां उलझन में हूं –

+0

जहां तक ​​मैं समझता हूं, आपको प्राधिकरण की आवश्यकता नहीं है, केवल प्रमाणीकरण। यदि ऐसा है तो आपको केवल ओपनआईडी या एसएसओ समाधान का उपयोग करना चाहिए, लेकिन आपको ओथ या ओपनआईड कनेक्ट की आवश्यकता नहीं है। –

1

access_token Auth0 (उदा।/Userinfo) या एआईटी 0 में परिभाषित एपीआई में कुछ एपीआई को कॉल करने के लिए उपयोगी है।

id_token एक जेडब्ल्यूटी है और लॉग इन उपयोगकर्ता का प्रतिनिधित्व करता है। यह अक्सर आपके ऐप द्वारा उपयोग किया जाता है।

यह दोनों ACCESS_TOKEN और संरक्षित संसाधनों तक पहुंच सकते के लिए id_token उपयोग करना संभव है?

नहीं पूरी तरह से, पहले, आप, में लॉग इन करने
दूसरा id_token उपयोग करने के लिए आप एक accessToken,
पिछले मिलता है, डेटा का उपयोग करने accessToken का उपयोग करेगा की जरूरत है,।

संबंधित मुद्दे