הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge

סרטון: בסרטון הקצר הזה מוסבר איך לאבטח את ה-API.
מה תלמדו
במדריך הזה נסביר איך:
- יוצרים proxy ל-API שנדרש לו מפתח API.
- יוצרים מוצר API, מפתח ואפליקציית מפתח.
- שולחים קריאה ל-API עם מפתח API.
חשוב להגן על ה-API מפני גישה לא מורשית. אחת הדרכים לעשות את זה היא באמצעות מפתחות API.
כששולחים בקשה מאפליקציה ל-proxy ל-API שהוגדר לאמת מפתח API, האפליקציה צריכה לספק מפתח תקף. בזמן הריצה, המדיניות Verify API Key (אימות מפתח API) בודקת את מפתח ה-API שסופק:
- חוקי
- לא בוטלה
- תואם למפתח ה-API של מוצר ה-API שחושף את המשאבים המבוקשים
אם המפתח תקין, הבקשה מאושרת. אם המפתח לא תקין, הבקשה תיכשל בגלל בעיית הרשאה.
יצירת proxy ל-API
כדי ליצור proxy ל-API באמצעות ממשק המשתמש של Apigee:
במסוף Google Cloud , נכנסים לדף Apigee > Proxy development > API proxies.
- בוחרים את הארגון בכלי לבחירת פרויקטים בחלונית Google Cloud. השם של הארגון זהה לשם הפרויקט בענן ב-Google Cloud.
- לוחצים על + Create.
- בחלונית יצירת שרת proxy, בקטע תבנית שרת proxy, בוחרים באפשרות Reverse proxy (הנפוצה ביותר). שרת proxy הפוך מנתב תנועה נכנסת לשירות קצה עורפי.
- מגדירים את ה-Proxy באופן הבא:
שם ערך שם שרת ה-Proxy helloworld_apikeyנתיב בסיסי /helloapikeyנתיב הבסיס של הפרויקט הוא חלק מכתובת ה-URL שמשמשת לשליחת בקשות ל-proxy ל-API.
תיאור hello world protected by API keyיעד (API קיים) http://mocktarget.apigee.netההגדרה הזו מגדירה את כתובת ה-URL של היעד שאליו Apigee שולח בקשה לשרת ה-proxy של ה-API. היעד הזה מחזיר רק תשובה פשוטה:
Hello, Guest!. - לוחצים על הבא.
- פריסה (אופציונלי). משאירים את השדות האלה ריקים.
- לוחצים על יצירה.
- Apigee יוצר את ה-proxy החדש ומציג את הסיכום של פרטי ה-proxy בחלונית Proxy summary.
צפייה במדיניות
כדי לראות את המדיניות:
- בחלונית סיכום ה-proxy של ה-proxy helloworld_apikey, לוחצים על הכרטיסייה פיתוח.
- בתפריט Policies (מדיניות), לוחצים על Add policy (הוספת מדיניות).
- בחלונית Create policy, בקטע Security, בוחרים באפשרות Verify API Key.
- בחלונית Verify API Key (אימות מפתח API), ממלאים את שדות החובה בקטעים Name (שם) ו-Display name (שם לתצוגה) באמצעות הערכים הבאים:
- שם: מזינים שם למדיניות. לדוגמה,
VerifyAPIKey. - השם המוצג: מזינים את שם המדיניות לשימוש בממשק המשתמש. לדוגמה,
Verify API Key.
- שם: מזינים שם למדיניות. לדוגמה,
- לוחצים על יצירה.
- לוחצים על כדי להוסיף עוד מדיניות.
- בחלונית יצירת מדיניות, בקטע גישור, בוחרים באפשרות הקצאת הודעה.
- בחלונית Assign Message (הקצאת הודעה), ממלאים את שדות החובה בקטעים Name (שם) ו-Display name (שם לתצוגה) באמצעות הערכים הבאים:
- שם: מזינים שם למדיניות. לדוגמה,
AssignMessage. - השם המוצג: מזינים את שם המדיניות לשימוש בממשק המשתמש. לדוגמה,
Assign Message.
- שם: מזינים שם למדיניות. לדוגמה,
- לוחצים על יצירה.
- רכיב
<APIKey>בקוד ה-XML שבהמשך מציין את המיקום של מפתח ה-API בבקשה הנכנסת. כברירת מחדל, המדיניות מאחזרת את המפתח מפרמטר של שאילתה בשםapikeyבבקשת ה-HTTP.<APIKey ref="request.queryparam.apikey" />
השם
apikeyהוא שרירותי ויכול להיות כל מאפיין שמכיל את מפתח ה-API. - מעדכנים את התוכן של המדיניות הקצאת הודעה כך שיכלול את הטקסט הבא:
- מוסיפים את המדיניות
VerifyApiKeyואת המדיניותRemove Query Param apikey.- בתפריט Proxy endpoints (נקודות קצה של שרת proxy), לוחצים על Preflow (זרימת נתונים לפני העיבוד).
- בחלונית Request של כלי העריכה החזותי, לוחצים על Add policy step.
- בחלונית Add policy step (הוספת שלב מדיניות), בוחרים באפשרות Verify API Key (אימות מפתח API).
- לוחצים על הוספה.
- בחלונית Request של כלי העריכה החזותי, לוחצים על Add policy step.
- בחלונית Add policy step (הוספת שלב מדיניות), בוחרים באפשרות Remove Query Param apikey (הסרת פרמטר שאילתה apikey).
- לוחצים על הוספה.
- לוחצים על Save.
- פורסים את ה-Proxy בסביבה:
- לוחצים על פריסה.
- בוחרים גרסה וסביבה.
- לוחצים על פריסה.
- כדי לבדוק את השינויים, שולחים קריאה ל-API כמו שמתואר במאמר ניסיון לשלוח קריאה ל-API.
<AssignMessage async="false" continueOnError="false" enabled="true" name="remove-query-param-apikey"> <DisplayName>Remove Query Param apikey</DisplayName> <Remove> <QueryParams> <QueryParam name="apikey"/> </QueryParams> </Remove> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
ניסיון לשלוח קריאה ל-API
בשלב הזה, תבצעו קריאה מוצלחת ל-API ישירות לשירות היעד, ואז תבצעו קריאה לא מוצלחת ל-API proxy כדי לראות איך הוא מוגן על ידי המדיניות.
-
הצלחה
בדפדפן אינטרנט, עוברים לכתובת הבאה. זהו שירות היעד שאליו מוגדר שרת ה-proxy של ה-API להעביר את הבקשה, אבל בשלב הזה תפנו אליו ישירות:
http://mocktarget.apigee.net
אמורה להתקבל התגובה הבאה:
Hello, Guest! -
Failure
עכשיו מנסים להתקשר ל-proxy ל-API:
curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey
כאשר
YOUR ENV_GROUP_HOSTNAMEהוא שם המארח של קבוצת הסביבות. אפשר לעיין במאמר בנושא איתור שם המארח של קבוצת הסביבות.בלי המדיניות 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:
במסוף Google Cloud , נכנסים לדף Distribution > API products:
- לוחצים על +יצירה.
- מזינים את פרטי המוצר של מוצר ה-API.
שדה תיאור שם השם הפנימי של מוצר ה-API. אל תציינו תווים מיוחדים בשם.
הערה: אי אפשר לערוך את השם אחרי שיוצרים את מוצר ה-API.השם המוצג השם המוצג של מוצר ה-API. השם המוצג מופיע בממשק המשתמש, ואפשר לערוך אותו בכל שלב. אם לא מציינים ערך, נעשה שימוש בערך Name. השדה הזה מתמלא אוטומטית באמצעות הערך של שם. אפשר לערוך או למחוק את התוכן שלו. השם המוצג יכול לכלול תווים מיוחדים. תיאור תיאור של מוצר ה-API. סביבה סביבות שמוצר ה-API יאפשר גישה אליהן. לדוגמה, testאוprod.גישה בוחרים באפשרות ציבורי. אישור אוטומטי של בקשות גישה הפעלת אישור אוטומטי של בקשות למפתחות למוצר ה-API הזה מכל אפליקציה. מכסה אפשר להתעלם מההודעה הזו במדריך הזה. היקפי הרשאות מותרים של OAuth אפשר להתעלם מההודעה הזו במדריך הזה. - בקטע פעולות, לוחצים על הוספת פעולה.
- בשדה API Proxy, בוחרים את שרת ה-proxy ל-API שיצרתם.
- בשדה נתיב מזינים '/'. מתעלמים מהשדות האחרים.
- לוחצים על שמירה כדי לשמור את הפעולה.
- לוחצים על שמירה כדי לשמור את מוצר ה-API.
מידע נוסף על הוספת מוצר API זמין במאמר בנושא יצירת מוצר API.
הוספת מפתח ואפליקציה לארגון
בשלב הבא, נדמה את תהליך העבודה של מפתח שנרשם לשימוש בממשקי ה-API שלכם. למפתח יהיו אפליקציה אחת או יותר ששולחות קריאות לממשקי ה-API שלכם, ולכל אפליקציה מוקצה מפתח API ייחודי. כך ספק ה-API מקבל שליטה מפורטת יותר בגישה ל-API שלו ודיווח מפורט יותר על תנועת הנתונים ב-API לפי אפליקציה.
יצירת מפתח
כדי ליצור מפתח באמצעות ממשק המשתמש של Apigee:
-
במסוף Google Cloud , נכנסים לדף הפצה > מפתחים:
- לוחצים על + Create.
- בחלון הוספת מפתח, מזינים את הפרטים הבאים:
שדה ערך שם פרטי Keyserשם משפחה Sozeאימייל keyser@example.comשם משתמש keyser - לוחצים על הוספה.
מידע נוסף על יצירת מפתח זמין במאמר בנושא הרשמה של מפתחי אפליקציות.
רישום אפליקציה
כדי לרשום אפליקציה למפתחים באמצעות ממשק המשתמש של Apigee:
-
במסוף Google Cloud , נכנסים לדף Distribution > Apps:
- לוחצים על + Create.
- בחלון Create App (יצירת אפליקציה), מזינים את הפרטים הבאים:
שדה ערך שם האפליקציה מזינים: keyser_appשם לתצוגה מזינים: keyser_appמפתח בוחרים באפשרות: Keyser Soze (keyser@example.com)כתובת URL של שיחה חוזרת להשאיר ריק הערות להשאיר ריק - בקטע 'פרטי כניסה', לוחצים על הוספת פרטי כניסה.
- בוחרים באפשרות אף פעם. תוקף פרטי הכניסה של האפליקציה הזו לא יפוג לעולם.
- לוחצים על הוספת מוצרים.
- בוחרים את המוצר שיצרתם.
- לוחצים על הוספה.
- לוחצים על יצירה.
מידע נוסף על רישום אפליקציה זמין במאמר בנושא רישום אפליקציה.
קבלת מפתח ה-API
כדי לקבל את מפתח ה-API באמצעות ממשק המשתמש של Apigee:
במסוף Google Cloud , נכנסים לדף Apigee > Distribution > Apps.
- בוחרים את האפליקציה הרצויה מרשימת האפליקציות.
- בדף View app, בקטע Credentials, לוחצים על לצד השדה Key. שימו לב שהמפתח משויך למוצר שיצרתם.
- לוחצים על העתקה. תשתמשו במפתח הזה בשלב הבא.
שליחת קריאה ל-API עם מפתח
עכשיו, כשיש לכם מפתח API, אתם יכולים להשתמש בו כדי להפעיל את proxy ל-API. מדביקים את מפתח ה-API כפי שמוצג, כפרמטר של שאילתה. מוודאים שאין רווחים מיותרים בפרמטר השאילתה.
curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey?apikey=YOUR_API_KEY
עכשיו, כשקוראים ל-API proxy, אמורה להתקבל התגובה הבאה: Hello,
Guest!
כל הכבוד! יצרתם proxy ל-API והגנתם עליו באמצעות דרישה לכלול מפתח API תקף בקריאה.
הערה: באופן כללי, לא מומלץ להעביר מפתח API כפרמטר של שאילתה. כדאי להעביר אותו בכותרת ה-HTTP.
שיטה מומלצת: העברת המפתח בכותרת HTTP
בשלב הזה, משנים את ה-proxy כך שיחפש את מפתח ה-API בכותרת שנקראת x-apikey.
- במסוף Google Cloud , נכנסים לדף Proxy development > API proxies.
- בוחרים את השרת הרצוי מתוך רשימת השרתים.
- בדף פרטי ה-Proxy, לוחצים על פיתוח.
- משנים את ה-XML של המדיניות כדי שהמדיניות תחפש בכותרת ולא בפרמטר של השאילתה:
- לוחצים על שמירה כדי לשמור את השינויים.
- לוחצים על פריסה.
- בוחרים גרסה וסביבה.
- לוחצים על פריסה.
-
מבצעים את הקריאה הבאה ל-API באמצעות cURL כדי להעביר את מפתח ה-API ככותרת בשם
x-apikey. אל תשכחו להחליף את שם הארגון.curl -v -H "x-apikey: YOUR_API_KEY" http://YOUR_ENV_GROUP_HOSTNAME/helloapikey
<APIKey ref="request.header.x-apikey"/>
שימו לב: כדי להשלים את השינוי, צריך גם להגדיר את מדיניות הקצאת ההודעות כך שהכותרת תוסר במקום פרמטר השאילתה. לדוגמה:
<Remove>
<Headers>
<Header name="x-apikey"/>
</Headers>
</Remove>
נושאים קשורים
הנה כמה נושאים שקשורים למוצרי API ולמפתחות API:
- ניהול מוצרי API
- מפתחות API
- רישום של מפתחי אפליקציות
- רישום אפליקציות וניהול מפתחות API
- Verify API Key policy
הגנה על API כוללת לרוב אמצעי אבטחה נוספים כמו OAuth, פרוטוקול פתוח שמחליף פרטי כניסה (כמו שם משתמש וסיסמה) בטוקנים של גישה. אסימוני גישה הם מחרוזות ארוכות ואקראיות שאפשר להעביר דרך צינור של הודעות, כולל מאפליקציה לאפליקציה, בלי לפגוע בפרטי הכניסה המקוריים.
סקירה כללית של נושאים שקשורים לאבטחה זמינה במאמר בנושא אבטחת שרת proxy.