הגדרה והגדרה של Edge Microgateway

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

Edge Microgateway גרסה 3.0.x

סקירה כללית

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

המדריך הזה מחולק לחלקים הבאים:

דרישה מוקדמת: התקנת Edge Microgateway

פועלים לפי ההוראות במאמר התקנת Edge Microgateway. אחרי שתשלימו את ההתקנה, תוכלו לפעול לפי השלבים במדריך הזה.

חלק 1: הגדרת Edge Microgateway

בחלק הזה תשתמשו בפקודה של ממשק שורת הפקודה (CLI) כדי להגדיר את Edge Microgateway כך ש יתקשר עם Apigee Edge.

שלבי ההגדרה של Apigee Edge Cloud

כדי להשתמש ב-Edge Microgateway עם Apigee Edge Cloud, פועלים לפי השלבים הבאים:

  1. מפעילים את Edge Microgateway (צריך לבצע את השלב הזה רק פעם אחת):
    edgemicro init
  2. קובץ הגדרות בשם default.yaml ממוקם בספריית הבית שלכם בספריית משנה בשם .edgemicro. כדאי לבדוק עכשיו כדי לוודא שהקובץ הזה קיים:
    ls ~/.edgemicro
    default.yaml

    הערה: במסמכי Edge Microgateway, אנחנו מתייחסים לספריית הבית עם סימן הטילדה (~), שהוא קיצור דרך של UNIX. אם אתם משתמשים ב-Windows, ואם אתם מריצים מעטפת שלא תומכת בסימן הטילדה, תצטרכו להחליף את משתנה הסביבה המתאים בסימן הטילדה בפקודות שמפנות לספריית הבית. לדוגמה: %USERPROFILE%/.edgemicro.

  3. לכל הפקודות ב-CLI יש פונקציית עזרה. להדפיס את העזרה של הפקודה edgemicro configure:
    edgemicro configure -h
  4. מריצים את הפקודה הבאה כדי להגדיר את Edge Microgateway:
    edgemicro configure -o [org] -e [env] -u [username] 

    כאשר:

    • org: שם הארגון ב-Edge (צריך להיות אדמין של הארגון).
    • env: סביבה בארגון (למשל, בדיקה או ייצור).
    • username: כתובת האימייל שמשויכת לחשבון Apigee שלכם.

      הערה: הפקודה configure מאפשרת להוסיף פרמטרים. רשימה מלאה מופיעה במאמר הגדרת Edge Microgateway ל-Apigee Edge Cloud.

דוגמה

edgemicro configure -o docs -e test -u jdoe@example.com

פלט

./edgemicro configure -o docs -e test -u jdoe@apigee.com
password:
current nodejs version is v12.5.0
current edgemicro version is 3.0.2
password:
file doesn't exist, setting up
Give me a minute or two... this can take a while...
App edgemicro-auth deployed.
checking org for existing KVM
error checking for cert. Installing new cert.
creating KVM
adding private_key
adding public_key
configuring host edgemicroservices-us-east-1.apigee.net for region us-east-1

saving configuration information to: $HOME/.edgemicro/docs-test-config.yaml

vault info:
 -----BEGIN CERTIFICATE-----
MIICpDCCAYwCCQCQ2mJZJGbPPTANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls
b2NhbGhvc3QwHhcNMTcwOTA3MjA0ODA4WhcNMTcwOTA4MjA0ODA4WjAUMRIwEAYD
VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDw
yzmqi5CelqqtTr6IaFe1ssrMXEDnNtkBh95U6F5zHLsNQhJcyNUAO9um6FLMSqSd
fTztXfWUZzDgmbb6sfbx/9cqpvQ8TIjxyIz8xGM9H4legRQmsCQoYGkLjpPE5ZOa
wZrI5IaVm8LY6vbopPFwxgKOQ9bphx6k9Na055DmNyZAOTMD+4I0m/RdsrnZnYih
3DaFj1tXHKZI1jfAt/QOif5Nmk4+JckYwF+9HBysWUbbvj/gnBjVYF2Isb7q7oFD
lPGhwFoIebMqHMWD8lG7+9RJDO9dDV6f1g1/9waIrq1D+MoVXos9VMstNrPp0cKF
Ue+lAkct8tylH+2MosF7AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAJMRdcQh3ayy
csVVT4TYwxV7MKWRfhDRz6X+MM9frB+Z7sI4+ZoZbXKOoZI2hSjmbdLpkNR/m9eJ
+1Uk0JKmpSY7Q+1rRrvcHsWNysGf4z+zDJXYECTrtSnXKBXtb9SJ8JAfoZOQD0lA
zmKuJjQMLTdiYMHOBR6ZWnaKaRvrQwGHcQrheJm4a90XgZF6jcRR8CPrBzkmsbCp
IU/Ux3E17wDGYPxjJs5otyQG8rN/88RGyaSeXK8rjKr9D4KFGJeasXBKmTG2afAr
yfBvS4h6s42FCOR/eLpmMllVoO9up71Fa3EtV+aK+FNNY9uMbgUHeLQE7z9nn06q
PTmvExZLkLQ=
-----END CERTIFICATE-----

