🧠 سؤال للمحترفين: وAuthorization؟
هناك خطأ شائع جدًا في فهم أنظمة الدخول والصلاحيات، وهو التعامل مع Authentication وAuthorization وكأنهما نفس العملية.
لكن الفرق بينهما أساسي.
🔐 Authentication
تعني التحقق من هوية المستخدم.
بمعنى آخر:
"هل أنت فعلًا الشخص الذي تدعي أنك هو؟"
عندما تدخل إلى حسابك باستخدام كلمة المرور أو رمز ، فإن النظام يحاول إثبات هويتك.
مثال:
أنت تدخل إلى لوحة التحكم باستخدام:
Username + Password + MFA
إذا نجح التحقق، أصبح النظام يعرف هويتك.
لكن هذا لا يعني أنك تستطيع الوصول إلى كل شيء.
وهنا يأتي دور:
🛡️ Authorization
وهي تحديد ما الذي يُسمح للمستخدم بالوصول إليه أو تنفيذه بعد التحقق من هويته.
بمعنى:
"بعد أن عرفنا من أنت، ماذا يُسمح لك أن تفعل؟"
مثال:
لديك شركة فيها:
👤 Employee
👨💼 Manager
👑 Administrator
جميعهم يستطيعون تسجيل الدخول.
إذن Authentication قد تكون ناجحة للجميع.
لكن الصلاحيات مختلفة.
الموظف قد يستطيع قراءة بيانات العملاء.
المدير قد يستطيع تعديل بعض البيانات.
Administrator قد يستطيع إنشاء مستخدمين وتغيير إعدادات النظام.
هنا تظهر Authorization.
وهناك خطأ أمني خطير يحدث عندما يكون Authentication قويًا ولكن Authorization ضعيفًا.
مثلًا:
المستخدم يسجل الدخول بشكل صحيح، لكن يستطيع تغيير رقم ID في الرابط من:
/user/100
إلى:
/user/101
ثم يرى بيانات مستخدم آخر.
المشكلة هنا ليست في إثبات الهوية.
المستخدم بالفعل قام بتسجيل الدخول.
المشكلة في عدم تطبيق Authorization بشكل صحيح.
لذلك تذكر القاعدة البسيطة:
🔐
= ماذا يمكنك أن تفعل؟
وهذا الفرق مهم جدًا عند تصميم APIs وWeb Applications وأنظمة الشركات.
يمكنك امتلاك MFA قوي جدًا، ولكن إذا كانت الصلاحيات سيئة التصميم، فقد تظل البيانات معرضة للوصول غير المصرح به.
الأمن الحقيقي يحتاج إلى التحقق من الهوية والتحكم في الصلاحيات معًا.