ایجاد نقش با API

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

این مبحث به نحوه ایجاد نقش‌های سفارشی و اختصاص نقش‌ها به کاربران از طریق API مدیریت می‌پردازد. همچنین نحوه آزمایش تخصیص نقش‌ها از طریق API را نشان می‌دهیم. (برای مرور کلی نقش‌های سفارشی، به ایجاد نقش‌های سفارشی در رابط کاربری مراجعه کنید.)

درباره تنظیم مجوز

مجوزهای نقش روی URIهای API مدیریت تنظیم می‌شوند (نه URIهای رابط کاربری مدیریت). برای مثال، اگر می‌خواهید مجوزهای PUT، GET و/یا DELETE را روی موجودیت‌های توسعه‌دهنده برنامه در سازمان Edge خود تنظیم کنید، باید مجوزها را روی منبع /developers تنظیم کنید، زیرا مسیر API مدیریت برای توسعه‌دهندگان https://api.enterprise.apigee.com/v1/organizations/{org_name} /developers است. (نیازی نیست هنگام تعریف مجوزها، بخش سازمان را در مسیر وارد کنید، زیرا مجوزها به یک سازمان خاص محدود می‌شوند، همانطور که API مدیریت در این مبحث نشان می‌دهد.)

همچنین می‌توانید برای موجودیت‌های خاص مجوز تنظیم کنید. برای مثال:

  • اگر می‌خواهید مجوزها را فقط برای یک توسعه‌دهنده تنظیم کنید، آنها را روی /developers/steve@example.com تنظیم کنید.
  • برای یک محصول API خاص، مانند free-api-product، آنها را روی /apiproducts/free-api-product تنظیم کنید.
  • برای یک نگاشت کلید-مقدار در یک محیط خاص، باید مجوزی مانند /environments/test/keyvaluemaps/fooMap یا /environments/test/keyvaluemaps/* برای همه نگاشت‌های کلید-مقدار در محیط تست تنظیم کنید.

مجوزهایی که با استفاده از API تنظیم می‌کنید:

  • به کاربران در یک نقش سفارشی اجازه دهید تا بر اساس مجوزهای خود، فراخوانی‌های API مدیریتی را انجام دهند. برای مثال، اگر نقشی اجازه دسترسی فقط خواندنی به همه پروکسی‌های API را بدهد، کاربری در آن نقش می‌تواند از API مربوط به List API Proxies استفاده کند اما نمی‌تواند از API مربوط به Create an API Proxy استفاده کند.
  • تعیین کنید که کاربران در یک نقش سفارشی چه چیزهایی را می‌توانند در رابط کاربری مدیریت ببینند و انجام دهند. برای مثال، دسترسی فقط خواندنی به پروکسی‌های API، دسترسی به دکمه‌های +API Proxy و Delete را در صفحه API Proxies غیرفعال می‌کند.

برای مشاهده منابع و مسیرهایی که می‌توانید مجوزها را روی آنها تنظیم کنید، به مرجع API مدیریت در URL های مختلف منابع مراجعه کنید.

برای اطلاعات مرجع کامل در مورد مدیریت نقش‌ها، به API نقش‌های کاربر مراجعه کنید.

نحو و اولویت

شما می‌توانید از علامت ستاره (*) برای نشان دادن «همه چیز بعد از» در تنظیمات مجوز استفاده کنید. با این حال، اگر مجوزها را فقط روی یک منبع والد (مانند /developers) تنظیم کنید و هیچ مجوز خاص دیگری (مانند /developers/*) تنظیم نکنید، مجوز برای همه چیز از /developers و بعد از آن اعمال می‌شود.

PUT همچنین به عنوان POST در مجوزها عمل می‌کند.

شما می‌توانید مجوزهای عمومی را با مجوزهای جزئی‌تر در مورد منابع ترکیب کنید. تنظیمات جزئی‌تر در مواردی که همپوشانی مجوزها وجود دارد، اولویت دارند. برای مثال، فرض کنید مجوزهای زیر برای نقش "developeradmin" تنظیم شده‌اند:

  • قرار دادن روی /توسعه‌دهندگان
  • به /developers/* بروید

این یعنی توسعه‌دهنده-مدیر می‌تواند:

  • یک توسعه‌دهنده ایجاد کنید، اما هیچ توسعه‌دهنده یا زیرمجموعه‌ی خاصی را به‌روزرسانی نکنید (به دلیل مجوز GET خاص‌تر در آن مسیر).
  • هر توسعه‌دهنده یا زیرمجموعه‌ای را دریافت کنید، اما لیستی از همه توسعه‌دهندگان را دریافت نکنید.

برای مشاهده لیست کاملی از مجوزهایی که می‌توانید با API تنظیم کنید، به مرجع مجوزها مراجعه کنید.

یک نقش سفارشی جدید با نام «توسعه» ایجاد کنید

یک نقش «توسعه» ایجاد کنید تا توسعه‌دهندگان بتوانند پروکسی‌های 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 و غیره) و همچنین روی مصنوعات منفرد (مانند یک برنامه خاص، پروکسی API یا محصول API) تنظیم شوند، GET، PUT و DELETE هستند.

مجوز GET به کاربران امکان می‌دهد هرگونه API، از جمله فایل‌های پیکربندی پروکسی API، سیاست‌های مرتبط، فایل‌های جاوا اسکریپت، XSLT و غیره را مشاهده کنند. مجوز PUT روی APIها به توسعه‌دهندگان امکان می‌دهد پروکسی‌های API را ایجاد، اصلاح، وارد، صادر، مستقر و غیرفعال کنند.

ویژگی مسیر، مصنوعی را که مجوزها را روی آن تنظیم می‌کنید، مشخص می‌کند. برای مثال، /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 به کاربران این امکان را می‌دهد که هرگونه API، از جمله فایل‌های پیکربندی آنها، و همچنین هرگونه خط‌مشی مرتبط، جاوا اسکریپت، فایل‌های XSLT و غیره را مشاهده کنند. با افزودن این مجوز به نقش «آزمایش‌کننده»، مهندسان کیفیت را قادر می‌سازیم تا محتوای APIهایی را که آزمایش می‌کنند، مشاهده کنند. با این حال، کاربران در این نقش قادر به ایجاد، اصلاح، وارد کردن، صادر کردن، استقرار و لغو استقرار پروکسی‌های API نخواهند بود.

$ 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 یا نام DNS سرور مدیریت لبه است.

اضافه کردن کاربر به نقش تست

برای ارائه نقش کاربری به یک کاربر:

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

مشاهده APIها به عنوان کاربر

کاربر را جعل هویت کنید و درخواستی به سرویس‌های API برای مشاهده پروکسی‌های API ارسال کنید. کاربر باید بتواند APIها را به همراه محتوای آنها مشاهده کند.
$ 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

ایجاد API به عنوان کاربر در نقش تست کننده

خود را به جای کاربر جا بزنید و درخواستی برای ایجاد یک پروکسی API به سرویس‌های API ارسال کنید. این درخواست توسط سرویس‌های API رد خواهد شد، زیرا نقش «آزمایش‌کننده» به کاربر اجازه ایجاد 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 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 به عنوان کاربر در نقش توسعه‌دهنده

خود را به جای کاربر جا بزنید و درخواست ایجاد یک پروکسی API را به پلتفرم API تکرار کنید. درخواست موفقیت‌آمیز خواهد بود، زیرا نقش «توسعه» به کاربر اجازه ایجاد 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