The following credentials are required to start edge micro
  key: 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb
  secret: 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47
    

שלבי ההגדרה של Apigee Private Cloud

כדי להשתמש ב-Edge Microgateway עם Apigee Private Cloud, מבצעים את השלבים הבאים:

  1. מפעילים את Edge Microgateway (צריך לבצע את השלב הזה רק פעם אחת):
    edgemicro init
  2. הדפסת מידע עזרה לגבי הפקודה edgemicro private configure. באמצעות הפקודה הזו אפשר להדפיס עזרה לכל פקודה או אפשרות פקודה ב-CLI של Edge Microgateway.
    edgemicro private configure -h
  3. מריצים את הפקודה הבאה. היא דורשת מידע סטנדרטי על חשבון Apigee Edge Private Cloud: שם הארגון, שם הסביבה, שם המשתמש (כתובת האימייל), הסיסמה, כתובת ה-IP של שרת הניהול וכתובת ה-IP של הנתב. כדי להשתמש בפקודה הזו, צריך להיות אדמין בארגון Edge:
    edgemicro private configure -o [org] -e [env] -u [username] -r [runtime_url] -m [mgmt_url] -v [virtual_host]

    כאשר:

    • org הוא שם הארגון שלכם ב-Edge (צריכה להיות לכם הרשאת אדמין בארגון).
    • env היא סביבה בארגון (למשל בדיקה או ייצור).
    • runtime_url היא כתובת ה-URL של זמן הריצה של מופע הענן הפרטי.
    • mgmt_url היא כתובת ה-URL של שרת הניהול של מופע הענן הפרטי.
    • username היא כתובת האימייל שמשויכת לחשבון Apigee שלכם.
    • virtual_host היא רשימה מופרדת בפסיקים של שמות של מארחים וירטואליים. ערכי ברירת המחדל הם default,secure

דוגמה

edgemicro private configure -o docs -e test -u jdoe@example.com -r http://192.162.52.106:9001 -m http://192.162.52.106:8080 -v default

או, אם יש לכם כינוי של מארח וירטואלי myorg-test.mycompany.com, תשתמשו בפקודה כזו:

edgemicro private configure -o docs -e test -u jdoe@example.com -r myorg-test.mycompany.com -m http://192.162.52.106:8080 -v default

פלט

delete cache config
checking for previously deployed proxies
configuring edgemicro internal proxy
deploying edgemicro internal proxy
deploying  edgemicro-auth  app
copy auth app into tmp dir
copy config into tmp deer
Give me a minute or two... this can take a while...
App edgemicro-auth added to your org. Now adding resources.

checking org for existing KVM
error checking for cert. Installing new cert.
creating KVM
adding private_key
adding public_key
configuring host http://192.168.52.106:9001 for region dc-1

saving configuration information to: $HOME/.edgemicro/jdoe-test-config.yaml
vault info: 
-----BEGIN CERTIFICATE----- 
MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls 
b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD 
VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3 
OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFswhB0Yvg6JKWsKWBDP9o
Xl96dtgH7xPFRqIU0zI452jkMQ1fPz2mSaGwik245yfBku7olooXKRKTRKOUoXa 
q3Hld/RPxGSsWtiyyYtKex7tuFdq0Knm1EhowdTRGIgjNvudeYMka/XPRXuykhd 
xIDxWj4rdX+4GPx9qT2eTQC5nOAC7XHVL7ys4KqsAiv28vw10u400KstFFS8Qho 
7FaE0bOKLolKKadKyA60ha1XIw/uSTD6ZQFWQ+XM3OaRbXePWXnSZioSxXcZT7L 
hMUKbsRXw/TCvRB51LgNAgMBAAEwDQYJKoZIhvcNAQELBQADgEBAOuR1OmE/W6j 
gRAarJB5EQuTEpI/9Zpg5c5RAGjzLhkazsycn7pal+IymUjCV7D0oIxTVuTM8ZZ 
57kR5hF/C1ZypDN9i+KGP2ovX8WOCCXYtIQECgZPB/L/7/k7BDuKN4vFBvWUe3X 
s2oyjnVWy+ASqsW8gHfj8ekhe22bP240Oqkbyg9SZP9ol1tvJX6+M0thYwcTwAd 
ft929Icey/MOTQC0jB2qm0gnIx/7KInFXfS5KoFRJoGrWDeckr3RdBo2LhnPaeZ 
1gPYIqphZ3HfisF5KlBXoR8oT/Ilym/nq5COlv+3L4tMIk18F7BQZB60SRazifz 
pFkIxepyr/0= 
-----END CERTIFICATE----- 

