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

המסמך הזה עוסק ב-Apigee Edge.
למעבר אל מסמכי התיעוד של Apigee X.
info

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

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

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

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

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

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

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

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

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

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

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

הפעולה PUT משמשת גם כ-POST בהרשאות.

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

  • PUT ב-‎/developers
  • GET on /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" } ] }'

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

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

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

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

יוצרים תפקיד "בדיקה" כדי לאפשר למהנדסי איכות לצפות בשרתי 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.

הוספת משתמש לתפקיד בדיקה

כדי להקצות למשתמש תפקיד:

$ 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 Services, כי התפקיד "בדיקה" לא מאפשר למשתמש ליצור ממשקי 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