ما هي واجهة برمجة التطبيقات للإدارة (Management API)؟
يمكن أن يختلف تعريف واجهة برمجة التطبيقات للإدارة (Management API) اعتمادًا على البرنامج أو الخدمة التي تستخدمها. في سياق إدارة الهوية والتحكم في الوصول (IAM)، تشير واجهة برمجة التطبيقات للإدارة (Management API) عادةً إلى مجموعة من واجهات برمجة التطبيقات التي تمكنك من إدارة الموارد المتعلقة بـ IAM برمجياً. على سبيل المثال، المستخدمين، التطبيقات، الأدوار، التصاريح، المنظمات، إلخ.
بينما لا يحدد الاسم التنفيذ الدقيق، تكون واجهة برمجة التطبيقات للإدارة عادةً RESTful، نظرًا لطبيعتها التي تحدد بدقة الموارد والعمليات التي يمكن تنفيذها عليها. بمعنى أنه عندما ترى POST /users
، يمكنك توقع أن هذه المكالمة لإنشاء مستخدم جديد.
لماذا تُعتبر واجهة برمجة التطبيقات للإدارة (Management API) مهمة؟
تُنشئ واجهة برمجة التطبيقات للإدارة (Management API) طبقة تجريد منفصلة فوق نظام IAM، ولكن أسفل واجهة المستخدم. يتيح هذا للمطورين أتمتة إدارة موارد IAM، وهو ما يمكن أن يكون مفيدًا بشكل خاص في العديد من السيناريوهات:
1. الأتمتة
كما يوحي الاسم، تتيح واجهة برمجة التطبيقات للإدارة (Management API) لك استخدام الكود لإدارة الموارد، بدلاً من النقر يدويًا عبر واجهة المستخدم. يكون ذلك مفيداً بشكل خاص عندما يكون لديك عدد كبير من المستخدمين أو التطبيقات أو الأدوار لإدارتها. على سبيل المثال، يمكنك كتابة برنامج نصي لاستيراد المستخدمين من ملف CSV وتعيينهم إلى الأدوار والتصاريح الصحيحة.
2. التكامل
تُنشئ واجهة برمجة التطبيقات للإدارة (Management API) طريقة قياسية للتواصل من خدمة إلى خدمة (أو من آلة إلى آلة). عندما يكون لديك خدمات متعددة تحتاج إلى التواصل مع نظام IAM، بدلاً من تنفيذ تكاملات مخصصة لكل خدمة، يمكن استخدام واجهة برمجة التطبيقات للإدارة المصممة جيدًا لجميع الخدمات عبر دمج مكالمات API. على سبيل المثال، يمكن لخدمة تحتاج إلى سرد جميع المستخدمين تحت دور معين القيام بذلك عن طريق استدعاء GET /roles/{role_id}/users
.
3. التركيب وتوسيع الميزات
بسبب تنوع متطلبات الأعمال، قد لا يتمكن نظام IAM من توفير جميع الميزات المطلوبة بالضبط، خاصة عندما يتعلق الأمر بمتطلبات التحكم في الوصول المعقدة. تتيح واجهة برمجة التطبيقات للإدارة (Management API) لك بناء ميزات مخصصة فوق نظام IAM القائم دون تعديل المنصة أو الهيكل الأساسي.
لنرى مثالًا يوميًا: يحتاج المستخدمون النهائيون إلى تغيير عنوان بريدهم الإلكتروني. قد تحتوي التطبيقات المختلفة على متطلبات مختلفة:
- يتطلب التطبيق A من المستخدم التحقق من كلا عنواني البريد الإلكتروني القديم والجديد.
- يتطلب التطبيق B من المستخدم التحقق من كلمة المرور الحالية قبل تغيير عنوان البريد الإلكتروني.
- يتطلب التطبيق C من المستخدم التحقق من كلمة المرور الحالية ومن مشرف الموافقة على تغيير البريد الإلكتروني.
مع واجهة برمجة التطبيقات للإدارة (Management API)، يمكنك بناء خدمة مخصصة تنسق هذه المتطلبات عبر استدعاء واجهات برمجة التطبيقات اللازمة بالترتيب الصحيح. يمكنك حتى دمج واجهة برمجة التطبيقات للإدارة مع API الخاص بخدمتك لتحقيق تدفق عمل معقد. لنأخذ التطبيق C كمثال:
- ينقر المستخدم على “تغيير البريد الإلكتروني” في التطبيق C، والذي يرسل طلبًا
POST /email-change-requests
إلى خدمتك. تُنشئ طلب تغيير بريد إلكتروني جديد وتعيد المعرفfoo
. - يعرض التطبيق C حوارًا للمستخدم يطلب منه إدخال كلمة المرور الحالية.
- يدخل المستخدم كلمة المرور، ويُرسل التطبيق C طلبًا
PATCH /email-change-requests/foo
إلى خدمتك مع كلمة المرور. في الخلفية، تتحقق خدمتك من كلمة المرور عبر استدعاء واجهة برمجة التطبيقات للإدارةPOST /users/{user_id}/verify-password
. - إذا كانت كلمة المرور صحيحة، تُنشئ خدمتك سجل تحقق ناجح في طلب تغيير البريد الإلكتروني
foo
. - في لوحة الإدارة، يمكن للمشرف رؤية طلبات تغيير البريد الإلكتروني المعلقة عبر
GET /email-change-requests?status=pending
. - إذا وافق المسؤول على الطلب، ترسل لوحة الإدارة طلبًا
PATCH /email-change-requests/foo
إلى خدمتك بموافقة المشرف. - ستقوم خدمتك بعد ذلك باستدعاء واجهة برمجة التطبيقات للإدارة
PATCH /users/{user_id}
لتحديث عنوان البريد الإلكتروني للمستخدم. إذا لم يُمكن تحديث عنوان البريد الإلكتروني، سترجع واجهة برمجة التطبيقات للإدارة خطأً، ويمكن لخدمتك التعامل معه وفقًا لذلك.
لاحظ أنه في المثال أعلاه، لا يتفاعل المستخدمون النهائيون أبدًا مع واجهة برمجة التطبيقات للإدارة (Management API) مباشرة. بدلاً من ذلك، يتفاعلون مع التطبيق C، الذي ينسق مكالمات واجهة برمجة التطبيقات للإدارة في الخلفية لتحقيق تدفق العمل المطلوب.
كيف يجب أن تكون واجهة برمجة التطبيقات للإدارة (Management API) الجيدة؟
- RESTful: اتبع مبادئ RESTful لجعل واجهة برمجة التطبيقات متوقعة وسهلة الاستخدام.
- مبنية على الموارد: مثل الموارد بالأسماء واستخدام أساليب HTTP لتنفيذ الإجراءات عليها.
- متسقة: استخدم تسميات موقعة وقواعد تعامل مع الأخطاء واستجابة متسقة.
- آمنة: قم بتنفيذ آليات المصادقة (Authentication) والتخويل (Authorization) الصحيحة لحماية واجهة برمجة التطبيقات.
- موثقة: قدم وثائق واضحة وموجزة حول كيفية استخدام واجهة برمجة التطبيقات، بما في ذلك الأمثلة وحالات الاستخدام.
- متوافقة: تأكد من التوافق الخلفي عند تقديم إصدارات جديدة من واجهة برمجة التطبيقات.
- شاملة: غطِ جميع العمليات اللازمة لإدارة موارد IAM بشكل فعال.
هناك جوانب أخرى مثل الأداء وقابلية التوسع، والتي تتعلق أكثر بالبنية التحتية بدلاً من تصميم واجهة برمجة التطبيقات نفسها. ومع ذلك، من الناحية العملية، يجب أن تأخذ واجهة برمجة التطبيقات للإدارة الجيدة في اعتبارها هذه الجوانب أيضًا.