The following credentials are required to start edge micro 
   key: a3f8f3dfe39158fc3c50b274f0af2234246e0d5f6ea4ad09389b645147151ba3
   secret: 3e9904802fb3c0e8ca408128a11119cf13546d54dac10ace944c097a726a1263

edgemicro configuration complete!
    

אימות ההתקנה

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

edgemicro verify -o [org] -e [env] -k [key] -s [secret]

כאשר:

  • org הוא שם הארגון שלכם ב-Edge (צריכות להיות לכם הרשאות אדמין בארגון).
  • env היא סביבה בארגון (למשל בדיקה או ייצור).
  • key הוא המפתח שהוחזר קודם על ידי הפקודה configure.
  • secret הוא המפתח שהוחזר קודם על ידי הפקודה configure.

דוגמה

edgemicro verify -o docs -e test -k 93b01fd21d86331459ae52f624ae9aeb13eb94767ce40a4f621d172cdfb7e8e6 -s c8c755be97cf56c21f8b0156d7132afbd03625bbd85dc34ebfefae4f23fbcb3c

מידע על ההגדרה

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

למה משמש מידע התצורה הזה? כפי שנראה בחלק הבא של המדריך הזה, כש-Edge Microgateway מופעל, הוא צריך לקבל מ-Apigee Edge רשימה של שרתי proxy מיוחדים של API שמודעים ל-Edge Microgateway. בחלק הבא של המדריך הזה תיצרו proxy עם תמיכה ב-Microgateway. ‫Edge Microgateway מגביל את הלקוחות לקריאה רק לממשקי ה-API שמוצגים על ידי פרוקסי API שמודעים ל-Microgateway, והלקוחות יידרשו (כברירת מחדל) להציג אסימון אבטחה תקף לכל קריאה. מידע נוסף על שרתי ה-proxy האלה זמין במאמר סקירה כללית על Edge Microgateway, בקטע מה צריך לדעת על שרתי proxy שמודעים ל-Edge Microgateway.

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

בהמשך נסביר איך ליצור שרתי proxy שמודעים ל-Edge Microgateway, ואחרי זה נפעיל את Edge Microgateway ונבדוק את ההגדרה.

חלק 2: יצירת ישויות ב-Apigee Edge

בשלב הזה, תיצרו את הישויות הבאות ב-Edge:

  • proxy עם מודעות ל-microgateway – זהו proxy מיוחד ש-Edge Microgateway יכול לגלות בזמן ההפעלה. לפרוקסי שמודעים ל-Microgateway יש מוסכמת שמות שחובה לפעול לפיה: השם צריך להתחיל ב-edgemicro_. לדוגמה: edgemicro_hello או edgemicro_userinfo. כשמפעילים את Edge Microgateway, הוא מאחזר מ-Edge רשימה של שרתי proxy שמודעים ל-microgateway מאותו ארגון וסביבה של Edge שציינתם כשאתם מפעילים את Edge Microgateway.

    לכל שרת Proxy שמודע ל-Microgateway, ‏ Edge Microgateway מאחזר את כתובת ה-URL של היעד של שרת ה-Proxy ואת נתיב הבסיס שלו. בנוסף, פרוקסי שמודעים ל-Microgateway מספקים דרך נוחה לשייך נתוני ניתוח שנוצרו על ידי Edge Microgateway לפרוקסי בפלטפורמת Edge. ‫Microgateway מטפל בקריאות ל-API, ולכן הוא דוחף באופן אסינכרוני נתוני ניתוח ל-Edge. הנתונים מ-Analytics יוצגו בממשק המשתמש של Edge Analytics מתחת לשמות של ה-proxy עם מודעות למיקרו-שער, כמו בכל proxy אחר.
  • מוצר, מפתח ואפליקציה למפתחים – Edge Microgateway משתמש במוצרים, במפתחים ובאפליקציות למפתחים כדי לאפשר אבטחה של טוקן גישה מסוג OAuth2 או מפתחות API. כש-Edge Microgateway מופעל, הוא מוריד את כל תצורות המוצר מהארגון שלכם ב-Apigee Edge. הוא משתמש במידע הזה כדי לאמת קריאות ל-API שמתבצעות דרך Edge Microgateway באמצעות מפתחות API או אסימוני גישה מסוג OAuth2.

1. יצירה של proxy ל-API ב-Edge עם תמיכה ב-Edge Microgateway

  1. מתחברים לארגון ב-Apigee Edge.
  2. בתפריט הניווט הצדדי, בוחרים באפשרות פיתוח > שרתי proxy של API.
  3. לוחצים על + שרת proxy. מופעל האשף ליצירת שרת proxy.
  4. בדף הראשון של האשף, בוחרים באפשרות Reverse proxy (הנפוצה ביותר).
  5. לוחצים על הבא.
  6. בדף הפרטים של האשף, מבצעים את ההגדרות הבאות. חשוב למלא את האשף בדיוק כמו שמוצג כאן:
    • שם ה-proxy: edgemicro_hello
    • נתיב בסיסי של שרת proxy: ‏ /hello
    • ‫API קיים: http://mocktarget.apigee.net/
  7. לוחצים על הבא.
  8. בדף 'אבטחה' באשף, בוחרים באפשרות העברה (ללא).
  9. לוחצים על הבא.
  10. בדף 'מארחים וירטואליים' באשף, מאשרים את ברירות המחדל.
  11. לוחצים על הבא.
  12. בדף 'יצירה' של האשף, בודקים את הגדרות לשרת proxy. מוודאים שהסביבה test נבחרה.
  13. לוחצים על Build and Deploy (בנייה ופריסה).

