למה ומתי כדאי להשתמש במפתחות API

בדף הזה מוסבר על מפתחות API ואימות: איך משתמשים בכל אחד מהם, מה ההבדלים ביניהם ומהם התרחישים שבהם כדאי להשתמש במפתחות API.

מפתחות API מיועדים לפרויקטים, ואימות מיועד למשתמשים

‫Cloud Endpoints מטפל גם במפתחות API וגם בסכימות אימות, כמו Firebase או Auth0. ההבדל העיקרי בין שני סוגי הנתונים האלה הוא:

  • מפתחות API מזהים את הפרויקט שממנו מתבצעת הקריאה – האפליקציה או האתר – ששולח את הקריאה ל-API.

  • טוקנים של אימות מזהים משתמש – את האדם – שמשתמש באפליקציה או באתר.

    סקירה כללית על מפתחות API

מפתחות API מספקים הרשאה לפרויקט

כדי להחליט איזו סכימה הכי מתאימה, חשוב להבין מה מפתחות API ואימות יכולים לספק.

מפתחות API מספקים

  • זיהוי הפרויקט – זיהוי האפליקציה או הפרויקט ששולחים קריאה ל-API הזה

  • הרשאה לפרויקט – צריך לבדוק אם לאפליקציה ששולחת את הקריאה הוענקה גישה לשליחת קריאה ל-API, ואם ה-API הופעל בפרויקט שלה.

מפתחות API לא מאובטחים כמו אסימוני אימות (ראו אבטחת מפתחות API), אבל הם מזהים את האפליקציה או הפרויקט שמבצעים קריאה ל-API. הם נוצרים בפרויקט שמבצע את הקריאה, ואפשר להגביל את השימוש בהם לסביבה מסוימת, כמו טווח כתובות IP או אפליקציית Android או iOS.

באמצעות זיהוי הפרויקט שממנו מתבצעת הקריאה, אפשר להשתמש במפתחות API כדי לשייך את פרטי השימוש לפרויקט הזה. מפתחות API מאפשרים ל-Extensible Service Proxy‏ (ESP) לדחות קריאות מפרויקטים שלא קיבלו גישה ל-API או שלא הופעלו ב-API.

אימות משתמשים

לעומת זאת, סכימות אימות בדרך כלל משמשות לשתי מטרות:

  • אימות משתמשים – אימות מאובטח של זהות המשתמש המתקשר.

  • הרשאת משתמש – בודקים אם למשתמש צריכה להיות גישה כדי לבצע את הבקשה הזו.

סכימות אימות מספקות דרך מאובטחת לזיהוי המשתמש שמתקשר. בנוסף, מערכת Endpoints בודקת את טוקן האימות כדי לוודא שיש לו הרשאה לקרוא ל-API. על סמך האימות הזה, שרת ה-API מחליט אם לאשר בקשה.

אם אתם צריכים לזהות את המשתמש שמבצע את השיחה, כדאי לעיין במאמר בנושא אימות משתמשים.

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

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

אבטחה של מפתחות API

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

דוגמאות זמינות במאמר אימות משתמשים.

מתי כדאי להשתמש במפתחות API

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

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

  • אתם רוצים לשלוט במספר הקריאות ל-API.

  • אתם רוצים לזהות דפוסי שימוש בתנועה של ה-API. אפשר לראות את השימוש באפליקציות בAPIs & services.

  • רוצים לסנן את היומנים לפי מפתח API.

אי אפשר להשתמש במפתחות API כדי:

  • זיהוי משתמשים ספציפיים – מפתחות API לא מזהים משתמשים, אלא פרויקטים.

  • הרשאה מאובטחת.

  • זיהוי היוצרים של פרויקט.

ב-Service Infrastructure אין method לחיפוש ישיר של פרויקטים ממפתחות API.

איך משתמשים במפתחות API

במאמר הגבלת הגישה באמצעות מפתחות API מוסבר איך להגדיר גישה באמצעות מפתחות API ואיך להשתמש בה.