"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > مصادقة OAuth في Spring Boot: دليل لدمج تسجيل الدخول إلى Google وGitHub

مصادقة OAuth في Spring Boot: دليل لدمج تسجيل الدخول إلى Google وGitHub

تم النشر بتاريخ 2024-11-03
تصفح:546

تعزيز الأمان باستخدام 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/

إنشاء المشروع

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

قم بتنزيل الملف المضغوط واستخرجه ثم قم بتحميل المشروع إلى 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  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

انقر على خدمات واجهة برمجة التطبيقات

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

بيانات الاعتماد -> إنشاء بيانات الاعتماد -> معرف عميل OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

معرف عميل OAuth -> إنشاء معرف عميل OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

اختر نوع التطبيق إلى تطبيق الويب

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

أعطي اسم التطبيق

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

قم بتعيين عناوين URI لإعادة التوجيه المعتمدة باستخدام عنوان URL هذا وهنا يعمل تطبيقنا على منفذ 8000 لذا فإن منفذ التطبيق هو 8000. ثم انقر فوق إنشاء

http://localhost:8000/login/oauth2/code/google

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

بعد ذلك يتم إنشاء عميل OAuth ونحصل على معرف العميل وسر العميل.

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

انسخ كلاهما واستبدلهما بخصائص ملف 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

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

نحصل على رد مماثل مثل هذا

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

الآن يمكننا الوصول إلى نقاط النهاية.

مصادقة جيثب

تتيح مصادقة GitHub في Spring Boot للمستخدمين تسجيل الدخول باستخدام حسابات GitHub الخاصة بهم، مما يؤدي إلى تبسيط عملية المصادقة وتعزيز الأمان. من خلال دمج GitHub كموفر OAuth 2.0، يمكن لتطبيقك مصادقة المستخدمين من خلال النظام الأساسي الموثوق به لـ GitHub. يتضمن ذلك تسجيل تطبيقك على GitHub للحصول على معرف العميل وسر العميل، اللذين يتم تكوينهما بعد ذلك في تطبيق Spring Boot الخاص بك. تتم إعادة توجيه المستخدمين إلى GitHub لتسجيل الدخول، وبعد المصادقة الناجحة، تتم إعادة توجيههم مرة أخرى إلى التطبيق الخاص بك باستخدام رمز وصول، مما يسمح بالوصول الآمن إلى مواردك المحمية. يعد هذا التكامل مثاليًا للتطبيقات التي تستهدف المطورين والمستخدمين المهتمين بالتكنولوجيا.

أنشئ حساب GitHub وانتقل إلى الإعدادات

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

في الزاوية اليسرى نحصل على إعدادات المطور

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

انتقل إلى تطبيقات OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

انقر على إنشاء تطبيق OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

نحصل على الواجهة مثل هذه

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

تعيين ** عنوان URL لرد اتصال التفويض ** وفقًا لمنفذ التطبيق الخاص بك

http://localhost:8000/login/oauth2/code/github

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

وتعيين عنوان URL للصفحة الرئيسية

http://localhost:8000

بعد تسجيل التطبيق نحصل على معرف العميل وسر العميل

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

استبدل الآن بخصائص ملف Application.properties

spring.security.oauth2.client.registration.github.client-id=Ov23liBMLc5e1ItoONPx
spring.security.oauth2.client.registration.github.client-secret= 

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

اختبار تسجيل الدخول إلى GitHub

تسجيل الدخول باستخدام GitHub: عندما يُطلب منك ذلك، قم بتسجيل الدخول باستخدام بيانات اعتماد GitHub الخاصة بك.
إعادة التوجيه الناجحة: بعد المصادقة الناجحة، ستتم إعادة توجيهك إلى الصفحة /الصفحة الرئيسية لتطبيقك.

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

يمكنك استكشاف الكود المصدري الكامل لخدمة مصادقة المستخدم على مستودع 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. برمجة سعيدة!

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/ayushstwt/oauth-20-authentication-in-spring-boot-a-guide-to-integrating-google-and-github-login-2hga?1إذا كان هناك أي التعدي، يرجى الاتصال بـ [email protected] للحذف
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3