تعرف على كيفية استخدام مفاتيح واجهة برمجة التطبيقات (API) وإدارتها لـ Firebase

مفتاح واجهة برمجة التطبيقات عبارة عن سلسلة فريدة تُستخدم لتوجيه الطلبات إلى مشروع Firebase عند التفاعل مع خدمات Firebase و Google. تصف هذه الصفحة المعلومات الأساسية حول مفاتيح واجهة برمجة التطبيقات بالإضافة إلى أفضل الممارسات لاستخدام وإدارة مفاتيح واجهة برمجة التطبيقات مع تطبيقات Firebase.

معلومات عامة حول مفاتيح API و Firebase

تختلف مفاتيح API لـ Firebase عن مفاتيح API النموذجية

على عكس كيفية استخدام مفاتيح واجهة برمجة التطبيقات عادةً ، لا تُستخدم مفاتيح واجهة برمجة التطبيقات لخدمات Firebase للتحكم في الوصول إلى موارد الواجهة الخلفية ؛ لا يمكن القيام بذلك إلا باستخدام قواعد أمان Firebase (للتحكم في المستخدمين الذين يمكنهم الوصول إلى الموارد) وفحص التطبيق (للتحكم في التطبيقات التي يمكنها الوصول إلى الموارد).

عادة ، تحتاج إلى حماية مفاتيح واجهة برمجة التطبيقات بدقة (على سبيل المثال ، باستخدام خدمة المخزن أو تعيين المفاتيح كمتغيرات البيئة) ؛ ومع ذلك ، لا بأس من تضمين مفاتيح API لخدمات Firebase في التعليمات البرمجية أو ملفات التكوين التي تم إيداعها.

على الرغم من أن مفاتيح API لخدمات Firebase آمنة لتضمينها في التعليمات البرمجية ، إلا أن هناك بعض الحالات المحددة التي يجب عليك فيها فرض قيود على مفتاح API الخاص بك ؛ على سبيل المثال ، إذا كنت تستخدم Firebase ML أو Firebase Authentication مع طريقة تسجيل الدخول بالبريد الإلكتروني / كلمة المرور أو Google Cloud API القابلة للفوترة. تعرف على المزيد حول هذه الحالات لاحقًا في هذه الصفحة.

إنشاء مفاتيح API

يمكن أن يحتوي مشروع Firebase على العديد من مفاتيح واجهة برمجة التطبيقات ، ولكن لا يمكن ربط كل مفتاح واجهة برمجة تطبيقات إلا بمشروع Firebase واحد.

مفاتيح API التي تم إنشاؤها تلقائيًا بواسطة Firebase لتطبيقات Firebase

يُنشئ Firebase تلقائيًا مفاتيح واجهة برمجة التطبيقات لمشروعك عندما تقوم بأي مما يلي:

  • أنشئ مشروع Firebase> Browser key الذي تم إنشاؤه تلقائيًا
  • أنشئ تطبيق Firebase Apple> iOS key الذي تم إنشاؤه تلقائيًا
  • أنشئ تطبيق Firebase Android> Android key الذي تم إنشاؤه تلقائيًا

يمكنك أيضًا إنشاء مفاتيح API الخاصة بك في Google Cloud Console ، على سبيل المثال للتطوير أو تصحيح الأخطاء . تعرف على المزيد حول الوقت الذي قد يُوصى فيه بهذا لاحقًا في هذه الصفحة.

البحث عن مفاتيح API الخاصة بك

يمكنك عرض وإدارة جميع مفاتيح واجهة برمجة التطبيقات الخاصة بمشروعك في واجهات برمجة التطبيقات والخدمات> لوحة بيانات الاعتماد في Google Cloud Console.

يمكنك أيضًا العثور على مفتاح واجهة برمجة التطبيقات الذي يتطابق تلقائيًا مع تطبيق Firebase في الأماكن التالية. بشكل افتراضي ، ستستخدم جميع تطبيقات Firebase الخاصة بمشروعك لنفس النظام الأساسي (Apple vs Android vs Web) مفتاح واجهة برمجة التطبيقات نفسه.

  • Firebase Apple Apps - ابحث عن مفتاح واجهة برمجة التطبيقات المطابق تلقائيًا للتطبيق في ملف تهيئة Firebase ، GoogleService-Info.plist ، في الحقل API_KEY .

  • تطبيقات Firebase Android - ابحث عن مفتاح API المطابق تلقائيًا للتطبيق في ملف تهيئة Firebase ، google-services.json ، في الحقل current_key .

  • تطبيقات الويب Firebase - ابحث عن مفتاح واجهة برمجة التطبيقات المطابق تلقائيًا للتطبيق في كائن تكوين apiKey ، في حقل مفتاح واجهة برمجة التطبيقات.

باستخدام مفتاح API

تُستخدم مفاتيح واجهة برمجة التطبيقات لتحديد مشروع Firebase عند التفاعل مع خدمات Firebase / Google. على وجه التحديد ، يتم استخدامها لربط طلبات واجهة برمجة التطبيقات (API) بمشروعك للحصول على الحصة والفواتير. كما أنها مفيدة للوصول إلى البيانات العامة.

