إنشاء الأدوار باستخدام واجهة برمجة التطبيقات

أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

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

لمحة عن إعدادات الأذونات

ويتم تعيين أذونات الأدوار على معرّفات الموارد المنتظمة (URI) لإدارة واجهة برمجة التطبيقات (وليس إدارة معرّفات الموارد المنتظمة (URI) لواجهة المستخدم). على سبيل المثال، إذا أردت ضبط أذونات PUT و/أو GET و/أو DELETE على كيانات مطوّري التطبيقات في مؤسستك على Edge ، عليك ضبط الأذونات على مورد /developers، لأنّ مسار واجهة برمجة التطبيقات لإدارة المطوّرين هو https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers. (لا تحتاج إلى تضمين جزء المؤسسة من المسار عند تحديد الأذونات، لأنّه يتم تحديد نطاق الأذونات لمؤسّسة معيّنة، كما توضّح طلبات بيانات واجهة برمجة التطبيقات لإدارة الخدمات في هذا الموضوع ).

يمكنك أيضًا ضبط الأذونات على كيانات معيّنة. على سبيل المثال:

  • إذا كنت تريد ضبط الأذونات لمطوِّر واحد، اضبطها على /developers/steve@example.com
  • بالنسبة إلى منتج معيّن من واجهات برمجة التطبيقات، مثل free-api-product، اضبطهما على /apiproducts/free-api-product.
  • بالنسبة إلى خريطة القيم الرئيسية في بيئة معيّنة، يمكنك تعيين إذن لشيء مثل /environments/test/keyvaluemaps/fooMap، أو /environments/test/keyvaluemaps/* لكل خرائط القيم الرئيسية في الاختبار محددة.

الأذونات التي تحدّدها باستخدام واجهة برمجة التطبيقات:

  • اسمح للمستخدمين الذين لديهم دور مخصّص بإجراء طلبات بيانات من واجهة برمجة التطبيقات للإدارة وفقًا لأذوناتهم. على سبيل المثال، إذا كان الدور يسمح بالوصول للقراءة فقط إلى جميع الخوادم الوكيلة لواجهة برمجة التطبيقات، يمكن لأي مستخدم في هذا الدور استخدام واجهة برمجة التطبيقات List API Proxies ولكن لا واجهة برمجة تطبيقات إنشاء خادم وكيل لواجهة برمجة التطبيقات
  • يمكنك تحديد ما يمكن للمستخدمين في دور مخصَّص الاطّلاع عليه وتنفيذه في واجهة مستخدم الإدارة. على سبيل المثال، يؤدي الوصول للقراءة فقط إلى الخوادم الوكيلة لواجهة برمجة التطبيقات إلى إيقاف إمكانية الوصول إلى الزرَّين "خادم وكيل لواجهة برمجة التطبيقات" و"حذف" في صفحة الخوادم الوكيلة لواجهة برمجة التطبيقات.

لمعرفة الموارد والمسارات التي يمكنك ضبط أذونات عليها، يمكنك الاطّلاع على مرجع واجهة برمجة التطبيقات لإدارة واجهة برمجة التطبيقات في عناوين URL للموارد المختلفة.

اطّلِع على واجهة برمجة تطبيقات أدوار المستخدمين للحصول على معلومات مرجعية كاملة عن إدارة الأدوار.

البنية والأسبقية

يمكنك استخدام حرف البدل النجمة (*) للإشارة إلى "كل ما يلي" في إعداد الإذن. ومع ذلك، إذا ضبطت الأذونات على مورد رئيسي فقط (مثل ‎/developers) بدون ضبط أي أذونات أكثر تحديدًا (مثل ‎/developers/*)، ينطبق الإذن على كل المحتوى من ‎/developers فصاعدًا.

تُستخدَم PUT أيضًا كطلب POST في الأذونات.

يمكنك الجمع بين أذونات عامة وأذونات أكثر دقة في الموارد. تكون للإعدادات الأكثر دقة الأولوية في حال تداخل الأذونات. على سبيل المثال، لنفترض أنّه تم ضبط الأذونات التالية على دور "مطوّر إداري":

  • وضع علامة على /developers
  • انتقِل إلى /developers/*

يعني هذا أنّه يمكن لمشرف المطوّر:

  • أن تنشئ مطوّر برامج، ولا تعدِّل أي مطوّرين محدّدين أو أي كيانات فرعية (بسبب الحصول على إذن GET أكثر تحديدًا في هذا المسار).
  • الحصول على أي مطوّر أو كيان فرعي، ولكن لا يمكنك الحصول على قائمة بجميع المطوّرين

يمكنك الاطّلاع على مرجع الأذونات للحصول على قائمة كاملة بالأذونات التي يمكنك ضبطها باستخدام واجهة برمجة التطبيقات.

أنشئ دورًا مخصّصًا جديدًا باسم "تطوير".

أنشئ دور "تطوير" لتفعيل المطوّرين لعرض وإنشاء وتعديل الوكلاء لـ API.

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "development" } ] }'

إضافة أذونات إلى دور المطوّر

الأذونات التي يمكن ضبطها على مجموعة كاملة من عناصر Edge (مثل كل /apps، /apis و/apiproducts وما إلى ذلك) بالإضافة إلى عناصر فردية (مثل تطبيق أو واجهة برمجة تطبيقات) أو خادم واجهة برمجة التطبيقات) هي GET وPUT وDELETE.

تتيح عملية GET للمستخدمين عرض أي من واجهات برمجة التطبيقات، بما في ذلك ملفات إعداد الخادم الوكيل لواجهة برمجة التطبيقات، المرتبطة وJavaScript وملفات WebRTC وما إلى ذلك. يتيح إذن PUT في واجهات برمجة التطبيقات للمطوّرين إنشاء الخوادم الوكيلة لواجهة برمجة التطبيقات وتعديلها واستيرادها وتصديرها ونشرها وإلغاء نشرها

تحدّد سمة المسار العنصر الذي يمكنك إعداد الأذونات عليه. على سبيل المثال: /applications أو /apps أو /apiproducts أو /developers أو /reports.

curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/development/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "put", "get" ]}'

إنشاء دور: الاختبار

أنشئ دور "اختبار" لتفعيل قدرة مهندسي الجودة على عرض الوكلاء لـ API ومحتوياتها (بما في ذلك، على سبيل المثال، السياسات).

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "testing" } ] }'

إضافة أذونات إلى دور الاختبار

تتيح طلبات GET للمستخدمين عرض أي واجهات برمجة تطبيقات، بما في ذلك ملفات الإعدادات، بالإضافة إلى أيّ سياسات مرتبطة وملفات JavaScript وXSLT وما إلى ذلك. من خلال إضافة هذا الإذن إلى دور "الاختبار"، نتيح لمهندسي الجودة عرض محتوى واجهات برمجة التطبيقات التي يتم اختبارها. ومع ذلك، لن يتمكّن المستخدمون الذين لديهم هذا الدور من إنشاء وتعديل واستيراد وتصدير ونشر وإلغاء نشر الوكلاء لواجهة برمجة التطبيقات.

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/testing/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "get" ]}'

بالنسبة إلى تثبيت Edge داخل المؤسسة، يجب ضبط الحد الأدنى من مجموعة الأذونات التي يجب ضبطها على للسماح للمستخدم بتسجيل الدخول إلى واجهة مستخدم Edge هي:

{"path" : "/","permissions" : [ "get" ]}
{"path" : "/*","permissions" : [ ]}
{"path" : "/environments","permissions" : [ "get" ]}
{"path" : "/userroles","permissions" : [ "get" ]}

استخدِم أمر cURL التالي لضبط هذه الأذونات:

curl -H "Content-Type:application/json" -u email:password \
-X POST \
http://<ms-IP>:8080/v1/organizations/{org_name}/userroles/testing/resourcepermissions  \
-d '{
 "resourcePermission" : [ 
   {
    "path" : "/",
    "permissions" : [ "get" ]
   }, 
{
    "path" : "/*",
    "permissions" : []
   },
{
    "path" : "/environments",
    "permissions" : [ "get" ]
   },
   {
    "path" : "/userroles",
    "permissions" : [ "get"]
   }
  ]
}'

حيث يكون <ms-IP> هو عنوان IP أو اسم نظام أسماء النطاقات لخادم إدارة Edge.

إضافة مستخدم إلى دور الاختبار

لتوفير مستخدم لديه دور مستخدم:

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "testing"} ] }'

عرض واجهات برمجة التطبيقات كمستخدم

انتحال هوية المستخدم وتقديم طلب إلى واجهة برمجة التطبيقات الخدمات لعرض الخوادم الوكيلة لواجهة برمجة التطبيقات. يجب أن يتمكّن المستخدم من عرض واجهات برمجة التطبيقات بالإضافة إلى محتوياتها.
$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis
$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/policies

إنشاء واجهة برمجة التطبيقات كمستخدم في دور الاختبار

انتحال هوية المستخدم وتقديم طلب إلى "خدمات واجهة برمجة التطبيقات" لإنشاء خادم وكيل لواجهة برمجة التطبيقات. الطلب عن طريق خدمات واجهة برمجة التطبيقات، حيث إن الدور "اختبار" لا تسمح للمستخدم بإنشاء واجهات برمجة التطبيقات.

$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'

إضافة مستخدم إلى دور التطوير

الآن، يمكنك منح المستخدم دور "التطوير".

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "development"} ] }'

إنشاء واجهة برمجة التطبيقات كمستخدم في دور التطوير

تنتحل هوية المستخدم وكرِّر الطلب إلى منصة واجهة برمجة التطبيقات لإنشاء خادم وكيل لواجهة برمجة التطبيقات. سيتم تنفيذ الطلب، لأنّ دور "التطوير" يسمح للمستخدم بإنشاء واجهات برمجة التطبيقات.

$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'

الحصول على أدوار المستخدمين لمستخدم معيّن

بصفتك مشرفًا في مؤسسة، يمكنك الاطّلاع على قائمة أدوار المستخدمين لأحد المستخدمين (في جميع المؤسسات) في أي وقت:

$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles