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

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

בנושא הזה נסביר איך ליצור תפקידים בהתאמה אישית ולהקצות תפקידים למשתמשים באמצעות Management API. אנחנו גם מראים איך בודקים הקצאות תפקידים באמצעות ה-API. (לסקירה כללית בנושא תפקידים בהתאמה אישית, קראו את המאמר יצירת תפקידים בהתאמה אישית UI.)

מידע על הגדרת ההרשאות

הרשאות התפקידים מוגדרות במזהי URI של ממשקי API לניהול (לא במזהי URI של ממשק משתמש לניהול). לדוגמה, אם שרוצים להגדיר הרשאות PUT, GET או DELETE בישויות של מפתחי האפליקציות ב-Edge צריך להגדיר הרשאות למשאב /developers, כי נתיב ה-API לניהול עבור מפתחים הוא https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers (כשמגדירים הרשאות לא צריך לכלול את החלק של הארגון בנתיב, כי ההרשאות בהיקף של ארגון ספציפי, כמו הקריאות ל-Management API בנושא הזה illustrate.)

אפשר גם להגדיר הרשאות לישויות ספציפיות. לדוגמה:

  • אם רוצים להגדיר הרשאות למפתח אחד, צריך להפעיל אותן /developers/steve@example.com
  • עבור מוצר API ספציפי, כגון free-api-product, יש להגדיר ב-/apiproducts/free-api-product
  • כדי למפות ערכי מפתח בסביבה ספציפית, צריך להגדיר הרשאה לגבי משהו כמו /environments/test/keyvaluemaps/fooMap, או /environments/test/keyvaluemaps/* עבור כל מפות ערכי המפתח בבדיקה הסביבה.

ההרשאות שהגדרתם באמצעות ה-API:

  • משתמשים בתפקיד מותאם אישית יכולים ליצור Management API שיחות בהתאם להרשאות שלהם. לדוגמה, אם תפקיד מאפשר גישה לקריאה בלבד בכל שרתי ה-proxy ל-API, משתמש בתפקיד הזה יכול להשתמש ב-List API Proxies אבל לא ב- יוצרים ממשק API של שרת Proxy.
  • אפשר לקבוע מה משתמשים בתפקיד בהתאמה אישית יוכלו לראות ולעשות בממשק המשתמש של הניהול. לדוגמה, גישת קריאה בלבד לשרתי proxy ל-API משביתה את הגישה ללחצנים ' +API Proxy' ו-'Delete' ב-API דף שרתי proxy.

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

ב-API של תפקידי משתמשים תוכלו למצוא את המידע המלא על ניהול תפקידים.

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

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

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

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

  • PUT ב- /developers
  • הורדה של /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 (למשל כל /apps, /apis , /apiproducts וכן הלאה) וגם פריטי מידע שנוצרו בתהליך הפיתוח (Artifact) (כמו אפליקציה ספציפית או API) שרת proxy או מוצר API) הם GET, PUT ו-DELETE.

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

כאשר &lt;ms-IP&gt; הוא כתובת ה-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 שירותים להצגת שרתי proxy ל-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