הגדרת אימות של מפתח API

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

אפשר להגדיר אימות של מפתח API ל-API על ידי צירוף של מדיניות מסוג 'אימות מפתח API'. רק ההגדרה הנדרשת עבור מדיניות אימות של מפתח API היא המיקום הצפוי של מפתח ה-API לבקשת הלקוח. שרת ה-proxy ל-API יבדוק את המיקום שציינתם ויחלץ את מפתח ה-API. אם מפתח ה-API לא נמצא במיקום הצפוי, תופיע שגיאה ותופיע הבקשה נדחה. אפשר למקם מפתחות API בפרמטר של שאילתה, בפרמטר של טופס או ב-HTTP הכותרת.

לדוגמה, הגדרת המדיניות שבהמשך מגדירה את מיקום המפתח הצפוי כשאילתה פרמטר בשם apikey. בקשה שמבוצעת בהצלחה חייבת להציג את מפתח ה-API כשאילתה שמצורף לבקשה, לדוגמה ?apikey=Y7yeiuhcbKJHD790.

כדי לאמת מפתחות API, צריך ליצור את המדיניות הבאה:

<VerifyAPIKey name="APIKeyValidation">
  <APIKey ref="request.queryparam.apikey"/>
</VerifyAPIKey>

אפשר לצרף את המדיניות הזו לכל API שצריך להגן עליו.

ניתן למצוא תיעוד מקיף של סוג המדיניות הזה בנושא ההפניה למדיניות, אימות מפתח ה-API .

שרתי proxy ל-API מעבירים באופן אוטומטי את כל כותרות ה-HTTP והפרמטרים של השאילתות שקיימים. לפי הבקשה. לכן אחרי שמפתח ה-API יאומת, כדאי להסיר אותו את ההודעה כך שמפתח ה-API לא יישלח דרך החוט לשירות בקצה העורפי. אפשר לעשות זאת באמצעות מדיניות מסוג AssignMessage באופן הבא:

<AssignMessage name="StripApiKey">
    <DisplayName>Remove Query Param</DisplayName>
    <Remove>
        <QueryParams>
            <QueryParam name="apikey"/>
        </QueryParams>
    </Remove>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"></AssignTo>
</AssignMessage>

קובץ מצורף של מדיניות

המדיניות צריכה להיות מצורפת לתהליך proxy ל-API כשלבי עיבוד. על ידי החלת המדיניות לבקשה PreFlow, מפתחות ה-API מאומתים בכל בקשה שמתקבלת על ידי שרת ה-proxy של ה-API אפליקציית לקוח. אחרי האימות, מפתח ה-API יוסר מהבקשה היוצאת.

מצרפים את כללי המדיניות ל-ProxyEndpoint של שרת ה-proxy ל-API שרוצים להגן עליהם באופן הבא:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>APIKeyValidation</Name></Step>
      <Step><Name>StripApiKey</Name></Step>
    </Request>
  </PreFlow>

לאחר צירוף המדיניות, פורסים את ה-Proxy ל-API.

שליחת בקשה עם מפתח API תקף

אדמינים בארגון יכולים לאחזר מפתח API של כל אפליקציה באופן הבא:

$ curl https://api.enterprise.apigee.com/v1/o/{myorg}/developers/{developer_email}/apps/{app_name} -u email:password 

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

לדוגמה, בקשה שלא כוללת מפתח API תוביל לקבלת הרשאה כשלכם.

$ curl http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282

הודעת הכשל מציינת שהמדיניות בדקה אם יש מפתח API אבל לא נמצאה לו מפתח גישה תקין מפתח:

OAuth Failure : Could not resolve the app key with variable request.queryparam.apikey

כשמפתח הצרכן של האפליקציה נכלל כפרמטר של שאילתה, התוצאה הצפויה היא הרשאה מוצלחת:

$ curl http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282&"apikey=PulSCqMnXGchW0pC0s5o9ngHVTWMeLqk"

התוצאה הצפויה היא תגובה מוצלחת משירות מזג האוויר.

אם משנים את הערך של מפתח ה-API בבקשה, מתקבלת הרשאה כשל:

$ curl http://{org_name}-test.apigee.net/weather?forecastrss?w=12797282&"apikey=PulSCqMnXGchW0"

תוצאות ב:

OAuth Failure : Consumer Key is Invalid

חשוב לזכור: אדמינים בארגון יכולים לאחזר את מפתח הצרכן של כל אפליקציה רשום בארגון:

$ curl https://api.enterprise.apigee.com/v1/o/{myorg}/developers/{developer_email}/apps/{app_name} -u email:password