المصادقة (Authentication) في تطبيقات الويب: كيف بنحمي بيانات المستخدمين ؟ ووين العالم متجه في هاي الناحية ؟

١٢ مارس ٢٠٢٥

لما نشتغل ع تطبيق ويب, او نبني الي موقع , واحدة من أهم الأمور الي لازم نركز عليها هي حماية المستخدمين و بياناتهم , لان لو ما كانت محمية رح يكون في كثير مشاكل. هنا بتيجي أهمية المصادقة (Authentication).

المصادقة معناها اني أتأكد انو الشخص الي بيحاول يدخل على الموقع هو فعلاً الشخص الصحيح. يعني لما المستخدم يسجل دخوله (يعمل login), إحنا بدنا نتحقق إنه اسمه و كلمة سره صح و مطابقة مع الي في الداتابيز, وبعدها نسمحله يدخل و يشوف الصفحة و البيانات الخاصة فيه.

طبعا للتنويه في فرق بين authentication (يعني مين نتا ؟) و ال authorization (اش مسموحلك تعمل جوا التطبيق ).

السؤال الأن كيف بنعمل المصادقة ؟ و شو الطرق المتوفرة ؟ ووين المستقبل متجه بالنسبة ل authentication ؟

 أنواع طرق المصادقة

في كتير طرق بنقدر نستخدمها عشان نحقق المصادقة في تطبيقات الويب، وكل وحدة إلها استخداماتها وحسناتها.

المصادقة بإستخدام الجلسات Session-Based Authentication

هاي الطريقة كانت الأكثر استخدامًا في الزمنات ولسا في كثير مواقع بتستخدمها. بعد ما يسجل المستخدم الدخول، السيرفر بعمل "جلسة" (Session) إلو، وبخزنها في الذاكرة. وبعدين، السيرفر ببعت "Cookie" فيها ID الجلسة للمستخدم، وكل ما يطلب صفحة، السيرفر بتأكد من هاي الجلسة.

من مميزات الطريقة هاي ؟ انها اّمنة خصوصا لو مع بروتوكول HTTPS. و برضو مناسبة للتطبيقات الي السيرفر فيها بيتحكم بكل شي.

لكن من السلبيات؟ انو السيرفر لازم يخزن كل الجلسات، وهذا بيأثر على الأداء وبيخلي التطبيق مش مناسب لتوزيعه على أكتر من سيرفر بسهولة. و غير هيك انو صعب تشتغل مع فرونت اند منفصل (زي رياكت او فيو) وكمان شي بدها حماية من هجمات ال CSRF.

المصادقة بإستخدام الرموز (توكنز) Token-Based Authentication

 هاي الطريقة بتخلي المصادقة بدون الحاجة لخزن الجلسات في السيرفر.و بتشتغل بشكل شوي مختلف عن الجلسات التقليدية (sessions + tokens). بحيث انو الفكرة الرئيسية إنها بتعطي المستخدم توكن (token) بعد تسجيل الدخول, وهاي التوكن بيكون دليل انه اليوزر هاد موثوق فيه.

كيف بتمشي العملية هاي ؟

  • اول شي المستخدم بيعمل تسجيل دخول : بيبعت ايميل و باسورد (او اي وسيلة توثيق مستخدمة) ل السيرفر.
  • بعدها السيرفر بيتحقق من البيانات: اذا صح بيعمل Generate Token (بالعادة JWT) و بيبعتو ل الفرونت اند.
  • الفرونت اند بيخزن التوكن: غالبا في ال localStorage او sessionStorage او حتى في ال memory طبعا على حسب احتياج المشروع.
  • في كل مرة المستخدم بيعمل طلب ل السيرفر (زي انه يجيب بياناته) : بيبعت التوكن في الهيدر زي هيك :
  • اخر شي السيرفر بيفك التوكن, و بيعرف مين المستخدم و بيرد عليه بالبيانات المطلوبة طبعا اذا التوكن سليم.

ليش هالطريقة منتشرة؟ 

  • لانها Stateless: السيرفر ما بيخزن معلومات الجلسة.
  •  سهل التعامل معها بواجهات REST APIs أو SPA.
  • توكنات قابلة للتوقيع والتشفير يعني ممكن تحط فيها معلومات بسيطة عن المستخدم

من الأنواع الشائعة ل التوكن :

  • من الأكثر شهرة حاليا JSON Web Token (JWT).
  • وفي Opaque Token وهاي ما بتحتوي على بيانات, السيرفر بيفسر معناها.
  • ال Refresh Token هاي توكن طويل العمر عشان اجدد التوكن القصير الي هوا JWT.

معلومة عن JWT:

هيا توكن مشفر, بيحتوى على معلومات عن اليوزر(زي email , id) و بتوقع عليه رقميا السيرفر, و بتتكون من 3 أجزاء: 

  • ال Header : نوع التشفير و التوكن.
  • ال Payload: معلومات  (claims)عن اليوزر.
  • ال Signature: توقيع رقمي عشان أتأكد انو التوكن سليم وما تم التلاعب فيه.

مثال ع كيف ال JWT توكن بيكون : 

لتفهم أكثر عن JWT فهاي المقالة شارحاها .

