אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
מה תלמדו
במדריך הזה תלמדו:
- יוצרים proxy ל-API שנדרש לו מפתח API.
- מוסיפים מוצר API.
- מוסיפים מפתח ורושמים אפליקציה.
- שולחים קריאה ל-API עם מפתח API.
חשוב להגן על ה-API מפני גישה לא מורשית. אחת הדרכים לעשות זאת היא באמצעות מפתחות API (שנקראים גם מפתחות ציבוריים, מפתחות צרכן או מפתחות אפליקציה).
כשאפליקציה שולחת בקשה ל-API, היא צריכה לספק מפתח תקין. בזמן הריצה, המדיניות Verify API Key (אימות מפתח API) בודקת את מפתח ה-API שסופק:
- חוקי
- לא בוטלה
- תואם למפתח ה-API של מוצר ה-API שחושף את המשאבים המבוקשים
אם המפתח תקין, הבקשה מאושרת. אם המפתח לא תקין, הבקשה תיכשל בגלל בעיה בהרשאה.
במדריך הזה תיצרו proxy ל-API שנדרש לו מפתח API תקף כדי לגשת אליו.
הדרישות
- חשבון Apigee Edge. אם עדיין אין לכם חשבון, אתם יכולים להירשם באמצעות ההוראות במאמר יצירת חשבון Apigee Edge.
- דפדפן אינטרנט כדי לבצע קריאה ל-API.
- (לא חובה, רק אם רוצים לקבל ניקוד נוסף) cURL מותקן במחשב כדי לבצע קריאות ל-API משורת הפקודה.
יצירת proxy ל-API
- עוברים אל https://apigee.com/edge ונכנסים לחשבון.
כדי לעבור לארגון הרצוי, לוחצים על שם המשתמש בחלק העליון של סרגל הניווט הצדדי כדי להציג את תפריט פרופיל המשתמש, ואז בוחרים את הארגון מהרשימה.
-
בדף הנחיתה, לוחצים על API Proxies כדי להציג את רשימת ה-API Proxies.
- לוחצים על + שרת proxy.

