ایجاد نقش با 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 است. 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 Proxy API استفاده کند اما از Create an API Proxy API استفاده نکند.
  • تعیین کنید که کاربران در یک نقش سفارشی می توانند چه چیزی را در رابط کاربری مدیریت ببینند و انجام دهند. برای مثال، دسترسی فقط خواندنی به پراکسی‌های API، دسترسی به دکمه‌های +API Proxy و Delete را در صفحه API Proxy غیرفعال می‌کند.

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

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

نحو و تقدم

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

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

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

  • قرار دادن در / توسعه دهندگان
  • دریافت در /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 را ایجاد، تغییر دهند، وارد کنند، صادر کنند، مستقر کنند و از آن استفاده کنند.

ویژگی path مصنوع را مشخص می کند که مجوزها را روی آن تنظیم می کنید. به عنوان مثال، /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