2. יצירת מוצר

  1. בתפריט הניווט הצדדי, בוחרים באפשרות פרסום > מוצרי API.
  2. לוחצים על + מוצר API. יופיע דף פרטי המוצר.
  3. ממלאים את הדף 'פרטי מוצר' באופן הבא:
    • שם: EdgeMicroTestProduct
    • השם המוצג: EdgeMicroTestProduct
    • סביבה: בדיקה וייצור
    • גישה: גלוי לכולם
    • Key Approval Type: Automatic
  4. בקטע Resources (משאבים), לוחצים על +API Proxy (proxy ל-API).
  5. בוחרים באפשרות edgemicro-auth.
  6. לוחצים שוב על +API Proxy.
  7. בוחרים באפשרות edgemicro_hello.
  8. לוחצים על + משאב בהתאמה אישית.
  9. מזינים /**
  10. לוחצים שוב על + משאב בהתאמה אישית.
  11. מזינים /.
  12. לוחצים על שמירה.

3. (אופציונלי) יצירת מפתח לבדיקה

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

  1. בתפריט הניווט הצדדי, בוחרים באפשרות פרסום > מפתחים.
  2. לוחצים על + Developer (מפתח).
  3. ממלאים את תיבת הדו-שיח כדי ליצור מפתח לבדיקה.

4. יצירת אפליקציה למפתחים

תשתמשו בפרטי הכניסה של הלקוח מהאפליקציה הזו כדי לבצע קריאות מאובטחות ל-API דרך Edge Microgateway:

  1. בתפריט הניווט הצדדי, בוחרים באפשרות פרסום > אפליקציות.
  2. לוחצים על + אפליקציה. מופיע הדף 'פרטי אפליקציה למפתחים'.
  3. ממלאים את דף האפליקציה למפתחים באופן הבא:
    1. שם: EdgeMicroTestApp
    2. השם המוצג: EdgeMicroTestApp
    3. מפתח: אם יצרתם מפתח לבדיקה, בוחרים אותו. אפשר גם להשתמש במפתח קיים לצורך המדריך הזה.
    4. פרטי הכניסה:
      1. בוחרים באפשרות 'תפוגה': אף פעם.
      2. לוחצים על + מוצר ובוחרים באפשרות EdgeMicroTestProduct (המוצר שיצרתם).
  4. לוחצים על שמירה.
  5. חוזרים לדף רשימת האפליקציות.
  6. בוחרים את האפליקציה שיצרתם, EdgeMicroTestApp.
  7. לצד Consumer Key (טוקן צרכן) ו-Consumer Secret (סוד לשימוש עם טוקן צרכן), לוחצים על Show (הצגה).

חלק 3: הפעלה של Edge Microgateway

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

1. הפעלת Edge Microgateway

משתמשים בפקודה edgemicro start כדי להפעיל את Edge Microgateway.

  1. חשוב לוודא שיש לכם את המפתחות שהוחזרו קודם כשמריצים את הפקודה edgemicro configure. הפלט נראה בערך כך:
    You need key and secret while starting edgemicro instance
    
    key: da4778e7c240a5d4585fc559eaba5083328828bc9f3a7f583e8b73e
    secret: 3aad7439708b4aeb38ee08e82189921ad00e6fc1ba8a8ae9f929ee2
  2. (אופציונלי) הדפסת מידע עזרה לפקודה edgemicro start.
    edgemicro start -h
  3. כדי להפעיל את Edge Microgateway, מריצים את הפקודה הבאה:
    edgemicro start -o [org] -e [env] -k [key] -s [secret]

    כאשר:

    • org הוא שם הארגון שלכם ב-Edge (צריכות להיות לכם הרשאות אדמין בארגון).
    • env היא סביבה בארגון (למשל בדיקה או ייצור).
    • key הוא המפתח שהוחזר קודם על ידי הפקודה configure.
    • secret הוא המפתח שהוחזר קודם על ידי הפקודה configure.

    דוגמה

    edgemicro start -o docs -e test -k 701e70e718ce6dc1880616b3c39177d64a88754d615c7a4e1f78b6181d000723 -s 05c14356e42d136b83dd135cf8a18531ff52d7299134677e30ef4e34ab0cc824

    פלט

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

    ...
    
    current nodejs version is v12.5.0
    current edgemicro version is 3.0.2
    info: jwk_public_keys download from null returned 200 undefined
    info: jwt_public_key download from https://docs-test.apigee.net/edgemicro-auth/publicKey returned 200 OK
    info: products download from https://docs-test.apigee.net/edgemicro-auth/products returned 200 OK
    info: config download from https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test returned 200 OK
    PROCESS PID : 17991
  4. בודקים את הסטטוס של שער המיקרו. בחלון טרמינל אחר, עוברים לאותה ספרייה שבה התחלתם את Edge Micro ומזינים את הפקודה הבאה:
    edgemicro status
    current nodejs version is v12.5.0
    current edgemicro version is 3.0.2
    edgemicro is running with 8 workers

מה קרה?

מורידים מטען ייעודי (payload) של נתוני תצורה של Edge Microgateway מ-Apigee Edge ושומרים אותו במטמון באופן מקומי. המידע הזה כולל:

  • המפתח הציבורי שיצרנו ואחסנו קודם במפת ערכי מפתח (KVM) מוצפנת.
  • ייצוג של כל ה-proxies שמודעים ל-Edge Microgateway שקיימים בארגון או בסביבה. אלה כל שרתי ה-proxy ששמם מתחיל בקידומת edgemicro_.
  • ייצוג של כל מוצרי ה-API שקיימים בארגון או בסביבה.

בעזרת המידע הזה, Edge Microgateway יודע אילו שרתי proxy ונתיבי proxy מותר לו לעבד. הוא משתמש בפרטי המוצר כדי לאכוף אבטחה (בדיוק כמו שכל שרת proxy ל-API עושה ב-Apigee Edge, שבו מפתחות של אפליקציות למפתחים משויכים למוצרים). בהמשך נסביר איך לאבטח את Edge Microgateway.

2. בדיקת Edge Microgateway

אחרי שמפעילים את Edge Microgateway, אפשר לקרוא לשרת ה-proxy. ההגדרה של ה-proxy‏ edgemicro_hello הורדה מ-Edge כשמפעילים את Edge Microgateway. חשוב לזכור: נתיב הבסיס של ה-proxy הוא ‎/hello.

כדי לבדוק את Edge Microgateway, מתחילים עם נתיב הבסיס ומוסיפים נתיב משאב ‎/echo. שימו לב שכל מה שאחרי נתיב הבסיס (כולל פרמטרים של שאילתות) מועבר פשוט ליעד בקצה העורפי:

curl -i http://localhost:8000/hello/echo
{"error":"missing_authorization","error_description":"Missing Authorization header"}

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

4. הפסקת Edge Microgateway

  1. בחלון מסוף נפרד, עוברים cd לאותה ספרייה שבה התחלתם את Edge Microgateway.
  2. מזינים את פקודת העצירה:
    edgemicro stop

חלק 4: Secure Edge Microgateway

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

אבטחת קריאות ל-API באמצעות אסימון גישה מסוג OAuth2

כדי לבצע אימות של קריאות ל-API באמצעות אסימון גישה מסוג OAuth2:

1. קבלת המפתחות הנדרשים

  1. בממשק המשתמש של Edge, עוברים לאפליקציית המפתח שיצרתם קודם. שם האפליקציה היה EdgeMicroTestApp.
  2. בדף Developer App (אפליקציה למפתחים), מציגים את Consumer Key (טוקן צרכן) ואת Consumer Secret (סוד לשימוש עם טוקן צרכן) ומעתיקים אותם. הערכים האלה נדרשים כדי לקבל אסימון גישה בשלב הבא.

2. קבלת טוקן גישה

יש שתי דרכים לקבל אסימון גישה. נציג לכם את שתי השיטות.

שימוש ב-CLI כדי לקבל אסימון גישה

השיטה הראשונה נוחה, והיא דומה לשיטה שבה השתמשנו לאורך המדריך. השיטה השנייה שימושית יותר בדרך כלל למפתחים של אפליקציות לקוח שצריכים לבקש טוקנים. נקודת הקצה בפועל של הטוקן מיושמת בשרת ה-proxy edgemicro-auth שנפרס כשהגדרתם את Edge Microgateway.

  1. (אופציונלי) כדי לראות את העזרה עבור הפקודה token get:
    edgemicro token get -h
  2. יוצרים את הטוקן, ומחליפים את הערכים של מפתח הצרכן וסוד הצרכן מאפליקציית הפיתוח שיצרתם ב-Apigee Edge בפרמטרים ‎-i ו-‎-s:
    edgemicro token get -o [org] -e [env] -i [consumer_key] -s [consumer_secret]

    כאשר:

    • org הוא שם הארגון שלכם ב-Edge (צריכות להיות לכם הרשאות אדמין בארגון).
    • env היא סביבה בארגון (למשל בדיקה או ייצור).
    • consumer_id הוא מספר הצרכן באפליקציית הפיתוח שיצרתם קודם.
    • consumer_secret הוא סוד הצרכן באפליקציית המפתחים שיצרתם קודם.

    דוגמה

    edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy

    פלט (דוגמה)

    current nodejs version is v12.5.0
    { token: 'eyJ0eXAiOiJKV1QiLCJhbGciSUzI1NiJ9.eyJhcHBsaWNhdGl
    vbl9uYW1lIjoiNWNiMGY0tOWMzOC00YmJjLWIzNzEtZGMxZTQzOGYxZGMxI
    iwiY2xpZW50X2lkIjoiNVVdBWEdvSU9lbzYwYWV3OTRQN0c1TUFaRTNhSnA
    iLCJzY29wZXMiOltdLCJhcGlfcHJvjdF9saXN0IjpbIsVkZ2VNaWNyb1Rlc
    3RQcm9kdWN0IlmlhdCI6MTQ3ODIwODMzMiwiZXhwIjoxNDc4MjEwMTMxfQ.
    v3Q8Rs0W9FO_XpERwIAMMXhjGamRmmmWgrAy1wJv0-99oajx5ASI5qjNubM
    nCF14xxwlVXHcz1VfedA8Nx7Ih145zhWWuPKL9muzhXXnVBRFeBMeeLqJk4
    QQ7Bhst7xH_68nJSTE20Egu95DHOCUemfrepDFH0VggY4BmzvwLkBNfz_te
    E_YqwKZbpGOLMdKK1vMk0fk0x19SieIMS_aJYeOAklrzUhnFxWJFrsAWsax
    NLx_BbQcZzYfK1JSDUrhRNVBuPHMnGjNA_oHw2J4qa6Hsp62PfchG-DIW_t
    -0BFnYf3rYXmqyNORqFrOMdl4VxqQ' }

(אופציונלי) שימוש ב-API כדי לקבל טוקן

אם אתם רגילים לקרוא לשרתי proxy של Edge באמצעות curl או לקוח HTTP אחר, כדאי לדעת שאפשר לקרוא ישירות לנקודת הקצה של הטוקן, במקום להשתמש בפקודה edgemicro token. הנה דוגמה ל-curl. פשוט מחליפים את שמות הארגון והסביבה בכתובת ה-URL, ומעבירים את הערכים של מפתח הצרכן:הסוד לשימוש עם טוקן צרכן שמופרדים באמצעות נקודתיים בכותרת של אימות בסיסי:

curl -i -X POST "http://[org]-[env].apigee.net/edgemicro-auth/token" -d '{ "client_id": "your consumer key", "client_secret": "your consumer secret", "grant_type": "client_credentials" }' -H "Content-Type: application/json"

כאשר:

  • org הוא שם הארגון שלכם ב-Edge (צריכות להיות לכם הרשאות אדמין בארגון).
  • env היא סביבה בארגון (למשל בדיקה או ייצור).
  • client_id הוא מספר הצרכן באפליקציית הפיתוח שיצרתם קודם.
  • client_secret הוא סוד הצרכן באפליקציית הפיתוח שיצרתם קודם לכן.

פלט (דוגמה)

הפקודה, בין אם השתמשתם בפקודת ה-CLI edgemicro token או קראתם לנקודת הקצה באמצעות curl, מחזירה אסימון גישה חתום שאפשר להשתמש בו כדי לבצע קריאות ללקוח. למשל:

MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls 
b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD 
VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3 
OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFsnhB0Yvg6JKWxKWBDP9o
Xl96dtgH7xPFRqIU0zI452jkMQ1fPz2mSaGwik241yfBku7olooXKRKTRKOUoXa
q3Hld/RPxGSsWtiyyYtKex7tuFdq0Knm1EhowdTRGIgjNvudeYMka/XPRXuykhd 
xIDxWj4rdX+4GPx9qT2eTQC5nOAC7XHVL7ys4KqsAiv28vw10u400KstFFS8Qho 
7FaE0bOKLolKKadKyA60ha1XIw/uSTD6ZQFWQ+XM3OaRbXePWXnSZioSxXcZT7L 
hMUKbsRXw/TCvRB51LgNAgMBAAEwDQYJKoZIhvcNAQELBQADgEBAOuR1OmE/W6j 
gRAarJB5EQuTEpI/9Zpg5c5RAGjzLhkazsycn7pal+IymUjCV7D0oIxTVuTM8ZZ 
57kR5hF/C1ZypDN9i+KGP2ovX8WOCCXYtIQECgZPB/L/7/k7BDuKN4vFBvWUe3X 
s2oyjnVWy+ASqsW8gHfj8ekhe22bP240Oqkbyg9SZP9ol1tvJX6+M0thYwcTwAd 
ft929Icey/MOTQC0jB2qm0gnIx/7KInFXfS5KoFRJoGrWDeckr3RdBo2LhnPaeZ 
1gPYIqphZ3HfisF5KlBXoR8oT/Ilym/nq5COlv+3L4tMIk18F7BQZB60SRazifz 
pFkIxepyr/0=
      

3. בדיקת ההגדרה ב-Edge Microgateway

  1. פותחים את הקובץ $HOME/.edgemicro/org-env-config.yaml. אם אתם לא מוצאים את הקובץ הזה, כדאי לעיין במאמר איפה מותקן Edge Microgateway.
  2. מוודאים שהמאפיינים הבאים של פלאגין OAuth מוגדרים כ-false. הערך שלהם הוא false כברירת מחדל, אבל מומלץ לבדוק שוב:
    oauth:
       allowNoAuthorization: false
       allowInvalidAuthorization: false
  3. בנוסף, בקובץ org-env-config.yaml, מוודאים שהפלאגין oauth נוסף לרכיב plugins:sequence, כמו בדוגמה הבאה::
    plugins:
       dir: ../plugins
       sequence:
       - oauth
  4. אם מבצעים שינויים בקובץ, צריך לטעון מחדש את השינויים במופע הפועל של Edge Microgateway. הפקודה הזו מגדירה מחדש את Edge Microgateway ללא השבתה:
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]

    כאשר:

    • org הוא שם הארגון שלכם ב-Edge (צריכות להיות לכם הרשאות אדמין בארגון).
    • env היא סביבה בארגון (למשל בדיקה או ייצור).
    • key הוא המפתח שהוחזר קודם על ידי הפקודה configure.
    • secret הוא המפתח שהוחזר קודם על ידי הפקודה configure.

    דוגמה

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d

4. שליחת קריאה ל-API בצורה מאובטחת

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

  curl -i -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhcHBsaWNhdGlvbl
9uYW1lIjoiYmU2YmZjYjAtMWQ0Ni00Y2IxLWFiNGQtZTMxNzRlNTAyMDZkIiwiY2xpZW50X2lkIjoiOGxTTTVIRHdyM
VhIT1ZwbmhURExhYW9FVG5STVpwWk0iLCJzY29wZXMiOltdLCJhcGlfcHJvZHVjdF9saXN0IjpbIk1pY3JvZ2F0ZXdh
eVRlQcm9kdWN0Il0sImCI6MTQzNTM0NzY5MiwiZXhwIjoxNDM1MzQ5NDkxfQ.PL30Y6uK1W1f2ONPEsBDB_BT31c6
IsjWGfwpz-p6Vak8r767tAT4mQAjuBpQYv7_IU4DxSrnxXQ_q536QYCP4p4YKfBvyqbnW0Rb2CsPFziy_n8HIczsWO
s0p4czcK63SjONaUpxV9DbfGVJ_-WrSdqrqJB5syorD2YYJPSfrCcgKm-LpJc6HCylElFDW8dHuwApaWcGRSV3l5Wx
4A8Rr-WhTIxDTX7TxkrfI4THgXAo37p3au3_7DPB_Gla5dWTzV4j93xLbXPUbwTHzpaUCFzmPnVuYM44FW5KgvBrV0
64RgPmIFUxSqBWGQU7Z1w2qFmWuaDljrMDoLEreI2g" http://localhost:8000/hello/echo

ה-API מחזיר כותרות ומידע אחר מהשרת המדומה.

אבטחת ה-API באמצעות מפתח API

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

1. קבלת מפתח ה-API

  1. בממשק המשתמש של Edge, עוברים לאפליקציית המפתח שיצרתם קודם. שם האפליקציה היה EdgeMicroTestApp.
  2. בדף Developer App (אפליקציה למפתחים), מציגים את Consumer Key (מפתח צרכן) ומעתיקים אותו. הערך הזה הוא מפתח ה-API. תשתמשו במפתח הזה כדי לבצע קריאות מאומתות ל-API.

2. בדיקת ההגדרה ב-Edge Microgateway

  1. פותחים את הקובץ $HOME/.edgemicro/org-env-config.yaml. אם לא מוצאים את הקובץ הזה, אפשר לעיין במאמר איפה מותקן Edge Microgateway.
  2. מוודאים שהמאפיינים הבאים של פלאגין OAuth מוגדרים כ-false. הערכים שלהם הם false כברירת מחדל, אבל אפשר לבדוק אותם אם רוצים:
    oauth:
       allowNoAuthorization: false
       allowInvalidAuthorization: false
  3. בנוסף, בקובץ org-env-config.yaml, מוודאים שהפלאגין oauth נוסף לרכיב plugins:sequence, כמו בדוגמה הבאה::
    plugins:
       dir: ../plugins
       sequence:
       - oauth
        
  4. אם מבצעים שינויים בקובץ, צריך לטעון מחדש את השינויים במופע הפועל של Edge Microgateway. הפקודה הזו מגדירה מחדש את Edge Microgateway ללא השבתה:
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]

    כאשר:

    • org הוא שם הארגון שלכם ב-Edge (צריכות להיות לכם הרשאות אדמין בארגון).
    • env היא סביבה בארגון (למשל בדיקה או ייצור).
    • key הוא המפתח שהוחזר קודם על ידי הפקודה configure.
    • secret הוא המפתח שהוחזר קודם על ידי הפקודה configure.

    דוגמה

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c30177d64a88754d615c74e1f78b6181d

3. שליחת קריאה ל-API בצורה מאובטחת באמצעות מפתח API

שולחים קריאה ל-API עם הכותרת x-api-key באופן הבא. הערך של מפתח הצרכן שהעתקתם מאפליקציית הפיתוח הוא מפתח ה-API. כברירת מחדל, Edge Microgateway מצפה שתעבירו את המפתח בכותרת שנקראת x-api-key, כך:

curl -i http://localhost:8000/hello/echo -H "x-api-key: [apikey]"

כאשר:

  • apikey הוא הערך של Consumer Key שנלקח מ-EdgeMicroTestApp.

לדוגמה:


curl -i http://localhost:8000/hello/echo -H 'x-api-key: XsU1R4zGXz2ERxd0ilYQ5szwuljr5bB'

יש לכם עכשיו Edge Microgateway שפועל בצורה מלאה ומאובטחת. בחלק הבא של המדריך נסביר על תוספים שמוסיפים פונקציונליות ל-Edge Microgateway.

חלק 5: הוספת פלאגין של Spike Arrest

בשלב הזה, נוסיף למכונה של Edge Microgateway תכונה להגבלת קצב שנקראת spike arrest (מניעת קפיצות פתאומיות).

מהם תוספים?

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

הוספת פלאגין למניעת קפיצות

תוסף למניעת עליות פתאומיות מגן מפני עליות פתאומיות בתנועה. הוא מגביל את מספר הבקשות שמעובדות על ידי מופע של Edge Microgateway.

ב-Edge Microgateway, מנגנון למניעת עליות פתאומיות מיושם כמודול פלאגין. כדי להפעיל אותו, צריך להוסיף אותו לקובץ ההגדרות של Edge Microgateway.

  1. אם לא מוצאים את הקובץ, פותחים את הקובץ $HOME/.edgemicro/org-env-config.yaml.Where is Edge Microgateway installed.
  2. מוסיפים את הרכיב הבא. אפשר להוסיף אותו בכל מקום בקובץ.
       spikearrest:
          timeUnit: minute   
          allow: 10   
          buffersize: 0   
  3. מוסיפים spikearrest לרכיב edgemicro:sequence, כמו שמוצג למטה. מאפיין ההגדרה sequence מציין ל-Edge Microgateway את הסדר שבו מודולי הפלאגין מופעלים.
    edgemicro:
      home: ../gateway
      port: 8000
      max_connections: -1
      max_connections_hard: -1
      logging:
        level: info
        dir: /var/tmp
        stats_log_interval: 60
      plugins:
        dir: ../plugins
      sequence:
        - oauth
        - spikearrest
  4. שומרים את קובץ ההגדרות.
  5. טוענים מחדש את Edge Microgateway באמצעות הפקודה reload. צריך להריץ את הפקודה הזו מהספרייה שממנה הפעלתם את Edge Microgateway.
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]

    כאשר:

    • org הוא שם הארגון שלכם ב-Edge (אתם צריכים להיות אדמינים של הארגון).
    • env היא סביבה בארגון (למשל בדיקה או ייצור).
    • key הוא המפתח שהוחזר קודם על ידי הפקודה configure.
    • secret הוא המפתח שהוחזר קודם על ידי הפקודה configure.

    דוגמה

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
  6. נסו לבצע כמה קריאות ל-API ברצף מהיר. אחרי השיחה השנייה, Edge Microgateway מחזיר את השגיאה הבאה:
    {"message":"SpikeArrest engaged","status":503}

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

נקודות בונוס: הוספת התוסף quota

אפשר להוסיף פלאגינים אחרים, כמו quota plugin, באותה דרך שבה מגדירים את spike arrest. בדומה לתוסף Spike Arrest, התוסף Quota כלול בכל התקנה של Edge Microgateway. מכסה מציינת את מספר הודעות הבקשה שאפליקציה יכולה לשלוח ל-API במהלך פרק זמן מוגדר (דקות או שעות).

חלק 6: צפייה בניתוח נתונים ב-Apigee Edge

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

  1. מתחברים לארגון ב-Apigee Edge.
  2. בוחרים באפשרות Analytics > ביצועי שרת proxy.
  3. במרכז הבקרה של ביצועי ה-Proxy, בוחרים באפשרות edgemicro_hello proxy.
  4. בתרשים מוצג מידע על דפוסי התנועה של השרת הפרוקסי, כמו נפח התנועה הכולל, זמן התגובה הממוצע, זמן התגובה הממוצע של היעד ועוד.

מידע נוסף על מרכזי בקרה של Edge Analytics זמין בדף הבית של מרכזי הבקרה של Analytics במסמכי Edge. מידע נוסף על פלאגינים זמין במאמר שימוש בפלאגינים