Logo Logo
GitHub Designed by Logto

ما هو مفتاح API؟

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

كيف يعمل مفتاح API؟

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

curl -GET https://api.example.com/endpoint -H "Authorization: api-key YOUR_API_KEY"

مفاتيح API ليست فعالة مثل أشكال أخرى من مصادقة API، مثل OAuth 2.0 و رمز الويب جيسون (JSON Web Token, JWT) ، لكنها لا تزال تلعب دورًا مهمًا في مساعدة منتجي API على مراقبة الاستخدام لأنها الطريقة الأكثر بساطة وانتشارًا لتأمين APIs.

ما هي مزاياها وعيوبها؟

المزايا

  • سهلة التنفيذ: مفاتيح API سهلة التنفيذ والاستخدام. تتضمن إرفاق مفتاح بترويسة الطلب، مما يجعلها طريقة بسيطة للمطورين والعملاء لفهمها واستخدامها.
  • سهلة المراقبة: مفاتيح API سهلة المراقبة. يمكنك تتبع استخدام كل مفتاح وإلغائه إذا لزم الأمر.
  • فعالة في تحديد معدل الاستخدام: مفاتيح API فعالة في تحديد معدل الاستخدام. يمكنك تحديد حد لعدد الطلبات لكل مفتاح لمنع الإساءة.
  • مناسبة للبيانات غير الحساسة: مفاتيح API مناسبة للبيانات غير الحساسة أو APIs المتاحة للجمهور، حيث تكون متطلبات الأمان أقل.

العيوب

  • أمان محدود: مفاتيح API ليست آمنة بما يكفي للبيانات الحساسة، خاصة لتطبيقات الجانب العميل. غالبًا ما تُستخدم في الاتصالات من آلة إلى آلة.
  • غير مناسبة لمصادقة المستخدم: مفاتيح API مرتبطة بالتطبيقات أو الأنظمة، وليس بالمستخدمين الفرديين، مما يجعل من الصعب تحديد المستخدمين المحددين أو تتبع أفعالهم.
  • لا انتهاء صلاحية للرمز: مفاتيح API عادةً ما تكون ثابتة ولا تنتهي صلاحيتها. إذا تم اختراق مفتاح، يمكن أن يُساء استخدامه إلى أجل غير مسمى ما لم يتم تجديده يدويًا.

ما هي حالات الاستخدام لمفاتيح API؟

  • الاتصالات من خدمة إلى خدمة: مفاتيح API مناسبة للسيناريوهات التي تحتاج فيها التطبيقات إلى التواصل مع APIs مباشرة عبر CLIs. مثل استدعاء OpenAI APIs.
  • APIs العامة: عند عرض APIs للجمهور، توفر مفاتيح API طريقة بسيطة للتحكم في الوصول.
  • إعداد مبسط: لاحتياجات المصادقة السريعة والبسيطة، خاصة في مرحلة التطوير. على عكس مصادقة Machine-to-machine، لا تتطلب مفاتيح API تسجيل العميل مسبقًا، ولا تحتاج إلى التبادل للحصول على access token. فقط قم بتمرير مفتاح API الخاص بك كمعامل في طلبك وسيعمل ببساطة.

في السيناريوهات الواقعية، الغرض الأكثر شيوعًا عند بناء المنتجات هو تكامل المنتج. هنا حالة استخدام نموذجية:

مثال: التكامل مع Stripe

تستخدم Stripe مفاتيح API للتكامل الآمن مع المنصات والتطبيقات المختلفة. يمكنك إنشاء وعرض وحذف وإدارة هذه المفاتيح من خلال لوحة تحكم المطورين. باستخدام مفاتيح API، يمكنك دمج ميزات الدفع والفوترة الخاصة بـ Stripe في منتجك.

Stripe-integration-API keys.png

ما هو الفرق بين الرموز الشخصية للوصول (PAT) وMachine-to-Machine (M2M)؟

عند الحديث عن مفاتيح API، يمكن أيضًا ذكر الرموز الشخصية للوصول و اتصال الآلة بالآلة (Machine-to-machine) معًا لأنها جميعًا يمكنها الوصول برمجيًا إلى موارد API من خلال أوامر CLI، أو إنشاء اتصال بين خدمات الخلفية.

الرموز الشخصية للوصول (PATs)

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

Machine-to-Machine (M2M)

الاتصال M2M هو عندما تتبادل الأجهزة البيانات تلقائيًا دون تدخل بشري بمعنى أوسع.

في سياق OpenID Connect (OIDC) (أو OAuth 2.0 )، تستخدم تطبيقات M2M تدفق بيانات الاعتماد للعميل (Client credentials flow) ، كما هو محدد في بروتوكول OAuth 2.0 RFC 6749 ، والذي يدعم بروتوكولات قياسية مماثلة. عادةً ما يتضمن تطبيق العميل (آلة أو خدمة) الوصول إلى الموارد إما بمفرده أو نيابة عن مستخدم. إنه مثالي للمواقف التي يمكن فيها للعملاء الموثوق بهم فقط الوصول إلى خدمات الخلفية.

انظر أيضا