أثناء تعاملنا مع ال APIs بنحتاج نعمل User Authentication واللي هي عبارة عن عملية التحقق من هوية المستخدم اللي باعت ال Request, ودا جانب هام جدُا في حماية الـ API وكذلك خصوصية وأمان المستخدمين.
أثناء تعاملنا مع ال APIs بنحتاج نعمل User Authentication واللي هي عبارة عن عملية التحقق من هوية المستخدم اللي باعت ال Request, ودا جانب هام جدُا في حماية الـ API وكذلك خصوصية وأمان المستخدمين.
فورقة وقلم و تعالوا نتعرف على أشهر 5 طرق من ال User Authentication Methods. 🚀
Basic Authentication
دا أبسط نوع وفيه بنبعت اسم المستخدم وكلمة المرور في ال Request في صيغة Base64 , طبعًا النوع دا منخفض الأمان ومش بنستخدمه في الـ Production Environment إلا علي HTTPS Connection, لأن ال Base64 Encoding بيتحل بأي Decoder على الإنترنت فلو ال Eequest اتعرض ل Eavesdrop Attack يقدر المهاجم بسهولة يعرف بيانات المستخدم.
الاستخدام المناسب:
مناسب للاستخدام في وقت التطوير أو الـ Testing
ممكن نستخدمه في التطبيقات الداخلية واللي ضامنين إنها على شبكة آمنة.
GET /protected-resource HTTP/1.1
Host: example.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
API Key Authentication
ال API Keys عبارة عن مفاتيح أو "رموز تعريف" بيصدرها ال API لل Clients ودور ال Client أنه يبعتها مع كل Request لل API كوسيلة تحقق من هوية المستخدم. ال Client ممكن يبعتها ك Query String أو يحطها في ال Request Header أو حتي ك Cookie.
وزي ال Basic Authentication لازم نستخدمه علي HTTPS Connection لأن لو أي حد عرف ال API Key هيقدر ينتحل شخصية ال Client ويستعمل ال API باسمه.
الاستخدامات المناسبة:
بتكون في بيئات التطوير و الاختبار أو في التطبيقات الداخلية
ممكن نستخدمه في الـ Production ولكن مع وسائل أخري نزود بيها معامل الأمان.
💡
ونلاحظ واحدة من أهم عيوب الـ API Key إنه مش بيدي User-Specific Permissions لأنه مصمم بالأساس عشان يستخدم بين ال Apps أو ال Services وبعضها.