שימוש בחנות המאובטחת

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

שימוש בממשקי API של שירות מאגר מאובטח

שירות המאגר המאובטח מאפשר לכם לאחסן מידע אישי רגיש, כמו פרטי כניסה מאובטחים לשירותי קצה עורפי, בפורמט מוצפן כדי להגן עליהם מפני שימוש לא מורשה. אזורי האחסון המאובטחים האלה נקראים 'כספות', ואפשר להגדיר את ההיקף שלהם ברמת הארגון או ברמת הסביבה ב-Apigee Edge.

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

כך לא צריך לכלול את הסיסמה במערכת לבקרת קוד המקור, או לפרוס אותה לצד קוד המקור של Node.js ב-Apigee Edge. במקום זאת, הערך מאוחסן על ידי Apigee בצורה מוצפנת, והוא יאוחזר רק כשהאפליקציה תצטרך אותו.

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

אחסון נתונים לפי ארגון

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

שימוש

  • שליפת השמות של כל החנויות המאובטחות:
GET /o/{organization}/vaults
  • אחזור רשימה של רשומות (אבל לא הערכים המוצפנים שלהן) מכספת בשם מסוים.
GET /o/{organization}/vaults/{name}
  • אחזור של רשומה יחידה (אבל לא הערך המוצפן שלה).

GET /o/{organization}/vaults/{name}/entries/{entryname}
  • כדי ליצור כספת חדשה בשם 'name' ללא ערכים:

POST /o/{organization}/vaults

{ "name": "{name}" }

curl https://api.enterprise.apigee.com/v1/o/testorg/vaults
  -H "Content-Type: application/json"
  -d '{"name": "test2" }' -X POST
  • מציבים כניסה חדשה בכספת עם השם שצוין והערך המאובטח.

POST /o/{organization}/vaults/{vaultname}/entries

{ "name": "{entryname}", "value": "{securevalue}" }


curl https://api.enterprise.apigee.com/v1/o/testorg/vaults/test2/entries
  -H "Content-Type: application/json"
  -d '{"name": "value1", "value": "verysecret" }' -X POST
  • החלפת הערך של הרשומה שצוינה בערך חדש:

PUT /o/{organization}/vaults/{vaultname}/entries/{entryname}

curl https://api.enterprise.apigee.com/v1/o/testorg/vaults/test2/entries/value1

  -d 'verymoresecret' -X PUT
  • הפונקציה מחזירה את הערך true אם הערך שצוין תואם לערך שכבר קיים בחנות, ואת הערך false אם לא. בשני המקרים, נעשה שימוש בקוד סטטוס של HTTP‏ 200. זה יכול לשמש לאימות התוכן של המאגר. הערה: אחרי שהערך מאוחסן, אין API שאפשר להשתמש בו כדי לאחזר את הערך הלא מוצפן:

    POST /o/{organization}/vaults/{vaultname}/entries/{entryname}?action=verify
    
    curl https://api.enterprise.apigee.com/v1/o/testorg/vaults/test2/entries/value1?action=verify
      -d 'verymoresecret'  -X POST
  • מחיקת רשומה ספציפית בכספת:
DELETE /o/{organization}/vaults/{vaultname}/entries/{entryname}
  • מחיקת כל הכספת.

    DELETE /o/{organization}/vaults/{name}

אחסון נתונים לפי סביבה

אפשר גם לאחסן נתונים לפי סביבת Apigee Edge. במקרה כזה, הנתונים מוגבלים לסביבה (למשל prod). התכונה הזו מאפשרת לאחסן ערכים שונים בזמן הריצה, בהתאם למקום שבו סקריפט Node.js פועל.

שימוש

GET /o/{organization}/e/{env}/vaults

GET /o/{organization}/e/{env}/vaults/{name}

GET /o/{organization}/e/{env}/vaults/{name}/entries/{entryname}

POST /o/{organization}/e/{env}/vaults

POST /o/{organization}/e/{env}/vaults/{vaultname}/entries

PUT /o/{organization}/e/{env}/vaults/{vaultname}/entries/{entryname}

POST /o/{organization}/e/{env}/vaults/{vaultname}/entries/{entryname}?action=verify

DELETE /o/{organization}/e/{env}/vaults/{vaultname}/entries/{entryname}

DELETE /o/{organization}/e/{env}/vaults/{name}

אחזור ערכים מהמאגר המאובטח ב-Node.js

התקנה של apigee-access

כדי להשתמש ב-apigee-access בקוד Node.js, צריך להתקין אותו קודם. לדוגמה:

  1. עוברים לספריית השורש של הפרויקט.
  2. ביצוע: npm install apigee-access --save

פונקציות

הפונקציה getVault()‎ של apigee-access משמשת לאחזור כספת מסוימת, לפי ארגון או על סמך הסביבה הנוכחית שבה קוד Node.js פועל.

הפונקציה getVault() מקבלת שני פרמטרים:

  • השם של החנות המאובטחת לאחזור.
  • ההיקף, שיכול להיות organization או environment. אם לא מציינים את הערך, ברירת המחדל היא organization.

לאובייקט שמוחזר על ידי getVault() יש שתי פונקציות:

  • getKeys(callback): מחזירה מערך שמכיל את השמות של כל המפתחות בכספת שצוינה. פונקציית הקריאה החוזרת תופעל עם שני ארגומנטים: שגיאה אם הפעולה נכשלת, או undefined אם היא לא נכשלת, והמערך בפועל כארגומנט השני.
  • get(key, callback): מחזירה את הערך המאובטח שמשויך למפתח מסוים. פונקציית הקריאה החוזרת תופעל עם שני ארגומנטים: שגיאה אם הפעולה נכשלת, או undefined אם היא לא נכשלת, והערך בפועל כארגומנט השני.

דוגמה

בדוגמה הבאה של Node.js אפשר לראות איך מקבלים ערך מכספת. מודול apigee-access מותקן כדי שהקוד הזה יפעל, כמו שהוסבר קודם.

var apigee = require('apigee-access');
   var orgVault = apigee.getVault('vault1', 'organization');
   orgVault.get('key1', function(err, secretValue) {
   // use the secret value here
});