ما الفرق بين Authentication و Authorization؟
الفرق الأساسي بين Authentication و Authorization هو أن الأول يتعلق بالتأكد من هوية المستخدم، أما الثاني فيحدد ما هي الصلاحيات المتاحة لهذا المستخدم بعد التحقق من هويته.
ما هو Authentication؟
Authentication أو التوثيق هو عملية التحقق من هوية المستخدم. بمعنى آخر، عندما تحاول الدخول إلى نظام معين، يقوم النظام أولاً بالتأكد أنك فعلاً من تدعي أنه. عادةً ما يتم هذا عبر إدخال اسم المستخدم وكلمة المرور، ولكن يمكن أن يشمل أيضاً طرق أخرى مثل التحقق عبر الرسائل النصية (OTP)* أو استخدام بصمة الإصبع أو التعرف على الوجه.
عملية التوثيق تهدف إلى تأكيد "من أنت؟" وليس "ماذا يمكنك أن تفعل؟". عند نجاح عملية التوثيق، يصبح النظام واثقاً من هويتك ويمكنه السماح لك بالخطوة التالية.
ما هو Authorization؟
Authorization أو التفويض هو العملية التي تحدد ما الصلاحيات التي يمتلكها المستخدم داخل النظام بعد التحقق من هويته. بمعنى آخر،بعد أن يتأكد النظام من هوية المستخدم، يقرر ما هي الموارد التي يمكن لهذا المستخدم الوصول إليها والإجراءات التي يمكنه القيام بها، مثل قراءة بيانات معينة، تعديل محتوى، أو حتى التحكم الكامل في النظام.
التفويض يجيب على السؤال "ما الذي يسمح لك بالقيام به؟"* وهو يعتمد بشكل كبير على نتائج التوثيق. فمثلاً، قد يكون لديك حساب في موقع إلكتروني، ولكن كعميل عادي يمكن فقط تصفح المنتجات، بينما مدير الموقع لديه صلاحيات تعديل البيانات وإدارة المستخدمين.
الفرق بشكل مبسط
يمكن تشبيه العلاقة بين Authentication و Authorization بمفتاح والباب في مبنى. Authentication هو عملية حصولك على المفتاح الصحيح الذي يثبت أنك مسموح لك بالدخول، أما Authorization فهي تحديد الغرف التي يمكنك الدخول إليها بعد دخولك للمبنى. إذا لم يكن لديك المفتاح الصحيح (التوثيق)* لن تستطيع الدخول أو الوصول إلى أي غرفة. وإن كان لديك المفتاح، نظام التفويض (التفويض) هو من يحدد ما هي الغرف التي يمكن لك استخدامها.
أهمية الفهم الصحيح
فهم الفرق بين التوثيق والتفويض مهم جداً في تصميم الأنظمة الأمنية وحماية المعلومات. الأخطاء في التعامل مع هذه المفاهيم قد تعرض النظام للاختراق أو تتيح وصول غير مصرح به للمستخدمين، مما يؤثر على سلامة البيانات وخصوصية المستخدمين.
في تطبيقات الويب، كثيراً ما يتم استخدام تقنيات مثل OAuth أو JWT لدمج عمليات التوثيق والتفويض بشكل آمن وفعال، حيث توفر هذه التقنيات حلولاً متقدمة للتحكم في الدخول إلى الموارد بناءً على هوية المستخدم وصلاحياته.