אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
אבטחה של השלב האחרון בתהליך ההעברה מגנה על השירותים לקצה העורפי שמועברים דרך שרתי proxy על ידי API Services. המטרה העיקרית של אבטחת השלב האחרון היא למנוע מתקפות שנקראות 'מתקפות עורפיות', שבהן מפתח אפליקציות מגלה את כתובת ה-URL של שירות קצה עורפי ועוקף את כל שרתי ה-proxy של ה-API כדי להגיע ישירות לכתובת ה-URL של הקצה העורפי.
אלה האפשרויות העיקריות להגדרת אבטחה של השלב האחרון בדרך אל הלקוח:
- TLS/SSL של לקוח
- אימות של תנועה יוצאת
- מודול tls של Node.js
TLS/SSL של לקוח
המנגנון העיקרי לאבטחת הקילומטר האחרון הוא TLS/SSL של הלקוח, שנקרא גם 'אימות הדדי'.
מידע נוסף זמין במאמר הגדרת TLS מ-Edge אל ה-Backend (Cloud ו-Private Cloud).
אימות של תנועה יוצאת
אפשר גם לאכוף אבטחה של הקילומטר האחרון על ידי דרישה מ-proxy ל-API להציג פרטי כניסה לשירות לקצה העורפי.
לדוגמה, יכול להיות שתרצו ש-proxy ל-API יציג מפתח API לשירות לקצה העורפי שלכם. אפשר גם להשתמש ב-proxy ל-API כדי לקבל אסימון גישה של פרטי כניסה ללקוח OAuth ולהציג אותו.
מפתח API
אפשר להחיל מפתחות API על בקשות יוצאות משרתי proxy ל-API לשירותי backend. ההנחה היא ששירות לקצה העורפי הוא API שיכול להנפיק מפתחות API ולאמת אותם.
אם מגדירים proxy ל-API כדי להציג מפתח API בבקשות יוצאות, צריך לאחסן את מפתח ה-API במקום שבו ה-proxy ל-API יכול לאחזר אותו בזמן הריצה. אחת מהאפשרויות לאחסון מפתחות API היא מפה של מפתח/ערך. ראו מדיניות בנושא פעולות של Key Value Map.
אפשר להשתמש בסוג המדיניות AssignMessage כדי להוסיף את מפתח ה-API ככותרת HTTP, כפרמטר של שאילתה או כרכיב של מטען ייעודי (payload) לבקשה היוצאת. איך מקצים מדיניות להעברת הודעות
פרטי כניסה של לקוח OAuth
אפשר להשתמש בפרטי לקוח ב-OAuth כדי להוסיף שכבת ביטול למפתחות API. אם שירותי הקצה העורפי שלכם תומכים בפרטי כניסה של לקוח OAuth, אתם יכולים להגדיר proxy ל-API כדי להציג טוקן גישה של פרטי כניסה של לקוח לכל בקשה.
צריך להגדיר את ה-proxy ל-API כך שיבצע קריאה כדי לקבל את טוקן הגישה מנקודת הקצה של הטוקן. נדרש גם ש-proxy ל-API ישמור במטמון את טוקן הגישה, כדי שלא יקבל טוקן גישה חדש לכל קריאה.
יש כמה גישות להטמעה של פרטי כניסה של לקוח יוצא.
אפשר לשנות את הדוגמה הזו כדי לקרוא לנקודת הקצה של האסימון ולקבל אסימון גישה. בדוגמה הזו נעשה שימוש ב-JavaScript כדי לצרף את הטוקן לבקשה היוצאת ככותרת הרשאה של HTTP. אפשר גם להשתמש באפשרות הקצאת מדיניות הודעות למטרה הזו.
SAML
אפשר להשתמש בסוג המדיניות GenerateSAMLAssertion כדי לצרף הצהרת SAML להודעת בקשת XML יוצאת, מ-proxy ל-API לשירות לקצה העורפי. כך שירות הקצה העורפי יכול לבצע אימות והרשאה לבקשות שמתקבלות משרתי proxy של API.
Node.js
אם יעד ה-API proxy הוא אפליקציית Node.js, אפשר להשתמש במודול Node.js tls כדי ליצור חיבורים מאובטחים לשירותי backend. אתם שולחים בקשות יוצאות באמצעות מודול tls באותו אופן שבו אתם עושים זאת בדרך כלל ב-Node.js. בעיקרון, צריך להוסיף מפתחות ואישורים בצד הלקוח (קבצי .pem) לספרייה resources/node ולטעון אותם בסקריפט. מידע על השימוש במודול tls ובשיטות שלו זמין במסמכי העזרה של מודול tls של Node.js. מידע נוסף מופיע במאמר בנושא הסבר על תמיכת Edge במודולים של Node.js.