2015-02-09 9 views
5

मैंने संस्करण 1 से संस्करण 2 तक जिप्स्टर जेनरेटर अपडेट किया है। पिछले संस्करण में हमें एक नई परियोजना उत्पन्न करते समय प्रमाणीकरण के विकल्प थे। हमारे पास कुकी प्रमाणीकरण और टोकन प्रमाणीकरण (OAuth के साथ) के बीच विकल्प था। यह मेरे लिए बहुत स्पष्ट था। लेकिन संस्करण 2.1.1 में, अब हम तीन विकल्प हैं:jhipster 2: प्रमाणीकरण विकल्प के बीच क्या अंतर है?

1 > HTTP Session Authentication (stateful, default Spring Security mechanism) 
2 > OAuth2 Authentication (stateless, with an OAuth2 server implementation) 
3 > Token-based authentication (stateless, with a token) 

मैं दोनों वेब और मोबाइल एप्लिकेशन (आयनिक-ढांचा) के लिए प्रमाणीकरण के लिए इस्तेमाल किया करना चाहते हैं, जो 2 और 3 के बीच एक करने के लिए एक है? क्या यह विकल्प क्लस्टर का उपयोग करके अपना ऐप स्केलेबल बनाता है? धन्यवाद

+0

आधिकारिक दस्तावेज विभिन्न प्रकार के प्रमाणीकरण के बीच अंतर को स्पष्ट करता है http://jhipster.github.io/security.html – Greg

उत्तर

1

आप jhipster प्रमाणीकरण प्रकार यहाँ

http://jhipster.github.io/security/ 

jhipster की REST API के साथ काम करने आयनिक-ढांचे में मेरी व्यक्तिगत अनुभव से के बारे में बुनियादी जानकारी, मैं कह सकता हूँ मिलेगी कि HTTP सत्र प्रमाणीकरण का उपयोग नहीं करते मोबाइल ऐप (आयनिक-फ्रेमवर्क) के लिए क्योंकि मोबाइल ऐप्स सामान्य रूप से कुकीज़ के साथ नहीं खेलते हैं, जो HTTP सत्र प्रमाणीकरण पर निर्भर करता है।

आयनिक संकर अनुप्रयोग के साथ दोनों OAuth2 और जेडब्ल्यूटी काम ठीक

HTTP सत्र प्रमाणीकरण

यह "शास्त्रीय" वसंत सुरक्षा प्रमाणीकरण तंत्र है, लेकिन हम यह काफी में काफी सुधार हुआ है। यह HTTP सत्र का उपयोग करता है, इसलिए यह एक राज्यव्यापी तंत्र है: यदि आप अपने सर्वर को एकाधिक सर्वरों पर स्केल करने की योजना बनाते हैं, तो आपको चिपचिपा सत्रों के साथ लोड बैलेंसर होना चाहिए ताकि प्रत्येक उपयोगकर्ता एक ही सर्वर पर रहता है।

OAuth2 प्रमाणीकरण

OAuth2 एक राज्यविहीन सुरक्षा तंत्र है, ताकि आप इसे पसंद कर सकते हैं अगर आप कई मशीनों के लिए आपके आवेदन को स्केल करना चाहते हैं। वसंत सुरक्षा एक OAuth2 कार्यान्वयन प्रदान करता है, जिसे हमने आपके लिए कॉन्फ़िगर किया है।

ओएथ 2 के साथ सबसे बड़ा मुद्दा यह है कि इसके सुरक्षा टोकन को स्टोर करने के लिए कई डेटाबेस टेबल होना आवश्यक है। यदि आप SQL डेटाबेस का उपयोग कर रहे हैं, तो हम आवश्यक Liquibase changlog प्रदान करते हैं ताकि वे टेबल आपके लिए स्वचालित रूप से बनाए जाए।

जैसे वसंत सुरक्षा केवल SQL डेटाबेस के साथ OAuth2 का समर्थन करती है, हमने अपना स्वयं का मोंगोडीबी संस्करण भी लागू किया है। हम आपके लिए MongoDB के लिए सभी OAuth2 कार्यान्वयन के साथ-साथ आवश्यक MongoDB कॉन्फ़िगरेशन भी उत्पन्न करते हैं।

यह समाधान एक गुप्त कुंजी का उपयोग करता है, जिसे "applicationication.oauth.secret" संपत्ति के रूप में आपके application.yml फ़ाइल में कॉन्फ़िगर किया जाना चाहिए।

जेडब्ल्यूटी प्रमाणीकरण

JSON वेब टोकन (जेडब्ल्यूटी) प्रमाणीकरण, OAuth2 की तरह, एक राज्यविहीन सुरक्षा तंत्र है तो यह एक और अच्छा विकल्प है यदि आप कई अलग अलग सर्वरों पर स्केल करना चाहते हैं।

यह प्रमाणीकरण तंत्र डिफ़ॉल्ट रूप से वसंत सुरक्षा के साथ मौजूद नहीं है, यह जावा जेडब्ल्यूटी परियोजना का एक जेएचप्स्टर-विशिष्ट एकीकरण है। OAuth2 की तुलना में उपयोग करना और कार्यान्वित करना आसान है, क्योंकि इसे दृढ़ता तंत्र की आवश्यकता नहीं है, इसलिए यह सभी SQL और NoSQL विकल्पों पर काम करता है।

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

गुप्त कुंजी को application.yml फ़ाइल में कॉन्फ़िगर किया जाना चाहिए, jhipster.security.authentication.jwt.secret संपत्ति के रूप में।

+0

क्या आप या कोई इसे वास्तविक जेएचप्स्टर आर्किटेक्चर में समझा सकता है? मेरा मतलब है, मैंने देखा कि जनरेटर गेटवे, जेएचप्स्टर रजिस्ट्री और प्रमाणीकरण के लिए माइक्रोसर्विसेज के लिए एक ही कोड बनाता है (टोकनप्रोवाइडर एक उदाहरण है), इसलिए यह बहुत सरल नहीं है, चुड़ैल अंतराल के पास प्रमाणीकरण मेकनिज्म होना चाहिए और वे ऑथ जानकारी का आदान-प्रदान कैसे करेंगे – carpinchosaurio

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