
أثناء تعاملنا مع ال APIs بنحتاج نعمل User Authentication واللي هي عبارة عن عملية التحقق من هوية المستخدم اللي باعت ال Request, ودا جانب هام جدُا في حماية الـ API وكذلك خصوصية وأمان المستخدمين.
فورقة وقلم و تعالوا نتعرف على أشهر 5 طرق من ال User Authentication Methods. 🚀
Basic Authentication
دا أبسط نوع وفيه بنبعت اسم المستخدم وكلمة المرور في ال Request في صيغة Base64 , طبعًا النوع دا منخفض الأمان ومش بنستخدمه في الـ Production Environment إلا علي HTTPS Connection, لأن ال Base64 Encoding بيتحل بأي Decoder على الإنترنت فلو ال Eequest اتعرض ل Eavesdrop Attack يقدر المهاجم بسهولة يعرف بيانات المستخدم.
API Key Authentication
ال API Keys عبارة عن مفاتيح أو “رموز تعريف” بيصدرها ال API لل Clients ودور ال Client أنه يبعتها مع كل Request لل API كوسيلة تحقق من هوية المستخدم. ال Client ممكن يبعتها ك Query String أو يحطها في ال Request Header أو حتي ك Cookie.
وزي ال Basic Authentication لازم نستخدمه علي HTTPS Connection لأن لو أي حد عرف ال API Key هيقدر ينتحل شخصية ال Client ويستعمل ال API باسمه.
JWT-Based Authentication
ال JWT من أفضل و أشهر الطرق المستخدمة في الـ Authentication ونقدر نقول إنها شبه فكرة الـ API Key ولكن المفتاح - في الحالة دي ال Token - بيكون Encrypted بطريقة أحسن من الـ API Key.
ومن أكبر مميزاتها إنك مش مضطر تخزن ال Token لكل Client علي ال Server زي ما بنعمل مع الـ API Keys وده بيخليها طريقة Scalable.
OAuth 2.0
الطريقة دي مستخدمة عشان نعمل User Authentication للمستخدم بدون ما نعرف اسمه أو كلمة مروره بشكل حقيقي ودا مناسب في حالة الـ Third-Party Authentication واللي تعتبر شكل شائع من أشكال الـ Authentication هذه الأيام.
OpenID Connect
ال OpenID هو Authentication Protocol مبني فوق ال OAuth. وهو بيبقي عبارة عن خدمة بيقدمها Identity Provider وكل لما المستخدم يحتاج يدخل موقع بيرجع لموفر الخدمة يأخذ البيانات الأساسية زي الاسم والبريد والصورة الشخصية ويتأكد من هوية المستخدم.