कार्यान्वयन अज्ञेय चर्चा।OAuth2 संसाधन सर्वर से दूसरे
- काले लाइनों दिखाने कि कौन सी सेवा प्राधिकार सर्वर द्वारा संरक्षित हैं।
- ग्रीन लाइनों सेवाओं के बीच बातचीत को दिखाने (ग्राहक, और आदेश सेवाओं जो डेटाबेस का उपयोग होगा डाटा सेवा के माध्यम से जाने की जरूरत है। स्वसंपूर्ण सेवा अन्य सेवाओं पसंद नहीं करता है)
- लाल रेखा एक विशेष अनुरोध प्रवाह दिखाने
- डेटा सेवा सीधे बाहर नहीं आती है और इसे केवल उन अन्य सेवाओं द्वारा एक्सेस किया जा सकता है जिन्हें ऐसा करने की अनुमति है।
मैं यह धारणा करता हूं कि क्लाइंट ने ऑथ सर्वर के साथ प्रमाणीकृत होने पर क्लाइंट को एक्सेस टोकन प्राप्त कर लिया है। कौन सा प्रवाह उठाया गया था (निहित, प्रमाणीकरण कोड, पासवर्ड) अप्रासंगिक है। मैं उस बिंदु से चर्चा शुरू करना चाहता हूं जहां ग्राहक पहले ही पहुंच टोकन प्राप्त कर चुका है।
उस बिंदु से, यह स्पष्ट है कि क्लाइंट को एक संसाधन सर्वर तक पहुंचने की आवश्यकता होने पर क्या होता है। सर्वर संसाधन और हासिल कर ली टोकन
- मेक अनुरोध टोकन मान्य करता है (कैसे अप्रासंगिक)
- वैध, तो अनुरोध सेवा करते हैं।
तो उस आरेख में यदि क्लाइंट "स्टैंडअलोन सेवा" (जो किसी अन्य संसाधन सर्वर से बात नहीं करता) तक पहुंचने के लिए था, तो प्रवाह मुझे स्पष्ट है।
जब क्लाइंट आरेख में लाल रेखा का अनुसरण करता है तो मुझे परेशानी हो रही है। तो मुझे किसी सेवा (संसाधन सर्वर) तक पहुंचने की आवश्यकता है जो किसी अन्य सेवा (संसाधन सर्वर) तक पहुंचने के लिए उत्तर देने के लिए उत्तर देने के लिए है। प्रवाह उस मामले में कैसे जाता है?
परिदृश्य 1.
- "आदेश सेवा" दोनों एक संसाधन सर्वर के रूप में और एक ग्राहक के रूप में सेटअप है।
- क्लाइंट एक्सेस टोकन के साथ अनुरोध करता है लेकिन "ऑर्डर सेवा" "डेटा सेवा" से बात करने के लिए अपने क्लाइंट प्रमाण-पत्रों के साथ एक और टोकन प्राप्त करेगा।
यहां समस्या यह है कि मैं इसे देखता हूं कि मैं उपयोगकर्ता अनुमतियों को खो देता हूं। मैं "आदेश सेवा" अनुमतियों के साथ "डेटा सेवा" के अनुरोध को निष्पादित करूंगा, न कि उपयोगकर्ता की अनुमतियां।
परिदृश्य 2.
- "आदेश सेवा" केवल एक संसाधन सर्वर के रूप में सेटअप है।
- क्लाइंट उपयोगकर्ता टोकन और "आदेश सेवा" के साथ अनुरोध "डेटा सेवा"
यहाँ मैं प्रयोक्ता की अनुमति के साथ निष्पादित लेकिन अब मैं देखने के लिए नीचे इसी अग्रेषित करेंगे करता है कि मेरी "डेटा सेवा "खुलासा है और किसी भी अन्य सेवा के लिए खुला है। (वास्तव में मैं पता नहीं है, तो इस तरह के OAuth2 सीमा प्रदान करता है। केवल विशिष्ट संसाधन सर्वर के लिए एक ग्राहक को सीमित करें)
परिदृश्य 3.
यहाँ मैं ऊपर परिदृश्यों का एक संयोजन को देखने जहां "आदेश सेवा" डेटा सेवा के लिए टोकन दोनों प्रदान करेगा। उपयोगकर्ता पहुंच टोकन ताकि अनुरोध सही अनुमतियों और "ऑर्डर की सेवा" क्लाइंट एक्सेस टोकन के साथ निष्पादित किया गया हो ताकि मुझे पता चले कि सेवा को "डेटा सेवा" से बात करने की अनुमति है।
कार्यान्वयन
मैं सेटअप करने के क्रम में वसंत बूट और वसंत सुरक्षा का उपयोग कर रहा मेरी OAuth2 घटकों ऊपर देखा। मेरे पास पहले से ही एक ऑथ सर्वर, संसाधन सर्वर और क्लाइंट है। फिलहाल ग्राहक संसाधन संसाधन सर्वर से किसी अन्य संसाधन सर्वर को दिए गए अनुरोध के बिना बात करता है।
सर्वोत्तम दृष्टिकोण के आधार पर मैं कार्यान्वयन पक्ष पर कैसे जाऊं? मेरे संसाधन सर्वर को बनाने के लिए मुझे किन परिवर्तनों की आवश्यकता है ताकि वे एक-दूसरे से सुरक्षित रूप से बात कर सकें?
अपना समय