أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
يتناول هذا الموضوع كيفية إنشاء أدوار مخصّصة وإسناد الأدوار إلى المستخدمين من خلال Management API. ونوضّح أيضًا كيفية اختبار عمليات إسناد الأدوار من خلال واجهة برمجة التطبيقات. (للحصول على نظرة عامة حول الأدوار المخصّصة، يُرجى الاطّلاع على إنشاء أدوار مخصّصة في واجهة المستخدم).
لمحة عن إعدادات الأذونات
يتم ضبط أذونات الأدوار على معرّفات الموارد المنتظمة (URI) الخاصة بواجهة برمجة التطبيقات للإدارة (وليس معرّفات الموارد المنتظمة الخاصة بواجهة مستخدم الإدارة). على سبيل المثال، إذا أردت ضبط أذونات PUT وGET و/أو DELETE على كيانات مطوّري التطبيقات في مؤسستك على Edge، عليك ضبط الأذونات على المورد /developers، لأنّ مسار Management API لـ المطوّرين هو https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers.
(ليس عليك تضمين جزء المؤسسة من المسار عند تحديد الأذونات، لأنّ الأذونات تقتصر على مؤسسة معيّنة، كما توضّح طلبات بيانات من واجهة برمجة التطبيقات Management API في هذا الموضوع).
يمكنك أيضًا ضبط الأذونات على كيانات معيّنة. على سبيل المثال:
- إذا أردت ضبط الأذونات لمطوّر واحد، يمكنك ضبطها على
/developers/steve@example.com - بالنسبة إلى منتج معيّن لواجهة برمجة التطبيقات، مثل free-api-product، اضبطها
على
/apiproducts/free-api-product - بالنسبة إلى خريطة قيم المفاتيح في بيئة معيّنة، يمكنك ضبط الإذن على شيء مثل
/environments/test/keyvaluemaps/fooMapأو/environments/test/keyvaluemaps/*لجميع خرائط قيم المفاتيح في بيئة الاختبار.
الأذونات التي تضبطها باستخدام واجهة برمجة التطبيقات:
- يمكنك السماح للمستخدمين الذين لديهم دور مخصّص بإجراء طلبات بيانات من واجهة برمجة التطبيقات للإدارة وفقًا لأذوناتهم. على سبيل المثال، إذا كان الدور يمنح إذنًا بالقراءة فقط لجميع الخوادم الوكيلة لواجهة برمجة التطبيقات، يمكن لمستخدم لديه هذا الدور استخدام واجهة برمجة التطبيقات List API Proxies، ولكن لا يمكنه استخدام واجهة برمجة التطبيقات Create an API Proxy.
- تحديد ما يمكن للمستخدمين في دور مخصّص الاطّلاع عليه وتنفيذه في واجهة مستخدم الإدارة على سبيل المثال، يؤدي منح إذن بالقراءة فقط إلى الخوادم الوكيلة لواجهة برمجة التطبيقات إلى إيقاف الوصول إلى الزرَّين "+ خادم وكيل لواجهة برمجة التطبيقات" و"حذف" في صفحة "الخوادم الوكيلة لواجهة برمجة التطبيقات".
للاطّلاع على الموارد والمسارات التي يمكنك ضبط الأذونات عليها، يمكنك الاطّلاع على مرجع Management API في عناوين URL المختلفة للموارد.
يمكنك الاطّلاع على واجهة برمجة التطبيقات أدوار المستخدمين للحصول على معلومات مرجعية كاملة حول إدارة الأدوار.
بناء الجملة والأسبقية
يمكنك استخدام حرف البدل النجمة (*) للإشارة إلى "كل شيء بعد" في إعدادات الأذونات. ومع ذلك، إذا ضبطت الأذونات على مورد رئيسي فقط (مثل /developers) بدون ضبط أي أذونات أكثر تحديدًا (مثل /developers/*)، سيتم تطبيق الإذن على كل ما يندرج ضمن /developers وما بعده.
يُستخدَم PUT أيضًا كـ POST في الأذونات.
يمكنك الجمع بين الأذونات العامة والأذونات الأكثر دقة على الموارد. وتكون للإعدادات الأكثر دقة الأولوية في حال تداخل الأذونات. على سبيل المثال، لنفترض أنّه تم ضبط الأذونات التالية لدور "developeradmin":
- PUT على /developers
- GET on /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 وXSLT وما إلى ذلك. يتيح إذن 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" ]}'
إنشاء دور: الاختبار
أنشئ دور "اختبار" لتمكين مهندسي الجودة من عرض الخوادم الوكيلة لواجهة برمجة التطبيقات ومحتواها (بما في ذلك السياسات على سبيل المثال).
$ 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 Management Server.
إضافة مستخدم إلى دور الاختبار
لتوفير مستخدم بدور مستخدم:
$ 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