2017-01-06 8 views
5

मुझे एक क्रॉस प्लेटफॉर्म वेब एप्लिकेशन (वेब ​​+ मोबाइल) शुरू करने में दिलचस्पी है, जिसका अपना वफादार उपयोगकर्ता आधार होना चाहिए (किसी भी अच्छे आवेदन के रूप में)।क्रॉस प्लेटफ़ॉर्म एप्लिकेशन: एंड्रॉइड + कस्टम रीस्ट बैकएंड (वाईआई 2) + लॉगिन के लिए थर्ड पार्टी एसएसओ प्रदाता (Google+)

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

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

यह वेब + रीस्ट एपीआई जोड़ी के लिए ठीक काम करता है, हालांकि, जब हम चित्रों को एंड्रॉइड लाते हैं तो चीजें जटिल हो जाती हैं।

एंड्रॉइड एप्लिकेशन उपयोगकर्ता को मानक एंड्रॉइड एसडीके के माध्यम से अपनी Google+ प्रोफ़ाइल के माध्यम से लॉगिन करने का विकल्प प्रदान करने में सक्षम है और हम इस तरह अपनी Google पहचान पुनर्प्राप्त करने में सक्षम हैं। हालांकि, समस्या यह है कि - आरईएसटी एपीआई द्वारा जारी किए गए एक्सेस टोकन के लिए एंड्रॉइड ऐप की सुरक्षित पहचान कैसे करें, उपयोगकर्ता को हमारे आंतरिक डेटाबेस में उपयोगकर्ता नाम और पासवर्ड के लिए पूछे बिना (पासवर्ड पहले एसएसओ के दौरान स्वत: उत्पन्न होता है लॉगिन करें, इसलिए अंतिम उपयोगकर्ता अपना पासवर्ड कभी नहीं जानता, वह केवल वेब और मोबाइल प्लेटफॉर्म दोनों पर लॉगिन करने के लिए एसएसओ का उपयोग करता है)। यहां का कीवर्ड "सुरक्षित रूप से" है क्योंकि अगर हमें विश्वास है कि एंड्रॉइड ऐप ने उपयोगकर्ता को सही तरीके से प्रमाणित किया है और किसी भी तरह एंड्रॉइड ऐप और आरईएसटी एंडपॉइंट्स के बीच संचार को "श्वेतसूची" (उदाहरण के लिए "सेवा एक्सेस टोकन" के माध्यम से केवल एंड्रॉइड ऐप जानता है), एक संभावित हैकर इंजीनियर को रिवर्स कर सकता है या दोनों के बीच संचार को छू सकता है और आरईएसटी एंडपॉइंट्स को सीधे कॉल कर सकता है, जो खुद को एक ही विश्वसनीय एक्सेस टोकन का उपयोग करके पहचान सकता है। असल में, किसी भी यादृच्छिक उपयोगकर्ता के लिए एक्सेस टोकन प्राप्त करना।

उत्तर

2

शायद खाता प्रबंधक का उपयोग करें? https://developer.android.com/reference/android/accounts/AccountManager.html https://developer.android.com/training/id-auth/custom_auth.html

आप टोकरा स्वयं के खाते और फिर देशी seciurity साथ देशी Andorid खाता प्रबंधक का उपयोग कर सकते हैं?

मेरी ऐप्लिकेशन में मुझे लगता है कि इस तरह का उपयोग करें: Yii2 RestService में का उपयोग HttpBearerAuth, और Andorid App में, लॉगिन और पासवर्ड के साथ कस्टम खाता बनाएँ तो http अनुरोध बनाने के लिए इस खाते का उपयोग। सभी प्रमाण-पत्र Android द्वारा प्रबंधित किए जाते हैं।

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