יצירת תפקידים באמצעות ה-API

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

כאן מוסבר איך יוצרים תפקידים בהתאמה אישית ומקצים תפקידים למשתמשים דרך ה-Management 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, משתמש בתפקיד הזה יכול להשתמש ב-API List API Proxies אבל לא ב-Create an API Proxy API.
  • יש לך אפשרות לקבוע מה משתמשים בתפקיד בהתאמה אישית יכולים לראות ולעשות בממשק המשתמש של הניהול. לדוגמה, הרשאת קריאה בלבד לשרתי proxy של API משביתה את הגישה ללחצנים +API Proxy ו-Delete בדף שרתי proxy של ה-API.

כדי לראות את המשאבים והנתיבים שניתן להגדיר בהם הרשאות, אפשר לעיין בחומר העזר בנושא API לניהול בכתובות ה-URL השונות של המשאבים.

ב-API User role (תפקידי משתמש) מפורטים במאמרי העזרה המלאים בנושא ניהול תפקידים.

תחביר וקדימות

ניתן להשתמש בתו הכללי לחיפוש כוכבית (*) כדי לציין "כל מה שאחרי" בהגדרת ההרשאה. עם זאת, אם מגדירים הרשאות רק במשאב הורה (כמו ב- /developers) בלי להגדיר הרשאות ספציפיות יותר (כמו /developers/*), ההרשאה הזו תחול על כל הפריטים מ- /developers ואילך.

השימוש ב-PUT משמש גם כ-POST בהרשאות.

אפשר לכלול גם הרשאות כלליות והרשאות מפורטות יותר למשאבים. ההגדרות המפורטות יותר מקבלות קדימות כשיש חפיפה בין הרשאות. לדוגמה, נניח שההרשאות הבאות מוגדרות לתפקיד מנהל מערכת:

  • PUT ב- /developers
  • GET ב-/developers/*

כלומר, האדמין של המפתח יכול:

  • אפשר ליצור מפתח, אבל לא לעדכן מפתחים ספציפיים או ישויות משנה (בגלל הרשאת ה-GET הספציפית יותר בנתיב הזה).
  • מורידים את כל מפתח או ישות משנה, אבל לא מקבלים רשימה של כל המפתחים.

בחומר העזר בנושא הרשאות תוכלו למצוא רשימה מלאה של ההרשאות שניתן להגדיר באמצעות ה-API.

יצירת תפקיד חדש בהתאמה אישית שנקרא 'פיתוח'

כדי לאפשר למפתחים להציג, ליצור ולעדכן שרתי proxy של 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" } ] }'

הוספת הרשאות לתפקיד הפיתוח

ההרשאות שניתן להגדיר בקבוצה שלמה של פריטי מידע שנוצרו בתהליך הפיתוח (Artifact) של Edge (כמו כל פריטי המידע (Artifacts) /apps , /apis , /apiproducts וכו', וכן בפריטי מידע שנוצרו בתהליך הפיתוח (Artifact) ספציפיים (כמו אפליקציה ספציפית, שרת proxy של API או מוצר API) הן GET, PUT ו-DELETE.

שרת GET מאפשר למשתמשים לצפות בכל ממשקי ה-API, כולל קובצי תצורה של שרת proxy ל-API, כללי מדיניות משויכים, JavaScript, קובצי XSLT וכו'. הרשאת PUT בממשקי API מאפשרת למפתחים ליצור, לשנות, לייבא, לייצא, לפרוס ולפרוס שרתי proxy של API.

מאפיין הנתיב מציין את פריט המידע שנוצר בתהליך הפיתוח (Artifact) שעליו הגדרתם את ההרשאות. לדוגמה, /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" ]}'

יצירת תפקיד: בדיקה

צריך ליצור תפקיד 'בדיקה' כדי לאפשר למהנדסי איכות להציג שרתי proxy של 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, כולל קובצי התצורה שלהם, וכן כללי מדיניות, JavaScript, קובצי XSLT וכו'. הוספת ההרשאה הזו לתפקיד 'בדיקה' מאפשרת למהנדסי איכות לראות את התוכן של ממשקי ה-API שהם בודקים. עם זאת, המשתמשים בתפקיד הזה לא יוכלו ליצור, לשנות, לייבא, לייצא, לפרוס ולבטל פריסה של שרתי proxy של 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 של שרת 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"} ] }'

צפייה בממשקי API בתור משתמש

אפשר להתחזות למשתמש ולהגיש בקשה לשירותי ה-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 כדי ליצור שרת proxy ל-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 כדי ליצור שרת proxy ל-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