أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
يتناول هذا الموضوع كيفية إنشاء أدوار مخصّصة وتعيين أدوار للمستخدمين من خلال واجهة برمجة التطبيقات الخاصة بالإدارة. نوضّح أيضًا كيفية اختبار عمليات إسناد الأدوار من خلال واجهة برمجة التطبيقات. (للحصول على نظرة عامة حول الأدوار المخصّصة، يُرجى الاطّلاع على إنشاء أدوار مخصّصة في واجهة المستخدم).
لمحة عن إعدادات الأذونات
يتم ضبط أذونات الأدوار على معرّفات الموارد المنتظمة (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 ولكن ليس واجهة برمجة التطبيقات Create an API Proxy.
- تحديد ما يمكن للمستخدمين الذين لديهم دور مخصّص الاطّلاع عليه وتنفيذه في واجهة مستخدم الإدارة على سبيل المثال، يؤدي الإذن بالاطّلاع فقط على خوادم وكيلة لواجهة برمجة التطبيقات إلى إيقاف الزرَّين "إضافة خادم وكيل لواجهة برمجة التطبيقات" و"حذف" في صفحة "خوادم وكيلة لواجهة برمجة التطبيقات".
للاطّلاع على الموارد والمسارات التي يمكنك ضبط الأذونات عليها، راجِع مرجع واجهة برمجة التطبيقات الإدارية في عناوين URL المختلفة للموارد.
راجِع واجهة برمجة التطبيقات أدوار المستخدمين للحصول على معلومات مرجعية كاملة حول إدارة الأدوار.
بنية الجملة والأولوية
يمكنك استخدام حرف البدل النجمة (*) للإشارة إلى "كل ما يلي" في إعدادات الأذونات. ومع ذلك، إذا ضبطت الأذونات على مصدر رئيسي فقط (مثل /developers) بدون ضبط أي أذونات أكثر تحديدًا (مثل /developers/*)، سينطبق الإذن على كل شيء بدءًا من /developers وما بعده.
يعمل PUT أيضًا كـ POST في الأذونات.
يمكنك الجمع بين الأذونات العامة والأكثر دقة على الموارد. وتكون الأولوية للإعدادات الأكثر دقة في حال تداخل الأذونات. على سبيل المثال، لنفترض أنّه تم ضبط الأذونات التالية على دور "developeradmin":
- PUT على /developers
- GET على /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 (مثل all /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