प्रमाणीकरण और संसाधन सर्वर के बीच OAuth v2 संचार


82

मुझे यह समझने में कुछ परेशानी हो रही है कि OAUTH-v2 कैसे काम करता है।

OAuth संस्करण 2 कल्पना पढ़ता है:

  1. संरक्षित संसाधनों तक पहुँच

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

संसाधन सर्वर और प्राधिकरण सर्वर के बीच यह इंटरैक्शन व्यवहार में कैसे काम करता है?

  • संसाधन सर्वर कैसे निर्धारित करता है कि उसे प्राप्त टोकन पहुँच मान्य है?
  • संसाधन सर्वर टोकन से अनुमत क्षेत्र को कैसे निकालता है यह देखने के लिए कि क्या किसी विशेष संसाधन तक पहुंच दी जानी चाहिए? क्या स्कोप पहुँच टोकन में एन्कोडेड है, या संसाधन सर्वर को पहले प्राधिकरण सर्वर से संपर्क करना है?
  • संसाधन सर्वर और स्थापित प्राधिकरण सर्वर के बीच विश्वास कैसे है?

टोकन विशेषताओं तक पहुंच और संरक्षित संसाधनों तक पहुंचने के लिए उपयोग किए जाने वाले तरीके इस विनिर्देश के दायरे से परे हैं और साथी विनिर्देशों द्वारा परिभाषित किए गए हैं।

क्या कोई टोकन विशेषताओं के लिए उदाहरण दे सकता है?


1
यह वास्तव में एक विचित्रता है जिसे मैं कुछ दिनों से देख रहा हूँ
उत्तम

जवाबों:


79

यह कारण विनिर्देश के दायरे से बाहर है, दोनों संस्थाओं के बीच इस संबंध को पूरा करने के तरीकों की एक विस्तृत श्रृंखला है। मुख्य सवाल यह है कि आपकी तैनाती कितनी जटिल है।

उदाहरण के लिए, क्या आपके पास प्रमाणीकरण और पहुंच का प्रबंधन करने वाला एक सर्वर है, और एपीआई कॉल परोसने वाले अपने स्वयं के सर्वर के साथ प्रत्येक असतत सेवाओं का एक सेट है? या, क्या आपके पास एक वेब सर्वर के साथ सिर्फ एक बॉक्स है जो प्रमाणीकरण / प्राधिकरण और एपीआई कॉल दोनों को संभालता है?

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

वितरित वातावरण के साथ काम करते समय चीजें थोड़ी अधिक जटिल हो जाती हैं, लेकिन बहुत अधिक नहीं। आप अभी भी प्राधिकरण सर्वर पर टोकन जारी करते हैं, लेकिन संसाधन सर्वर को उन लोगों को मान्य करने का एक तरीका चाहिए। यह एक आंतरिक API को संसाधन सर्वर को उपलब्ध कराने के लिए कर सकता है, जिससे प्राधिकरण सर्वर को टोकन "हल" करने के लिए कहा जा सके (जो कि स्थानीय वातावरण में तेज़ हो सकता है), या दोनों एक सार्वजनिक / निजी कुंजी जोड़ी या सममित गुप्त स्थापित कर सकते हैं और उपयोग करें कि संसाधन सर्वर की जरूरत है टोकन में सब कुछ एन्क्रिप्ट करने के लिए।

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


क्या यह सच है कि यदि टोकन जारी करने और मान्य करने वाली संस्था के पास कोई स्टैटिक व्हाइट / पब्लिक आईपी नहीं है, तो क्लाइंट / रिसोर्स मालिक को सेवा प्रदाता कॉलबैक HTTP (एस) के माध्यम से नहीं किया जा सकता है, इस प्रकार कुछ और विस्तृत कार्यान्वयन की आवश्यकता होती है?
डेन्स एस।

कॉलबैक सेवा प्रदाता द्वारा नहीं बल्कि उपयोगकर्ता के ब्राउज़र द्वारा किया जाता है। निश्चित रूप से नहीं कि आप क्या पूछ रहे हैं।
एरन हैमर

यदि आप कुछ एपिस जोड़ते हैं तो क्या होता है जो रिसोर्स सर्वर का उपयोग करता है (एपिस आप से संबंधित)। उस मामले में क्या इसका मतलब यह है कि सभी एपिस को एक ही कुंजी जोड़ी को सर्वर के साथ साझा करना होगा?
डायोनिसिस K

4

सर्वर- API का संसाधन का एक उदाहरण Google डेवलपर्स वेबसाइट पर एक है ।
यह पहुंच टोकन के प्रारूप को निर्दिष्ट नहीं करता है, लेकिन प्रतिक्रिया बहुत सार्वभौमिक रूप से उपयोगी लगती है।


OIDC और id_tokens ओबेक एक्सेस टोकन से कुछ अलग है।
माछेटी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.