العربية
  • api-keys
  • personal-access-tokens
  • machine-to-machine
  • service-to-service
  • backend-to-backend
  • authentication
  • authorization
  • security
  • jwt
  • oauth2
  • rbac

المصادقة البرمجية: مفتاح API، رمز الوصول الشخصي، وتدفق بيانات اعتماد العميل لـ OAuth

اكتشف المفاهيم الأساسية والاستخدامات الشائعة لمفتاح API، والرمز الشخصي للوصول (PAT)، وبيانات اعتماد Logto من آلة إلى آلة (M2M).

Charles
Charles
Developer

الخلفية

في تطوير البرمجيات، عندما نحتاج إلى الوصول إلى موارد API برمجياً من خلال أوامر CLI، أو نريد إقامة اتصال بين خدمات الواجهة الخلفية، هناك عادة ثلاث آليات للمصادقة شائعة الاستخدام بين المطورين: مفتاح API، الرمز الشخصي للوصول (PAT)، وتدفق بيانات اعتماد العميل لـ OAuth (المعروف باسم Machine-to-Machine في Logto). لكن ما هي الاختلافات بينها؟ وما هو السيناريو الأنسب لكل من هذه الطرق؟ في هذه المدونة، سنتعمق في أوجه التشابه والاختلاف، ونقدم رؤى حول متى يجب استخدام كل منها في سيناريوهات مختلفة.

التعريفات

  • مفتاح API: عبارة عن سلسلة بسيطة يمكنها تصديق طلبك لمورد API.
  • رمز الوصول الشخصي (PAT): أيضًا عبارة عن سلسلة بسيطة تمثل المستخدم عند استخدامها للمصادقة على مورد API. يعتبر تفويضًا للمستخدم.
  • Logto Machine-to-Machine (Logto M2M): تدفق بيانات اعتماد العميل لـ OAuth القياسي، والذي يتطلب تسجيل العميل مسبقًا، ويتطلب استخدام معرف العميل والسر لتبادل رمز الوصول. وبالتالي، يمثل اعتماد Logto M2M عميلًا موثوقًا ويرجع ذلك إلى الطبيعة المعقدة نسبيًا لتدفق بيانات اعتماد العميل لـ OAuth عند استخدامها.

أوجه التشابه

1. غرض المصادقة

  • جميع الثلاثة، مفتاح API، PAT، و Logto M2M، تخدم الغرض الأساسي لمصادقة المستخدم أو التطبيق للوصول إلى خدمة محددة أو مورد. إنها تعمل كبيانات اعتماد لإثبات هوية الطالب، وعادةً ما تستخدم في أوامر CLI أو سيناريوهات الاتصال من الخلف إلى الخلف.

2. إجراءات الأمان

  • يجب التعامل مع جميع طرق المصادقة الثلاثة هذه بعناية أمنية. يجب على المطورين ضمان التخزين والنقل الآمن لمنع الوصول غير المصرح به.

الاختلافات

1. سياق المستخدم

  • لا يحدد مفتاح API مبدأً، ولا يوفر أي معلومات تفويض. لذلك، غالبًا ما يتم استخدام مفاتيح API للوصول إلى البيانات العامة أو الموارد بشكل مجهول. لا يتم دعم جميع الخدمات من خلال استخدام مفاتيح API.
  • PAT يمثل هويات المستخدمين ويمثلك عند استخدامه لطلب مورد API. في بعض الأنظمة، لا يُسمح لـ PAT بالوصول إلى خدمات معينة. على سبيل المثال، نشر حزم NuGet على خدمة مخزن Azure Artifacts.
  • لا يمكن استخدام بيانات اعتماد Logto M2M إلا من قبل العملاء الموثوقين. يجب تسجيل العميل مسبقًا ليتم مصادقته. عند استخدام بيانات اعتماد Logto M2M، فإنها تمثل العميل الموثوق بدلاً من المستخدم الذي يستخدمها.

2. دقة الأذونات

  • PAT وبيانات اعتماد Logto M2M عادةً ما توفر تحكمًا أكثر تحديدًا في الأذونات مقارنة بمفتاح API، مما يسمح بالتحكم الدقيق في الإجراءات التي يمكن تنفيذها.

3. تنسيق الرموز

  • عادةً ما يكون مفتاح API و PAT عبارة عن سلاسل غير شفافة، بسيطة وسهلة.
  • رموز الوصول التي تصدر من خلال آلية Logto M2M غالبًا ما تكون بتنسيق JWT.

4. تدفق التفويض

  • مفتاح API و PAT عبارة عن سلاسل غير شفافة تُنتج بواسطة النظام، ولا تتضمن عمليات المصادقة أثناء العملية. على سبيل المثال، يمكنك استدعاء واجهة برمجة تطبيقات اللغة الطبيعية من Google Cloud مثل هذه:
  • يستخدم Logto M2M تدفق بيانات اعتماد العميل لـ OAuth 2.0. يحتاج كل عميل إلى الحصول مسبقًا على زوج من معرف العميل وسر العميل، يمكن للعميل من خلالهما تبادل رمز الوصول لاحقًا. يستخدم العميل بعد ذلك رمز الوصول للوصول إلى مورد API.

متى نستخدم كل منها

مفتاح API

  • الاتصال من الخدمة إلى الخدمة: مفاتيح API مناسبة للسيناريوهات حيث تحتاج التطبيقات إلى التواصل مباشرة مع واجهات برمجة التطبيقات من خلال واجهات سطر الأوامر. مثل استدعاء واجهات برمجة التطبيقات OpenAI.
  • واجهات برمجة التطبيقات العامة: عند عرض واجهات برمجة التطبيقات للجمهور، توفر مفاتيح API طريقة بسيطة للتحكم في الوصول.
  • إعداد مبسط: لاحتياجات المصادقة السريعة والبسيطة، خاصة في مرحلة التطوير. على عكس Logto M2M، لا تتطلب مفاتيح API تسجيل العملاء مسبقًا، ولا تحتاج إلى تبادل للحصول على رمز الوصول أيضًا. فقط تمرر مفتاح API الخاص بك كمعامل في طلبك ويعمل ببساطة.

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

  • الإجراءات الخاصة بالمستخدم: عندما يحتاج التطبيق إلى إجراء عمليات نيابة عن مستخدم.
  • التحكم الدقيق في الوصول (المستخدم): عندما يتطلب الأمر التحكم الدقيق في العمليات التي يمكن للمستخدم تنفيذها.

Logto Machine-to-Machine (Logto M2M)

  • الأمان: يعتبر Logto M2M مثاليًا للسيناريوهات التي يُسمح فيها فقط للعملاء الموثوق بهم بالوصول إلى الخدمات الخلفية.
  • التحكم الدقيق في الوصول (العميل): عندما يتطلب الأمر التحكم الدقيق في العمليات التي يمكن للتطبيق تنفيذها.

الخلاصة

باختصار، يعتمد الاختيار بين مفاتيح API و PAT و Logto M2M على المتطلبات الخاصة بتطبيقك، سواء كان ذلك ينطوي على عمليات خاصة بالمستخدم، أو الاتصال من آلة إلى آلة، أو مزيج من الاثنين. قم بتقييم احتياجات الأمان والوظائف لتحديد طريقة المصادقة المناسبة لحالة استخدامك.

تتيح آلية Logto M2M للمستخدمين تعيين ضوابط وصول دقيقة على ميزة RBAC (التحكم في الوصول القائم على الأدوار). نحن نخطط أيضًا لدعم مفتاح API و PAT في المستقبل القريب. يرجى متابعة تحديثات الميزات الخاصة بنا!