OAuth 2.0 के साथ सुरक्षा बढ़ाएं: स्प्रिंग बूट में सामाजिक लॉगिन लागू करना
आधुनिक वेब विकास की दुनिया में, अपने एप्लिकेशन को सुरक्षित करना और उपयोगकर्ताओं के लिए प्रमाणीकरण को यथासंभव आसान बनाना सर्वोच्च प्राथमिकता है। यहीं पर OAuth 2.0 आता है - यह एक शक्तिशाली उपकरण है जो न केवल आपके एपीआई को सुरक्षित करने में मदद करता है बल्कि उपयोगकर्ताओं को Google और GitHub जैसे प्लेटफार्मों से अपने मौजूदा खातों से लॉग इन करने की सुविधा भी देता है। इससे सभी के लिए चीजें आसान हो जाती हैं: उपयोगकर्ताओं को कोई अन्य पासवर्ड याद रखने की आवश्यकता नहीं होती है, और डेवलपर्स को प्रमाणीकरण प्रबंधित करने का एक विश्वसनीय तरीका मिलता है।
इस ब्लॉग में, मैं आपको स्प्रिंग बूट एप्लिकेशन में OAuth 2.0 कैसे सेट करें, इसके बारे में चरण दर चरण बताऊंगा। हम प्रमाणीकरण के लिए Google और GitHub दोनों को एकीकृत करेंगे, ताकि आपके उपयोगकर्ता चुन सकें कि वे लॉग इन करने के लिए किस सेवा का उपयोग करना चाहते हैं। मैं आपको यह भी दिखाऊंगा कि JWT (JSON वेब टोकन) का उपयोग करके अपने एपीआई एंडपॉइंट को कैसे सुरक्षित रखें, यह सुनिश्चित करते हुए कि केवल प्रमाणित उपयोगकर्ता उन संसाधनों तक पहुंच सकते हैं जिनकी उन्हें आवश्यकता है।
चाहे आप एक नया ऐप बना रहे हों या किसी मौजूदा ऐप में सुरक्षा जोड़ रहे हों, यह मार्गदर्शिका आपको अपने स्प्रिंग बूट एप्लिकेशन को सुरक्षित और उपयोगकर्ता के अनुकूल बनाए रखने के लिए आवश्यक टूल देगी।
https://start.spring.io/
पर जाएंप्रोजेक्ट बनाएं
ज़िप डाउनलोड करें और उसे निकालें और प्रोजेक्ट को अपनी आईडीई पर लोड करें।
स्प्रिंग बूट में "OAuth2 क्लाइंट" निर्भरता Google और GitHub जैसे प्रदाताओं के साथ OAuth 2.0 प्रमाणीकरण को एकीकृत करना सरल बनाती है। यह संपूर्ण OAuth लॉगिन प्रवाह को संभालता है, जिसमें उपयोगकर्ताओं को प्रदाता के लॉगिन पृष्ठ पर पुनर्निर्देशित करना, टोकन प्रबंधित करना और एपीआई एंडपॉइंट सुरक्षित करना शामिल है। इस निर्भरता को जोड़कर, आप अपने स्प्रिंग बूट एप्लिकेशन में आसानी से सुरक्षित और उपयोगकर्ता के अनुकूल प्रमाणीकरण सक्षम कर सकते हैं।
स्प्रिंग बूट में "स्प्रिंग वेब" निर्भरता वेब अनुप्रयोगों को विकसित करने के लिए महत्वपूर्ण है। यह RESTful API निर्माण, MVC आर्किटेक्चर समर्थन और HTML दृश्य प्रस्तुत करने की क्षमता जैसी आवश्यक सुविधाएँ प्रदान करता है। स्प्रिंग वेब के साथ, आप आसानी से HTTP अनुरोधों और प्रतिक्रियाओं को संभाल सकते हैं, रूटिंग प्रबंधित कर सकते हैं, और अन्य स्प्रिंग घटकों के साथ एकीकृत कर सकते हैं, जिससे यह मजबूत वेब अनुप्रयोगों के निर्माण का एक मूलभूत हिस्सा बन जाता है।
Google और GitHub के साथ OAuth 2.0 प्रमाणीकरण के लिए अपना स्प्रिंग बूट एप्लिकेशन सेट करने के लिए, आपको एप्लिकेशन.प्रॉपर्टीज़ फ़ाइल को कॉन्फ़िगर करना होगा। इस फ़ाइल में आपके एप्लिकेशन के लिए आवश्यक सेटिंग्स शामिल हैं, जिसमें OAuth क्लाइंट क्रेडेंशियल, लॉगिंग स्तर और JWT कॉन्फ़िगरेशन शामिल हैं।
spring.application.name=oauth2-authentication-service server.port=8000 #for google spring.security.oauth2.client.registration.google.client-id=YOUR_GOOGLE_CLIENT_ID spring.security.oauth2.client.registration.google.client-secret=YOUR_GOOGLE_CLIENT_SECRET #for github spring.security.oauth2.client.registration.github.client-id=YOUR_GITHUB_CLIENT_ID spring.security.oauth2.client.registration.github.client-secret= YOUR_GITHUB_CLIENT_SECRET
OAuth क्लाइंट कॉन्फ़िगरेशन: अपना एप्लिकेशन पंजीकृत करते समय Google और GitHub से प्राप्त क्रेडेंशियल्स के साथ अपने_GOOGLE_CLIENT_ID, अपने_GOOGLE_CLIENT_SECRET, अपने_GITHUB_CLIENT_ID और अपने_GITHUB_CLIENT_SECRET को बदलें।
OAuth 2.0 प्रमाणीकरण के लिए Google और GitHub के साथ अपना एप्लिकेशन पंजीकृत करने के लिए, हमें https://console.cloud.google.com
पर जाना होगाएपीआई सेवाओं पर क्लिक करें
क्रेडेंशियल्स -> क्रेडेंशियल्स बनाएं -> OAuth क्लाइंट आईडी
OAuth क्लाइंट आईडी -> OAuth क्लाइंट आईडी बनाएं
एप्लिकेशन प्रकार से वेब एप्लिकेशन
का चयन करेंआवेदन का नाम दें
इस यूआरएल के साथ अधिकृत रीडायरेक्ट यूआरआई सेट करें और यहां हमारा एप्लिकेशन 8000 पोर्ट पर चल रहा है इसलिए एप्लिकेशन पोर्ट 8000 है। फिर क्रिएट पर क्लिक करें
http://localhost:8000/login/oauth2/code/google
उसके बाद OAuth क्लाइंट बनाया जाता है और हमें क्लाइंट आईडी और क्लाइंट सीक्रेट मिलता है।
दोनों को कॉपी करें और एप्लिकेशन.प्रॉपर्टीज फ़ाइल के गुणों के साथ बदलें
spring.security.oauth2.client.registration.google.client-id=YOUR_GOOGLE_CLIENT_ID spring.security.oauth2.client.registration.google.client-secret=YOUR_GOOGLE_CLIENT_SECRET
SecurityConfig वर्ग OAuth2 का उपयोग करके स्प्रिंग बूट एप्लिकेशन के लिए सुरक्षा कॉन्फ़िगर करता है। यह एक SecurityFilterChain बीन को परिभाषित करता है, जो सुरक्षा नियम सेट करता है। AuthorizeHttpRequests विधि यह सुनिश्चित करती है कि आने वाले सभी अनुरोधों को प्रमाणीकरण की आवश्यकता है। .oauth2Login(Customizer.withDefaults()) लाइन डिफ़ॉल्ट सेटिंग्स के साथ OAuth2 लॉगिन कार्यक्षमता को सक्षम करती है। अंत में, SecurityFilterChain विधि http.build() को कॉल करके कॉन्फ़िगर की गई सुरक्षा फ़िल्टर श्रृंखला लौटाती है। यह सेटअप सुनिश्चित करता है कि एप्लिकेशन सुरक्षित है और उपयोगकर्ताओं के लिए OAuth2 प्रमाणीकरण का समर्थन करता है।
क्रोम के माध्यम से आपके एप्लिकेशन तक पहुंच
अपने स्प्रिंग बूट एप्लिकेशन को विकसित और परीक्षण करते समय, यह जानना महत्वपूर्ण है कि पोस्टमैन के माध्यम से इसके साथ कैसे इंटरैक्ट किया जाए। यदि आपका एप्लिकेशन स्थानीय रूप से पोर्ट 8000 पर चल रहा है, तो आप निम्न आधार URL का उपयोग करके इसे एक्सेस कर सकते हैं:
http://localhost:8000
हमें इसी तरह की प्रतिक्रिया मिलती है
अब हम अंतिम बिंदुओं तक पहुंच सकते हैं।
स्प्रिंग बूट में GitHub प्रमाणीकरण उपयोगकर्ताओं को अपने GitHub खातों का उपयोग करके लॉग इन करने, प्रमाणीकरण प्रक्रिया को सुव्यवस्थित करने और सुरक्षा बढ़ाने की अनुमति देता है। GitHub को OAuth 2.0 प्रदाता के रूप में एकीकृत करके, आपका एप्लिकेशन GitHub के विश्वसनीय प्लेटफ़ॉर्म के माध्यम से उपयोगकर्ताओं को प्रमाणित कर सकता है। इसमें क्लाइंट आईडी और क्लाइंट सीक्रेट प्राप्त करने के लिए GitHub पर आपके एप्लिकेशन को पंजीकृत करना शामिल है, जिसे बाद में आपके स्प्रिंग बूट एप्लिकेशन में कॉन्फ़िगर किया जाता है। उपयोगकर्ताओं को लॉगिन के लिए GitHub पर पुनर्निर्देशित किया जाता है, और सफल प्रमाणीकरण पर, उन्हें एक्सेस टोकन के साथ आपके एप्लिकेशन पर वापस भेज दिया जाता है, जिससे आपके संरक्षित संसाधनों तक सुरक्षित पहुंच की अनुमति मिलती है। यह एकीकरण डेवलपर्स और तकनीक-प्रेमी उपयोगकर्ताओं को लक्षित करने वाले अनुप्रयोगों के लिए आदर्श है।
GitHub खाता बनाएं और सेटिंग्स पर जाएं
बाएं कोने में हमें डेवलपर सेटिंग्स
मिलती हैOAuth ऐप्स पर नेविगेट करें
ओथ ऐप बनाएं
पर क्लिक करेंहमें इस तरह इंटरफ़ेस मिलता है
आपके एप्लिकेशन पोर्ट के अनुसार ** प्राधिकरण कॉलबैक यूआरएल ** सेट करें
http://localhost:8000/login/oauth2/code/github
और सेट करें होमपेज यूआरएल
http://localhost:8000
एप्लिकेशन को पंजीकृत करने के बाद हमें क्लाइंट आईडी और क्लाइंट सीक्रेट
मिलता है।अब इसे एप्लिकेशन.प्रॉपर्टीज फ़ाइल गुणों से बदलें
spring.security.oauth2.client.registration.github.client-id=Ov23liBMLc5e1ItoONPx spring.security.oauth2.client.registration.github.client-secret=
GitHub लॉगिन का परीक्षण करें
GitHub के साथ लॉगिन करें: संकेत मिलने पर, अपने GitHub क्रेडेंशियल्स के साथ लॉग इन करें।
सफल पुनर्निर्देशन: सफल प्रमाणीकरण पर, आपको अपने आवेदन के /होम पेज पर पुनः निर्देशित किया जाएगा।
आप मेरे GitHub रिपॉजिटरी पर उपयोगकर्ता प्रमाणीकरण सेवा के लिए संपूर्ण स्रोत कोड का पता लगा सकते हैं। यह प्रोजेक्ट प्रमाणीकरण के लिए JWT का उपयोग करके उपयोगकर्ता पंजीकरण, लॉगिन और सुरक्षित पहुंच जैसी विभिन्न सुविधाओं को प्रदर्शित करता है। बेझिझक इसे जांचें, योगदान दें, या इसे अपनी परियोजनाओं के संदर्भ के रूप में उपयोग करें!
गिटहब रिपॉजिटरी: https://github.com/ishrivasayush/oauth2-authentication-service
प्रमाणीकरण प्रदाताओं के रूप में Google और GitHub का उपयोग करके स्प्रिंग बूट के साथ OAuth 2.0 को कार्यान्वित करना, आपके एप्लिकेशन की सुरक्षा और उपयोगिता को बढ़ाने का एक शक्तिशाली तरीका है। उपयोगकर्ताओं को उनके मौजूदा खातों से लॉग इन करने की अनुमति देकर, आप घर्षण को कम करते हैं और एक सहज उपयोगकर्ता अनुभव प्रदान करते हैं। साथ ही, जेडब्ल्यूटी के साथ अपने एपीआई एंडपॉइंट को सुरक्षित करना यह सुनिश्चित करता है कि केवल प्रमाणित उपयोगकर्ताओं के पास संवेदनशील संसाधनों तक पहुंच है।
इस गाइड के माध्यम से, हमने प्रमाणीकरण को संभालने और आपके एंडपॉइंट की सुरक्षा के लिए आपके स्प्रिंग बूट एप्लिकेशन को कॉन्फ़िगर करने के लिए Google और GitHub पर OAuth क्रेडेंशियल सेट करने से लेकर सब कुछ कवर किया है। चाहे आप OAuth 2.0 में नए हों या इसे अपनी परियोजनाओं में एकीकृत करना चाह रहे हों, ये चरण आपको एक सुरक्षित और स्केलेबल प्रमाणीकरण प्रणाली बनाने में मदद करेंगे।
सुरक्षा एक कभी न खत्म होने वाली यात्रा है, लेकिन सही टूल और प्रथाओं के साथ, आप ऐसे एप्लिकेशन बना सकते हैं जो सुरक्षित और उपयोगकर्ता के अनुकूल दोनों हैं। अब जब आपके पास एक ठोस आधार है, तो आप अधिक प्रदाताओं को जोड़कर, उपयोगकर्ता अनुभव को अनुकूलित करके, या जेडब्ल्यूटी कॉन्फ़िगरेशन में गहराई से गोता लगाकर आगे का पता लगा सकते हैं। हैप्पी कोडिंग!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3