- בדף יצירת שרת proxy, בוחרים באפשרות שרת proxy הפוך (הנפוץ ביותר).
- בדף Proxy Details, מגדירים את ה-Proxy באופן הבא:
בשדה הזה do this שם שרת ה-Proxy מזינים: helloworld_apikeyProject Base Path החלפה בהגדרה:
/helloapikeyנתיב הבסיס של הפרויקט הוא חלק מכתובת ה-URL שמשמשת לשליחת בקשות ל-proxy ל-API.
הערה: המלצות של Apigee לגבי ניהול גרסאות של API זמינות ב Versioning בספר הדיגיטלי Web API Design: The Missing Link.
API קיים מזינים:
http://mocktarget.apigee.netההגדרה הזו מגדירה את כתובת ה-URL של היעד ש-Apigee Edge מפעיל בבקשה לשרת ה-proxy של ה-API.
תיאור מזינים: hello world protected by API key - לוחצים על הבא.
- בדף Common Policies, בקטע Security: Authorization, בוחרים באפשרות API Key ולוחצים על Next. הפעולה הזו תוסיף שתי מדיניות ל-proxy ל-API.
- בדף Virtual Hosts (מארחים וירטואליים), בוחרים באפשרויות default (ברירת מחדל) ו-secure (מאובטח) ואז לוחצים על Next (הבא). אם בוחרים באפשרות default, אפשר לשלוח קריאה ל-API באמצעות
http://. אם בוחרים באפשרות מאובטח, אפשר לשלוח קריאה ל-API באמצעותhttps://. - בדף Summary, מוודאים שסביבת הפריסה של test נבחרה ולוחצים על Create and deploy.
- יוצג אישור לכך שנוצרו בהצלחה שרת proxy חדש ל-API ומוצר API, ושהשרת proxy ל-API נפרס בסביבת הבדיקה שלכם.
- לוחצים על Edit proxy (עריכת proxy ל-API) כדי להציג את הדף Overview (סקירה כללית) של proxy ל-API.
צפייה במדיניות
- בכלי לעריכת proxy ל-API, לוחצים על הכרטיסייה פיתוח. אפשר לראות ששתי מדיניות נוספו לזרימת הבקשות של ה-proxy ל-API:
- אימות מפתח API: בדיקה של הקריאה ל-API כדי לוודא שמפתח API תקין קיים (נשלח כפרמטר של שאילתה).
- הסרת פרמטר השאילתה apikey: מדיניות AssignMessage שמסירה את מפתח ה-API אחרי שהוא נבדק, כדי שהוא לא יועבר ויחשף שלא לצורך.
-
לוחצים על סמל המדיניות Verify API Key (אימות מפתח API) בתצוגת התהליך, ומסתכלים על הגדרת ה-XML של המדיניות בתצוגת הקוד התחתונה. רכיב
<APIKey>מציין למדיניות איפה לחפש את מפתח ה-API כשמתבצעת הקריאה. כברירת מחדל, המערכת מחפשת את המפתח כפרמטר שאילתה שנקראapikeyבבקשת ה-HTTP:<APIKey ref="request.queryparam.apikey" />
השם
apikeyהוא שרירותי ויכול להיות כל מאפיין שמכיל את מפתח ה-API.
ניסיון לשלוח קריאה ל-API
בשלב הזה, תבצעו קריאה מוצלחת ל-API ישירות לשירות היעד, ואז תבצעו קריאה לא מוצלחת ל-API Proxy כדי לראות איך המדיניות מגנה עליו.
-
הצלחה
בדפדפן אינטרנט, עוברים לכתובת הבאה. זהו שירות היעד שאליו מוגדר שרת ה-proxy של ה-API להעביר את הבקשה, אבל בשלב הזה תגיעו אליו ישירות:
http://mocktarget.apigee.net
אמורה להתקבל התגובה הבאה:
Hello, Guest! -
Failure
עכשיו מנסים להתקשר ל-proxy ל-API:
http://ORG_NAME-test.apigee.net/helloapikey
מחליפים את
ORG_NAMEבשם הארגון שלכם ב-Edge.בלי המדיניות Verify API Key, הקריאה הזו תחזיר את אותה התשובה כמו הקריאה הקודמת. אבל במקרה הזה, אמורה להתקבל תגובת השגיאה הבאה:
{"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
המשמעות היא שלא העברתם מפתח API תקין (כפרמטר של שאילתה).
בשלבים הבאים תוכלו להוסיף מוצר API.
הוספת מוצר API
כדי להוסיף מוצר API באמצעות ממשק המשתמש של Apigee:
- בוחרים באפשרות פרסום > מוצרי API.
- לוחצים על +API Product.
מזינים את פרטי המוצר של מוצר ה-API.
שדה תיאור שם השם הפנימי של מוצר ה-API. אל תציינו תווים מיוחדים בשם.
הערה: אי אפשר לערוך את השם אחרי שיוצרים את מוצר ה-API. לדוגמה,helloworld_apikey-Product.השם המוצג השם המוצג של מוצר ה-API. השם המוצג מופיע בממשק המשתמש, ואפשר לערוך אותו בכל שלב. אם לא מציינים ערך, המערכת תשתמש בערך של השם. השדה הזה מתמלא אוטומטית באמצעות הערך של השם. אפשר לערוך או למחוק את התוכן שלו. השם המוצג יכול לכלול תווים מיוחדים. לדוגמה, helloworld_apikey-Product.תיאור תיאור של מוצר ה-API. לדוגמה, Test product for tutorial.סביבה סביבות שמוצר ה-API יאפשר גישה אליהן. לדוגמה, testאוprod.גישה בוחרים באפשרות ציבורי. אישור אוטומטי של בקשות גישה הפעלת אישור אוטומטי של בקשות למפתחות למוצר ה-API הזה מכל אפליקציה. מכסה אפשר להתעלם מההודעה הזו במדריך הזה. היקפי הרשאות מותרים של OAuth אפשר להתעלם מההודעה הזו במדריך הזה. - בקטע API resources, בוחרים את ה-proxy ל-API שיצרתם. לדוגמה,
helloworld_apikey. - לוחצים על הוספה.
- בקטע Paths (נתיבים), מוסיפים את הנתיב '/'.
- לוחצים על הוספה.
- לוחצים על שמירה.
בשלבים הבאים תקבלו את מפתח ה-API הנדרש.
הוספת מפתח ואפליקציה לארגון
בשלב הבא, נדמה את תהליך העבודה של מפתח שנרשם לשימוש בממשקי ה-API שלכם. למפתח אפליקציות יש אפליקציה אחת או יותר ששולחות קריאות לממשקי ה-API שלכם, ולכל אפליקציה יש מפתח API ייחודי. כך ספק ה-API מקבל שליטה מפורטת יותר בגישה לממשקי ה-API שלו, ודיווח מפורט יותר על תנועת הגולשים ב-API לפי אפליקציה.
יצירת מפתח
כדי ליצור מפתח:
- בתפריט, בוחרים באפשרות פרסום > מפתחים.
- לוחצים על + Developer (מפתח).
מזינים את הפרטים הבאים בחלון New Developer:
בשדה הזה Enter שם פרטי Keyserשם משפחה Sozeשם משתמש keyserאימייל keyser@example.com- לוחצים על יצירה.
רישום אפליקציה
כדי לרשום אפליקציה למפתחים:
- בוחרים באפשרות פרסום > אפליקציות.
- לוחצים על + App (הוספת אפליקציה).
מזינים את הפרטים הבאים בחלון New App (אפליקציה חדשה):
pבשדה הזה do this שם ושם לתצוגה מזינים: keyser_appחברה / מפתח בוחרים באפשרות: Developerמפתח בוחרים באפשרות: Keyser Soze (keyser@example.com)כתובת URL להתקשרות חזרה והערות להשאיר ריק - בקטע Credentials, בוחרים באפשרות Never בתפריט Expiry. תוקף פרטי הכניסה של האפליקציה הזו לא יפוג לעולם.
- בקטע מוצרים, לוחצים על הוספת מוצר.
- בוחרים באפשרות helloworld_apikey-Product.
- לוחצים על הוספה.
- לוחצים על יצירה מעל הקטע פרטי האפליקציה ומשמאל לו כדי לשמור את העבודה.
קבלת מפתח ה-API
כדי לקבל את מפתח ה-API:
- בדף Apps (אפליקציות) (Publish > Apps (פרסום > אפליקציות)), לוחצים על keyser_app.
בדף keyser_app, לוחצים על הצגה לצד מפתח בקטע פרטי כניסה. בקטע Product, שימו לב שהמפתח משויך ל-helloworld_apikey.
.
- בוחרים את המפתח ומעתיקים אותו. תצטרכו אותו בשלב הבא.
שליחת קריאה ל-API עם מפתח
עכשיו, כשיש לכם מפתח API, אתם יכולים להשתמש בו כדי להפעיל את proxy ל-API. מזינים את הפרטים הבאים בדפדפן האינטרנט. מחליפים את ORG_NAME בשם הארגון שלכם ב-Edge ואת API_KEY במפתח ה-API. מוודאים שאין רווחים מיותרים בפרמטר של השאילתה.
http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY
עכשיו, כששולחים קריאה ל-proxy ל-API, אמורה להתקבל התשובה הבאה:
Hello, Guest!
מעולה! יצרתם proxy ל-API והגנתם עליו באמצעות דרישה לכלול מפתח API תקין בקריאה.
הערה: באופן כללי, לא מומלץ להעביר מפתח API כפרמטר של שאילתה. כדאי להעביר אותו בכותרת ה-HTTP.
שיטה מומלצת: העברת המפתח בכותרת ה-HTTP
בשלב הזה, תשנו את ה-proxy כך שיחפש את מפתח ה-API בכותרת שנקראת x-apikey.
- עורכים את ה-proxy ל-API. בוחרים באפשרות פיתוח > שרתי proxy של API > helloworld_apikey ועוברים לתצוגה פיתוח.
-
בוחרים במדיניות Verify API Key ומשנים את ה-XML של המדיניות כדי להגדיר שהמדיניות תחפש ב-
headerולא ב-queryparam:<APIKey ref="request.header.x-apikey"/>
- שומרים את proxy ל-API כדי לפרוס את השינוי.
-
מבצעים את הקריאה הבאה ל-API באמצעות cURL כדי להעביר את מפתח ה-API ככותרת בשם
x-apikey. אל תשכחו להחליף את שם הארגון.curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
שימו לב: כדי להשלים את השינוי, צריך גם להגדיר את מדיניות AssignMessage להסרת הכותרת במקום פרמטר השאילתה. לדוגמה:
<Remove>
<Headers>
<Header name="x-apikey"/>
</Headers>
</Remove>
נושאים קשורים
הנה כמה נושאים שקשורים ישירות למדריך הזה:
- ניהול מוצרי API
- מפתחות API
- רישום מפתחי אפליקציות
- רישום אפליקציות וניהול מפתחות API
- מדיניות VerifyAPIKey
- מדיניות AssignMessage
אם נתעמק קצת יותר, נגלה שאבטחת ממשקי API באמצעות מפתחות API היא רק חלק מהסיפור. במקרים רבים, הגנה על API כוללת אמצעי אבטחה נוספים כמו OAuth.
OAuth הוא פרוטוקול פתוח שבקיצור, מחליף פרטי כניסה (כמו שם משתמש וסיסמה) באסימוני גישה. אסימוני גישה הם מחרוזות ארוכות ואקראיות שאפשר להעביר בצינור של הודעות, אפילו מאפליקציה לאפליקציה, בלי לפגוע בפרטי הכניסה המקוריים. טוקנים של גישה הם לרוב לטווח קצר, ולכן תמיד נוצרים טוקנים חדשים.