से ओएथ 2.0 एक्सेस टोकन को मान्य करें, मैं अपने स्प्रिंग रीस्टफुल बैकएंड को सुरक्षित करना चाहता हूं। एक तरह से (? दाएं) यहाँ दिखाया गया है की तरह OAuth 2.0 उपयोग करने के लिए है:स्प्रिंग रीस्टफुल संसाधन सर्वर
http://www.youtube.com/watch?v=8uBcpsIEz2I
मेरी वास्तुकला संसाधन सर्वर और प्राधिकरण सर्वर में नहीं हैं एक ही इकाई। मैं वास्तव में बस कुछ JSON REST सेवाएं प्रदान करता हूं। कोई यूआई नहीं अगर मैं OAuth2 RFC पढ़ वे सिर्फ कहते हैं:
प्राधिकरण सर्वर और संसाधन सर्वर के बीच बातचीत इस विनिर्देश के दायरे से बाहर है। प्राधिकरण सर्वर संसाधन सर्वर या एक अलग इकाई के समान सर्वर हो सकता है। एक एकल प्रमाणीकरण सर्वर एकाधिक संसाधन सर्वर द्वारा स्वीकार किए गए एक्सेस टोकन जारी कर सकता है।
"टोकन" प्रदाता:: इस/होना चाहिए सकता है
मैं cloudfoundry.com पर एक अच्छा चित्र (यूट्यूब वीडियो के ऊपर से संबंधित) जो मैं मेरे विचार को वर्णन करने का उपयोग कर रहा पाया उदाहरण के लिए गूगल या फेसबुक।
विश्वसनीय बैकएंड: यह वास्तव में मेरा कोड है। जैसे वसंत RESTful सेवाएं:
@Controller
@RequestMapping("/api/v1")
public class MyResourceToProtect {
@Autowired
private MyService service;
@RequestMapping(value = "/resource/delete/{name}",
method = RequestMethod.DELETE,
consumes = MediaType.APPLICATION_JSON_VALUE,
headers = "Content-Type=application/json")
@ResponseStatus(HttpStatus.OK)
public void delete(@PathVariable("name") String name) {
service.delete(name);
}
}
(यह सिर्फ कुछ नमूना कोड है)
अब मेरे सवाल: यह किसी तरह पहुंच टोकन जो AuthServer (फेसबुक, गूगल) द्वारा उत्पन्न कर रहे मान्य करने के लिए संभव है? मुझे पता है कि मुझे अपने संसाधन सर्वर पर कहीं भी "उपयोगकर्ता को टोकन" मैपिंग (डेटाबेस) होना चाहिए। मूल रूप से मैं PayPal से एक के लिए की तरह मेरे RESTful API डिजाइन करने के लिए करना चाहते हैं:
https://developer.paypal.com/webapps/developer/docs/integration/direct/make-your-first-call/
लेकिन मैं चरण 1 & 2 मैं प्रमाणन प्रदाताओं के रूप में फेसबुक या गूगल का उपयोग करना चाहते हैं तो कैसे संभाल कर सकते हैं? क्या यह भी संभव है?
अतिरिक्त विचार: शायद मुझे अपना खुद का /oauth2/token
एंडपॉइंट प्रदान करने की आवश्यकता है और फिर अंतर्निहित ऑथप्रोवाइडर को प्रतिनिधि दें।
मेरा उपयोग केस ओपी के समान ही है, और मुझे संदेह है कि @domi के लिए आपका उत्तर मेरी वर्तमान समस्या का भी उत्तर देता है - अगर मेरे पास "फ्रंट एंड" एप्लिकेशन स्प्रिंग सोशल का उपयोग करके लिखा गया है, और इसे मिला Google से कहने के लिए OAuth पहुंच टोकन, उस "फ्रंट एंड" एप्लिकेशन को मेरे स्प्रिंग सुरक्षा एप्लिकेशन में टोकन तक पहुंचने के लिए कैसे पास करना चाहिए? हमने इसका उपयोग करने के लिए "प्रमाणीकरण:" हेडर के माध्यम से इसे पारित करने का प्रयास किया है। –