2011-06-06 15 views
73

मुझे कुछ परेशानी हो रही है कि OAUTH-v2 कैसे काम करता है।प्रमाणीकरण और संसाधन सर्वर के बीच OAuth v2 संचार

OAuth version 2 spec पढ़ता है:

  1. एक्सेस करना संरक्षित संसाधन

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

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

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

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

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

उत्तर

75

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

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

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

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

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

+0

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

+0

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

4

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

+0

ओआईडीसी और id_tokens ओबाक एक्सेस टोकन से कुछ अलग है। – machete

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