على سبيل المثال ، يمكنك استخدام مفتاح API بشكل صريح عن طريق تمرير قيمته إلى استدعاء REST API كمعامل استعلام. يوضح هذا المثال كيف يمكنك تقديم طلب لواجهة برمجة تطبيقات تقصير الروابط الديناميكية :

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

عندما يجري تطبيقك اتصالاً بواجهة Firebase API ، سيبحث تطبيقك تلقائيًا في ملف / كائن تهيئة Firebase لمفتاح واجهة برمجة تطبيقات مشروعك. ومع ذلك ، يمكنك تعيين مفاتيح API الخاصة بك باستخدام آلية مختلفة ، بما في ذلك متغيرات البيئة.

تطبيق القيود على مفاتيح API (موصى به)

على الرغم من أنه ليس من الضروري التعامل مع مفتاح واجهة برمجة التطبيقات لخدمات Firebase على أنه سر ، إلا أن هناك بعض الحالات المحددة (انظر أدناه) التي قد ترغب فيها في اتخاذ تدابير إضافية لحماية مشروعك من إساءة استخدام مفتاح واجهة برمجة التطبيقات.

قم بتشديد الحصة النسبية إذا كنت تستخدم المصادقة المستندة إلى كلمة المرور

إذا كنت تستخدم مصادقة Firebase المستندة إلى كلمة المرور وحصل شخص ما على مفتاح API الخاص بك ، فلن يتمكن من الوصول إلى أي من قاعدة بيانات مشروع Firebase أو بيانات التخزين السحابي طالما أن هذه البيانات محمية بقواعد أمان Firebase . ومع ذلك ، يمكنهم استخدام مفتاح API الخاص بك للوصول إلى نقاط نهاية مصادقة Firebase وتقديم طلبات المصادقة على مشروعك.

للتخفيف من احتمالية أن يسيء شخص ما استخدام مفتاح واجهة برمجة التطبيقات لمحاولة هجوم القوة الغاشمة ، يمكنك تشديد الحصة الافتراضية لنقاط نهاية identitytoolkit.googleapis.com لتعكس توقعات حركة المرور العادية لتطبيقك. اعلم أنه إذا شددت هذه الحصة واكتسب تطبيقك مستخدمين فجأة ، فقد تحصل على أخطاء في تسجيل الدخول حتى تزيد الحصة. يمكنك تغيير حصص API الخاصة بمشروعك في Google Cloud Console .

استخدم مفاتيح API منفصلة ومقيدة لأنواع معينة من واجهات برمجة التطبيقات

على الرغم من أن مفاتيح API المستخدمة لخدمات Firebase لا تحتاج عمومًا إلى التعامل معها على أنها سرية ، إلا أنه يجب عليك اتخاذ بعض الاحتياطات الإضافية باستخدام مفاتيح واجهة برمجة التطبيقات المستخدمة لمنح الوصول إلى Google Cloud APIs التي قمت بتمكينها يدويًا.

إذا كنت تستخدم Google Cloud API (على أي نظام أساسي) لم يتم تمكينه تلقائيًا بواسطة Firebase (مما يعني أنك قمت بتمكينه بنفسك) ، فيجب أن تفكر في إنشاء مفاتيح API منفصلة ومقيدة للاستخدام مع واجهات برمجة التطبيقات هذه. هذا مهم بشكل خاص إذا كانت واجهة برمجة التطبيقات لخدمة Google Cloud قابلة للفوترة.

على سبيل المثال ، إذا كنت تستخدم Cloud Vision APIs الخاصة بـ Firebase ML على iOS ، فيجب عليك إنشاء مفاتيح API منفصلة تستخدمها فقط للوصول إلى Cloud Vision APIs.

باستخدام مفاتيح واجهة برمجة تطبيقات منفصلة ومقيدة لواجهات برمجة تطبيقات غير تابعة لـ Firebase ، يمكنك تدوير المفاتيح أو استبدالها عند الضرورة وإضافة قيود إضافية إلى مفاتيح واجهة برمجة التطبيقات دون تعطيل استخدامك لخدمات Firebase.

استخدام مفاتيح API الخاصة بالبيئة (موصى به)

إذا قمت بإعداد مشاريع Firebase مختلفة لبيئات مختلفة ، مثل التدريج والإنتاج ، فمن المهم أن يتفاعل كل مثيل تطبيق مع مشروع Firebase المقابل. على سبيل المثال ، يجب ألا يتحدث مثيل التطبيق المرحلي أبدًا مع مشروع Firebase الخاص بالإنتاج. هذا يعني أيضًا أن تطبيقك المرحلي يحتاج إلى استخدام مفاتيح API المرتبطة بمشروع Firebase المرحلي.

لتقليل المشكلات التي تروج لتغييرات الكود من التطوير إلى التدريج إلى الإنتاج ، بدلاً من تضمين مفاتيح API في الكود نفسه ، قم إما بتعيينها كمتغيرات بيئة أو تضمينها في ملف التكوين.

لاحظ أنه إذا كنت تستخدم Firebase Local Emulator Suite للتطوير جنبًا إلى جنب مع Firebase ML ، فيجب عليك إنشاء واستخدام مفتاح واجهة برمجة التطبيقات لتصحيح الأخطاء فقط. توجد تعليمات إنشاء هذا النوع من المفاتيح في مستندات Firebase ML .

أسئلة وأجوبة