تعزيز الأمان باستخدام OAuth 2.0: تنفيذ عمليات تسجيل الدخول عبر الشبكات الاجتماعية في Spring Boot
في عالم تطوير الويب الحديث، يعد تأمين تطبيقاتك وجعل المصادقة سلسة قدر الإمكان للمستخدمين أولوية قصوى. وهنا يأتي دور OAuth 2.0، فهي أداة قوية لا تساعد فقط في تأمين واجهات برمجة التطبيقات الخاصة بك ولكنها تتيح أيضًا للمستخدمين تسجيل الدخول باستخدام حساباتهم الحالية من منصات مثل Google وGitHub. وهذا يجعل الأمور أسهل للجميع: لا يحتاج المستخدمون إلى تذكر كلمة مرور أخرى، ويحصل المطورون على طريقة موثوقة لإدارة المصادقة.
في هذه المدونة، سأطلعك خطوة بخطوة على كيفية إعداد OAuth 2.0 في تطبيق Spring Boot. سنقوم بدمج كل من Google وGitHub للمصادقة، حتى يتمكن المستخدمون لديك من اختيار الخدمة التي يريدون استخدامها لتسجيل الدخول. وسأوضح لك أيضًا كيفية حماية نقاط نهاية واجهة برمجة التطبيقات (API) الخاصة بك باستخدام JWT (JSON Web Tokens)، مع التأكد من أن فقط يمكن للمستخدمين المصادق عليهم الوصول إلى الموارد التي من المفترض أن يصلوا إليها.
سواء كنت تقوم بإنشاء تطبيق جديد أو إضافة الأمان إلى تطبيق موجود، فإن هذا الدليل سيمنحك الأدوات التي تحتاجها للحفاظ على تطبيق Spring Boot الخاص بك آمنًا وسهل الاستخدام.
تفضل بزيارة https://start.spring.io/
إنشاء المشروع
قم بتنزيل الملف المضغوط واستخرجه ثم قم بتحميل المشروع إلى IDE الخاص بك.
تعمل تبعية "OAuth2 Client" في Spring Boot على تبسيط عملية دمج مصادقة OAuth 2.0 مع موفري الخدمة مثل Google وGitHub. فهو يتعامل مع تدفق تسجيل الدخول إلى OAuth بالكامل، بما في ذلك إعادة توجيه المستخدمين إلى صفحة تسجيل الدخول الخاصة بالموفر، وإدارة الرموز المميزة، وتأمين نقاط نهاية واجهة برمجة التطبيقات. من خلال إضافة هذه التبعية، يمكنك بسهولة تمكين المصادقة الآمنة وسهلة الاستخدام في تطبيق Spring Boot الخاص بك.
تعد تبعية "Spring Web" في Spring Boot أمرًا ضروريًا لتطوير تطبيقات الويب. فهو يوفر ميزات أساسية مثل إنشاء RESTful API ودعم بنية MVC والقدرة على تقديم عروض HTML. باستخدام Spring Web، يمكنك بسهولة التعامل مع طلبات HTTP واستجاباتها وإدارة التوجيه والتكامل مع مكونات Spring الأخرى، مما يجعلها جزءًا أساسيًا من بناء تطبيقات ويب قوية.
لإعداد تطبيق Spring Boot الخاص بك لمصادقة OAuth 2.0 مع Google وGitHub، ستحتاج إلى تكوين ملف application.properties. يحتوي هذا الملف على الإعدادات الأساسية لتطبيقك، بما في ذلك بيانات اعتماد عميل 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: استبدل YOUR_GOOGLE_CLIENT_ID، YOUR_GOOGLE_CLIENT_SECRET، YOUR_GITHUB_CLIENT_ID، وYOUR_GITHUB_CLIENT_SECRET ببيانات الاعتماد التي تحصل عليها من Google وGitHub عند تسجيل تطبيقك.
لتسجيل تطبيقك مع Google وGitHub لمصادقة OAuth 2.0، نحتاج إلى الانتقال إلى https://console.cloud.google.com
انقر على خدمات واجهة برمجة التطبيقات
بيانات الاعتماد -> إنشاء بيانات الاعتماد -> معرف عميل OAuth
معرف عميل OAuth -> إنشاء معرف عميل OAuth
اختر نوع التطبيق إلى تطبيق الويب
أعطي اسم التطبيق
قم بتعيين عناوين URI لإعادة التوجيه المعتمدة باستخدام عنوان URL هذا وهنا يعمل تطبيقنا على منفذ 8000 لذا فإن منفذ التطبيق هو 8000. ثم انقر فوق إنشاء
http://localhost:8000/login/oauth2/code/google
بعد ذلك يتم إنشاء عميل OAuth ونحصل على معرف العميل وسر العميل.
انسخ كلاهما واستبدلهما بخصائص ملف application.properties
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 بتكوين الأمان لتطبيق Spring Boot باستخدام OAuth2. فهو يحدد وحدة SecurityFilterChain، التي تقوم بإعداد قواعد الأمان. يضمن أسلوب AuthorizeHttpRequests أن جميع الطلبات الواردة تتطلب المصادقة. يقوم السطر .oauth2Login(Customizer.withDefaults()) بتمكين وظيفة تسجيل الدخول إلى OAuth2 بالإعدادات الافتراضية. وأخيرًا، يقوم الأسلوبsecurityFilterChain بإرجاع سلسلة تصفية الأمان التي تم تكوينها عن طريق استدعاء http.build(). يضمن هذا الإعداد أن التطبيق آمن ويدعم مصادقة OAuth2 للمستخدمين.
الوصول إلى التطبيق الخاص بك عبر Chrome
عند تطوير واختبار تطبيق Spring Boot، من المهم معرفة كيفية التفاعل معه من خلال Postman. إذا كان تطبيقك يعمل محليًا على المنفذ 8000، فيمكنك الوصول إليه باستخدام عنوان URL الأساسي التالي:
http://localhost:8000
نحصل على رد مماثل مثل هذا
الآن يمكننا الوصول إلى نقاط النهاية.
تتيح مصادقة GitHub في Spring Boot للمستخدمين تسجيل الدخول باستخدام حسابات GitHub الخاصة بهم، مما يؤدي إلى تبسيط عملية المصادقة وتعزيز الأمان. من خلال دمج GitHub كموفر OAuth 2.0، يمكن لتطبيقك مصادقة المستخدمين من خلال النظام الأساسي الموثوق به لـ GitHub. يتضمن ذلك تسجيل تطبيقك على GitHub للحصول على معرف العميل وسر العميل، اللذين يتم تكوينهما بعد ذلك في تطبيق Spring Boot الخاص بك. تتم إعادة توجيه المستخدمين إلى GitHub لتسجيل الدخول، وبعد المصادقة الناجحة، تتم إعادة توجيههم مرة أخرى إلى التطبيق الخاص بك باستخدام رمز وصول، مما يسمح بالوصول الآمن إلى مواردك المحمية. يعد هذا التكامل مثاليًا للتطبيقات التي تستهدف المطورين والمستخدمين المهتمين بالتكنولوجيا.
أنشئ حساب GitHub وانتقل إلى الإعدادات
في الزاوية اليسرى نحصل على إعدادات المطور
انتقل إلى تطبيقات OAuth
انقر على إنشاء تطبيق OAuth
نحصل على الواجهة مثل هذه
تعيين ** عنوان URL لرد اتصال التفويض ** وفقًا لمنفذ التطبيق الخاص بك
http://localhost:8000/login/oauth2/code/github
وتعيين عنوان URL للصفحة الرئيسية
http://localhost:8000
بعد تسجيل التطبيق نحصل على معرف العميل وسر العميل
استبدل الآن بخصائص ملف Application.properties
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
يعد تنفيذ OAuth 2.0 باستخدام Spring Boot، باستخدام Google وGitHub كموفري مصادقة، طريقة قوية لتعزيز أمان تطبيقك وسهولة استخدامه. من خلال السماح للمستخدمين بتسجيل الدخول باستخدام حساباتهم الحالية، يمكنك تقليل الاحتكاك وتوفير تجربة مستخدم أكثر سلاسة. وفي الوقت نفسه، يضمن تأمين نقاط نهاية واجهة برمجة التطبيقات (API) الخاصة بك باستخدام JWT أن المستخدمين المصادق عليهم فقط هم من يمكنهم الوصول إلى الموارد الحساسة.
من خلال هذا الدليل، قمنا بتغطية كل شيء بدءًا من إعداد بيانات اعتماد OAuth على Google وGitHub وحتى تكوين تطبيق Spring Boot للتعامل مع المصادقة وحماية نقاط النهاية الخاصة بك. سواء كنت جديدًا في استخدام OAuth 2.0 أو تتطلع إلى دمجه في مشاريعك، ستساعدك هذه الخطوات في إنشاء نظام مصادقة آمن وقابل للتطوير.
يعد الأمان رحلة لا تنتهي أبدًا، ولكن باستخدام الأدوات والممارسات الصحيحة، يمكنك إنشاء تطبيقات آمنة وسهلة الاستخدام. الآن بعد أن أصبح لديك أساس متين، يمكنك الاستكشاف بشكل أكبر عن طريق إضافة المزيد من الموفرين، أو تخصيص تجربة المستخدم، أو التعمق في تكوينات JWT. برمجة سعيدة!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3