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

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

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

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

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

يمكنك أيضًا ضبط الأذونات لعناصر محدّدة. مثلاً:

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

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

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

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

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

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

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

يعد وضع PUT أيضًا بمثابة POST في الأذونات.

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

  • استخدام /developers
  • الانتقال إلى /developers/*

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

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

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

إنشاء دور مخصَّص جديد باسم "التطوير"

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

$ 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 وغيرها. يتيح إذن وضع البرامج في واجهات برمجة التطبيقات للمطوّرين إنشاء الخوادم الوكيلة لواجهة برمجة التطبيقات وتعديلها واستيرادها وتصديرها ونشرها وإلغاء نشرها.

تحدد سمة المسار العنصر الذي ضبط الأذونات عليه. على سبيل المثال، /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" ]}'

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

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

$ 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، وملفات WebRTC، وما إلى ذلك. ومن خلال إضافة هذا الإذن إلى دور "الاختبار"، نتيح لمهندسي الجودة الاطّلاع على محتوى واجهات برمجة التطبيقات التي يختبرونها. ومع ذلك، لن يتمكّن المستخدمون في هذا الدور من إنشاء خوادم وكيلة لواجهة برمجة التطبيقات وتعديلها واستيرادها وتصديرها ونشرها وإلغاء نشرها.

$ 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"} ] }'

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

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

$ 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