كيفية إعداد مصادقة عاملين في ASP.NET Core باستخدام أداة مصادقة Google

الصورة من تومي لي ووكر على Unsplash

المقدمة

في هذه المقالة ، سنتعرف على كيفية إجراء مصادقة ثنائية العامل في تطبيق ASP.NET Core باستخدام تطبيق Google Authenticator.

لاستخدامها ، تحتاج إلى تكوين تطبيق Google Authenticator على هاتفك الذكي باستخدام رمز الاستجابة السريعة الذي تم إنشاؤه في تطبيق الويب. عند تسجيل الدخول إلى تطبيق الويب ، يجب عليك إدخال رقم مكون من ستة أرقام والذي سيتم إنشاؤه في التطبيق لإنهاء المصادقة الثنائية. سيكون المفتاح الذي تم إنشاؤه في التطبيق فريدًا لمعرف المستخدم الخاص بك ، وهو كلمة مرور لمرة واحدة (TOTP) تعتمد على الوقت - أي ستنتهي صلاحيتها بعد وقت معين.

المتطلبات الأساسية

  • قم بتثبيت .NET Core 2.0.0 أو أعلى SDK من هنا.
  • قم بتثبيت أحدث إصدار من Visual Studio 2017 Community Edition من هنا.

مصدر الرمز

قبل المتابعة ، أوصي بأن تحصل على شفرة المصدر من جيثب

إنشاء تطبيق ويب MVC

افتح Visual Studio وحدد ملف >> جديد >> مشروع. بعد اختيار المشروع ، سيتم فتح مربع حوار "مشروع جديد". حدد .NET Core داخل قائمة Visual C # من اللوحة اليمنى. ثم ، حدد "تطبيق ASP.NET Core Web" من أنواع المشاريع المتاحة. اسم المشروع "TwoFactAuth" واضغط على "موافق".

بعد النقر فوق "موافق" ، سيتم فتح مربع حوار جديد يطلب منك تحديد قالب المشروع. يمكنك رؤية قائمتين منسدلتين في أعلى يسار نافذة القالب. حدد ".NET Core" و "ASP.NET Core 2.0" من هذه القائمة المنسدلة. ثم ، حدد قالب "تطبيق ويب (Model-View-Controller)". انقر على زر "تغيير المصادقة". سيتم فتح مربع حوار "تغيير المصادقة". حدد "حساب مستخدم فردي" وانقر فوق "موافق". الآن ، انقر فوق "موافق" مرة أخرى لإنشاء تطبيق الويب الخاص بك.

إضافة رموز QR لتكوين مصادقة ثنائية

سنستخدم رمز الاستجابة السريعة لتكوين تطبيق مصادقة Google ومزامنته مع تطبيق الويب الخاص بنا. قم بتنزيل مكتبة JavaScript qrcode.js من https://davidshimjs.github.io/qrcodejs/ ووضعها في مجلد "wwwroot \ lib" في تطبيقك. الآن ، سيحتوي مجلد "wwwroot" على البنية التالية.

افتح الملف "Views \ Manage \ EnableAuthenticator.cshtml". ستجد مخطوطاتsection في نهاية الملف. ضع الكود التالي فيه.

@ مقاطع نصية {
    await Html.PartialAsync ("_ ValidationScriptsPartial")