توثيق عن طريق جهة خارجية ( Third Party Access(Outh, API tokens

هي طريقة بتخلي المستخدم يسجّل دخول لتطبيقك باستخدام حسابه في موقع تاني موثوق (زي Google، Facebook، أو GitHub)، بدون ما تعطيه معلومات دخولك لتطبيقك.

بتختصر وبتسهل عليك كتير أشياء :

  • ما بتخزن كلمات مرور عندك
  • بتستفيد من حماية مزوّد الخدمة (مثلاً Google)
  • بتوفّر تجربة سهلة للمستخدم (ضغطة زر = تسجيل دخول)

أشهر طريقتين على الموضوع هاد:

  1. طريقة OAuth : هو بروتوكول يسمح لتطبيقات الطرف الثالث إنها تطلب صلاحيات معينة من حساب المستخدم، من غير ما تأخذ الباسورد. وفي منه نوعين OAuth 1.0a or OAuth 2.0
  2. طريقة API Token: هو ببساطة سلسلة نصية (string) بتمثل هوية التطبيث أو المستخدم. بنستخدمها للتوثيق لما نستدعي API.

التوثيق برمز لمرة واحدة (OTP):

 هنا المستخدم بيدخل رقم أو ايميل, وبيوصله كود لمرة وحدة, وهاي الطريقة مناسبة في تطبيقات الموبايل او لما يكون الأمان اولوية عالية زي تطبيق ل البنك.

طيب، شو مستقبل ال authentication ؟ 

مستقبل المصادقة (Authentication) جالس يتطور بسرعة، لأن التهديدات الأمنية عم تزيد، والتجربة السلسة للمستخدم صارت مطلب أساسي. فمن أهم الاتجاهات و التقنيات الي الشركات عم بتحاول تطبقها وبدأنا نشوفها و رح نشوفها ب السنين الجاية :

بدون كلمات مرور (Passwordless Authentication)

طرق مصادقة بدون كلمة مرور زي :

  • رمز يُرسل إلى البريد أو SMS
  • ال Magic Link: رابط بيوصلك على الإيميل، تضغط عليه وبتدخل فورًا.(زي instagram و spotify لما بدك تعمل تسجيل الدخول)
  • ال Biometric Login: بصمة الإصبع، الوجه، أو حتى الصوت.

أمثلة بتستخدمها: شركة Microsoft وGitHub بلشوا يدعموا login بدون باسورد و خدمة Google Passkeys (مع FIDO2).

المصادقة الذكية المعتمدة على السياق (Context-Aware Authentication)

هي مصادقة بتتكيّف حسب سلوكك أو مكانك أو جهازك.مثلاً: لو سجلت دخول من موقع جديد، يطلب منك خطوة إضافية (2FA) او لو كنت على جهازك المعتاد، يسمحلك تدخل بدون تحقق إضافي.الذكاء الاصطناعي ممكن يستخدم بيانات مثل: نوع الجهاز , عنوان IP , سلوك الكتابة (Typing patterns) وبعدها بيقرر إذا الدخول آمن أو مشبوه.

المصادقة بالهاردوير FIDO2 و WEBAUTHN

هاي معايير عالمية بتحل محل الباسورد باستخدام أجهزة فعلية:مثل: YubiKey أو بصمة اللابتوب. بتولد مفتاح تشفير خاص بكل موقع، ما بيتكرر ولا بينسرقمن مميزاتها:

  • قوية جدًا ضد هجمات ال Phishing.
  • ما في شي ينسرق حتى لو الموقع انخترق

وهي جزء من مبادرة Passkeys من Google وApple وMicrosoft.

الهوية اللامركزية (Decentralized Identity – DID)

المفهوم هون هو:انو المستخدم يمتلك هويته الرقمية بالكامل يعني ما في جهة مركزية تحتفظ ببياناتك (زي Google أو Facebook)، بل تكون على جهازك أو عبر بلوكتشين (blockchain).

كيف ممكن تشتغل؟ بتحصل على "هوية رقمية مشفرة" محفوظة عندك ,لما موقع يطلب التحقق، بتعطيه بيانات محددة فقط (أنتالي بتتحكم), ممكن تستخدم بلوكتشين(blockchain) لتوثيق مصدر الهوية.هاي التقنية لسا جديدة، بس إلها دعم من Microsoft (عبر مشروع ION) وHyperledger.

المصادقة التكيفية (Adaptive Authentication)

هي نسخة ذكية من MFA (التحقق بخطوتين)، لكن مش دايمًا تطلب الخطوة الثانية، إلا إذا لاحظت خطر.مثلاً: لو من جهازك العادي؟ بتدخل فورًا. اما لو من شبكة عامة؟ يطلب رمز SMS أو تأكيد بالبصمة. وهاي الطريقة بتحقق التوازن بين الأمان والسهولة.

بالنهاية :

المصادقة مش بس خطوة فنية، هي الأساس في حماية بيانات المستخدمين وبناء ثقة في تطبيقك. وكل يوم التقنيات عم تتطور، من جلسات وتوكنات لبيومتريكس وبدون باسورد.
إذا عم تبني تطبيق جديد، فكّر من البداية بخيارات مصادقة آمنة، مرنة، ومناسبة لتجربتك.