אתם צופים במסמכי התיעוד של 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.
(אין צורך לכלול את החלק של הארגון בנתיב כשמגדירים הרשאות, כי ההרשאות מוגבלות לארגון ספציפי, כפי שמודגם בקריאות ל-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 של List API Proxies אבל לא ב-API של Create an API Proxy.
- קובעים מה משתמשים בתפקיד מותאם אישית יכולים לראות ולעשות בממשק הניהול. לדוגמה, הרשאת קריאה בלבד לשרתי proxy ל-API משביתה את הגישה ללחצנים '+API Proxy' ו-'Delete' בדף API Proxies.
כדי לראות את המשאבים והנתיבים שאפשר להגדיר להם הרשאות, אפשר לעיין בחומר העזר בנושא API לניהול בכתובות ה-URL השונות של המשאבים.
למידע מלא על ניהול תפקידים, אפשר לעיין ב-API בנושא תפקידי משתמשים.
תחביר ועדיפות
אפשר להשתמש בתו הכללי לחיפוש כוכבית (*) כדי לציין 'הכול אחרי' בהגדרת הרשאה. עם זאת, אם מגדירים הרשאות רק במשאב אב (למשל ב- /developers) בלי להגדיר הרשאות ספציפיות יותר (למשל /developers/*), ההרשאה חלה על כל מה שמתחיל ב- /developers.
PUT משמש גם כ-POST בהרשאות.
אפשר לשלב הרשאות כלליות עם הרשאות מפורטות יותר במשאבים. ההגדרות המפורטות יותר מקבלות קדימות במקרים של חפיפה בהרשאות. לדוגמה, נניח שההרשאות הבאות מוגדרות בתפקיד developeradmin:
- PUT on /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, or /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 Proxy ובתוכן שלו (כולל, למשל, מדיניות).
$ 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 Services כדי ליצור proxy ל-API. הבקשה תידחה על ידי API Services, כי התפקיד 'testing' לא מאפשר למשתמש ליצור ממשקי 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 Platform כדי ליצור 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