🛡️الفرق بين ال Authentication و ال Authorization 🧑💻..
ال Authentication وال authorization كلمتان المستخدمتان في عالم security قد تبدو متشابهة ولكنها مختلفة تماماً عن بعضها البعض.
1️⃣ ما هي ال Authentication (المصادقة):
ال Authentication هي عملية تحديد هوية شخص ما من خلال التأكد من أن الشخص هو نفسه من يطالب request و يتم استخدامه من قبل كل من server و client ويستخدم server ال Authentication عندما يريد شخص ما الوصول إلى المعلومات، ويحتاج ال server إلى معرفة من يقوم بالوصول إلى المعلومات بواسطة server في الغالب باستخدام اسم المستخدم وكلمة المرور .
📍ال techniques الشهيرة ل Authentication.
1️⃣ ال authentication على أساس Password:
إنها أبسط طريقة authentication يتطلب password و username المحدد إذا تطابقت كلمة المرور مع اسم المستخدم وكلتا التفاصيل تتطابق مع database النظام، فسيتم authentication على المستخدم بنجاح.
2️⃣ال authentication بدون Password:
في هذه التقنية لا يحتاج المستخدم إلى أي كلمة مرور بدلاً من ذلك، يحصل على OTP (One-time password) أو رابط على رقم phone يمكن أن يقال علية OTP-based.
3️⃣ال 2FA / ال MFA:
ال 2FA / ال MFA أو المصادقة الثنائية و المصادقة متعددة العوامل هي المستوى الأعلى من authentication و يتطلب الأمر رقم PIN إضافيًا أو أسئلة أمان حتى يتمكن من authenticate المستخدم.
4️⃣ الدخول الموحد SSO:
يُعد تسجيل الدخول الأحادي أو SSO طريقة لتمكين الوصول إلى تطبيقات متعددة باستخدام مجموعة واحدة من بيانات الاعتماد يسمح للمستخدم بتسجيل الدخول مرة واحدة ، وسيتم تسجيل الدخول تلقائيا إلى جميع تطبيقات الويب الأخرى المترتبطة بهذا النظام.
2️⃣ الAuthorization (التفويض):
هي عملية منح شخص ما داخل ال system للقيام بمجموعة من العمليات داخل هذا system يعني أنها طريقة للتحقق مما إذا كان المستخدم لديه إذن لاستخدام موارد هذا النظام لا فهو يحدد ما هي البيانات والمعلومات التي يمكن لمستخدم واحد الوصول إليها.
📍يعمل ال Authorization عادةً مع authentication حتى يتمكن النظام من معرفة من يقوم بالوصول إلى المعلومات.
📍تقنيات Authorization :
التحكم في access على أساس الدور
تمنح RBAC أو تقنية Role-Based Access Control إلى الدور users وفقًا role أو ملفهم الشخصي في organization يمكن تنفيذه system to system أو user-to-system
📍ال JWT:
ال JSON web token أو JWT هو standard مفتوح يستخدم لنقل البيانات بشكل آمن بين الأطراف في شكل JSON object و يتم التحقق من المستخدمين وترخيصهم باستخدام key تكون private/public .
📍ال SAML:
ترمز الـ SAML إلى لغة رمز تأكيد الأمان وهو معيار standard يوفر بيانات اعتماد ال Authorization ل service providers و يتم تبادل بيانات الاعتماد هذه من خلال XML documents.
📍ال OpenID authorization:
يساعد clients على التحقق من هوية المستخدمين النهائيين على أساس authentication .
📍ال OAuth:
ال OAuth هو بروتوكول ، يمكّن API من authenticate والوصول إلى الموارد المطلوبة.