के साथ सुरक्षित फेसबुक प्रमाणीकरण प्रदान करें मैं एक छोटा मोबाइल ऐप (एंड्रॉइड और आईओएस) और एक आरईएसटी एपीआई के साथ थोड़ा बैकएंड सर्वर बनाना चाहता हूं।मेरे सर्वर
मेरे ऐप उपयोगकर्ता (एंड्रॉइड या आईओएस) को फेसबुक पर लॉगिन करने की आवश्यकता है। मैं फेसबुक्स मोबाइल एसडीके का उपयोग कर ऐसा करता हूं। जब लॉगिन सफल हो गया है, तो फेसबुक एसडीके प्रमाणीकरण लौटाएगा, जो अब उपयोगकर्ताओं के स्मार्टफोन पर है।
विचार निम्नानुसार है: जब भी मेरे ऐप को कुछ डेटा चाहिए, तो ऐप HTTPS पर मेरे सर्वर बैकएंड (आरईएसटी) से संपर्क करेगा। उदाहरण के लिए: ऐप एक साधारण HTTP प्राप्त करता है और पुनर्प्राप्त फेसबुक प्रमाणीकरण टोकन पास करता है। मेरा सर्वर यह फेसबुक प्रमाणीकरण प्राप्त करता है टोकन और यह टोकन का उपयोग निर्धारित करने के लिए करें, यदि उपयोगकर्ता प्रमाणित है और फेसबुक प्रोफ़ाइल जानकारी (प्रथम नाम, अंतिम नाम इत्यादि) पुनर्प्राप्त करने के लिए है। तो सर्वर भी फेसबुक से संपर्क करता है और HTTP GET अनुरोध के लिए व्यक्तिगत प्रतिक्रिया उत्पन्न करता है।
मेरे प्रश्न हैं:
- यह सर्वर सही जुड़े फेसबुक उपयोगकर्ता को पुनः प्राप्त करने के लिए वास्तव में प्रत्येक REST API कॉल के लिए इस facebookAuthentication टोकन पारित करने के लिए पर्याप्त है?
- मैं HTTPS का उपयोग करता हूं, इसलिए मुझे लगता है कि कनेक्शन पर्याप्त एन्क्रिप्ट किया गया है, है ना?
- मुझे लगता है कि मुझे कुछ हस्ताक्षर तंत्र की आवश्यकता है ताकि प्रत्येक आरईएसटी एपीआई कॉल (एचटीटीपीएस पर) पर हस्ताक्षर किए ताकि यह सुनिश्चित किया जा सके कि फेसबुक प्रमाणीकरण टोकन केवल मेरे मोबाइल ऐप से भेजा गया है। मैं किसी भी आरईएसटी एपीआई कॉल पर हस्ताक्षर करने के लिए एसएचए -1 के साथ आरएसए का उपयोग करके ऐसा करूँगा। लेकिन इस दृष्टिकोण के साथ समस्या यह है कि ग्राहक को ऐप में (कहीं भी हस्ताक्षर करने के लिए) निजी कुंजी स्टोर करने की आवश्यकता होती है और सर्वर सार्वजनिक कुंजी (हस्ताक्षर मिलान के लिए) जानता है। क्या ये सही है? यदि हां, तो मुझे लगता है कि यह एक बड़ी सुरक्षा समस्या है, क्योंकि एक मोबाइल ऐप (विशेष रूप से एंड्रॉइड) को निजी कुंजी प्राप्त करने के लिए डिकंपिल्ड किया जा सकता है। मैं अपने ऐप में सुरक्षित रूप से इस निजी कुंजी को कैसे स्टोर करूं? क्या हस्ताक्षर करने के लिए कोई और व्यवस्था है कि आप सिफारिश कर सकते हैं?
बीटी: क्या आप आईओएस और एंड्रॉइड के लिए एक अच्छा आरएसए मुक्ति जानते हैं?