عند التعامل مع أنظمة تسجيل الدخول والتصاريح في عالم تطوير البرمجيات، نسمع كثيرًا عن مصطلحي Authentication و Authorization، وهما من المفاهيم الأساسية في مجال Backend Development. ورغم تشابههما، إلا أن لكل منهما وظيفة مختلفة تمامًا.
في هذا المقال، سنوضح الفرق بينهما بطريقة سهلة الفهم، مع أمثلة واقعية تساعد في ترسيخ المفهوم.
أولًا: ما هو Authentication؟
Authentication أو المصادقة هي عملية التحقق من هوية المستخدم. أي التأكد من أن الشخص الذي يحاول الدخول إلى النظام هو بالفعل من يدّعي أنه هو.
مثال واقعي على Authentication
تخيل أنك طالب في الجامعة، وعند دخولك من بوابة الجامعة، يطلب منك موظف الأمن إبراز كارنيه الطالب. إذا كنت تحمل الكارنيه، فسيُسمح لك بالدخول لأنك طالب مسجَّل في الجامعة. أما إذا لم تكن تملك الكارنيه، فسيتم منعك من الدخول.
هذا بالضبط ما يحدث عند تسجيل الدخول إلى موقع إلكتروني، حيث يطلب منك النظام إدخال البريد الإلكتروني وكلمة المرور، ثم يتحقق من بياناتك في قاعدة البيانات، فإذا تطابقت المعلومات، يُسمح لك بالدخول.
إذن، يمكننا تلخيص Authentication بأنه عملية التحقق من الهوية، أي الإجابة عن السؤال: “هل هذا المستخدم مسجَّل لدينا؟”
ثانيًا: ما هو Authorization؟
Authorization أو التفويض هو تحديد الصلاحيات التي يمتلكها المستخدم بعد تسجيل الدخول، أي ماذا يُسمح له بفعله داخل النظام.
مثال واقعي على Authorization
بعدما سمح لك موظف الأمن بدخول الجامعة لأنك طالب، هل يمكنك الدخول إلى أي مكان داخل الحرم الجامعي؟ بالطبع لا! لديك صلاحية دخول المدرجات والفصول الدراسية الخاصة بك فقط، لكن لا يمكنك دخول مكاتب الأساتذة أو غرف الإدارة إلا إذا كان لديك إذن بذلك.
بالمثل، داخل أي نظام برمجي، بعد نجاح عملية Authentication وتحقق النظام من هويتك، يقوم بتحديد ما يمكنك فعله بناءً على الدور والصلاحيات الممنوحة لك:
- الطالب يمكنه دخول المحاضرات لكنه لا يستطيع الدخول إلى مكاتب الأساتذة.
- الدكتور يمكنه دخول جميع القاعات والمكاتب، لكنه لا يستطيع الدخول إلى مكتب العميد.
- العميد لديه صلاحيات موسعة ويمكنه الدخول إلى أي مكان في الجامعة.
إذن، يمكننا تلخيص Authorization بأنه تحديد الصلاحيات بعد التحقق من الهوية، أي الإجابة عن السؤال: “ماذا يُسمح لهذا المستخدم أن يفعل؟”
الفرق الأساسي بين Authentication و Authorization
العنصر | Authentication (المصادقة) | Authorization (التفويض) |
---|---|---|
التعريف | التحقق من هوية المستخدم | تحديد الصلاحيات بعد التحقق من الهوية |
متى يتم؟ | يحدث أولًا قبل أي عمليات أخرى | يتم بعد التحقق من هوية المستخدم |
الهدف | التأكد من أن المستخدم موجود في النظام | تحديد ما يُسمح للمستخدم بالقيام به |
المثال الواقعي | التحقق من كارنيه الطالب عند دخول الجامعة | السماح بدخول أماكن محددة داخل الجامعة |
خلاصة
- Authentication: هو عملية التحقق من هوية المستخدم.
- Authorization: هو تحديد ما يُسمح للمستخدم بفعله بعد التحقق من هويته.
- لا يمكن تنفيذ Authorization دون Authentication.
- كلاهما ضروريان لحماية الأنظمة من الوصول غير المصرح به وضمان الأمان.
بهذا نكون قد وضحنا الفرق بين المصطلحين بأسلوب بسيط وسلس، دون الدخول في تعقيدات الكود. نأمل أن يكون هذا المقال قد ساعدك في فهم الفرق بين المصادقة و التفويض بشكل واضح. 🚀