מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
Edge מאפשר ליצור מארחים וירטואליים שתומכים ב-TLS חד-כיווני ודו-כיווני. באמצעות TLS חד-כיווני, הלקוח מנפיק בקשת סשן למארח וירטואלי שנפרס בנתב Edge ובנתב משיבה עם אישור שמכיל את המפתח הציבורי של המארח הווירטואלי. עבור אישור חתום, הלקוח לאחר מכן יכול להגיש בקשה לרשות האישורים (CA) כדי לאמת את האישור.
ב-TLS דו-כיווני, אישורי מעבר של הלקוח ואישורי Edge שאומתו כחלק מבקשה:
- נתב Edge מציג את האישור שלו ללקוח TLS כדי לאמת את עצמו. הלקוח/ה לאחר מכן מאמת את זהות השרת לפני שליחת האישור לשרת.
- לקוח TLS מציג את האישור שלו ל-Edge כדי לבצע אימות.
למידע נוסף, ראו מידע על מארחים וירטואליים.
תיעוד פרטי חיבור TLS (אבטחת שכבת התעבורה)
במהלך שליחת בקשה לשרת proxy ל-API דרך מארח וירטואלי שתומך ב-TLS, Edge יכול לצלם מידע על חיבור TLS. לאחר מכן שרת ה-proxy של ה-API יכול לגשת למידע הזה דרך של משתני הזרימה כדי לבצע ניתוח ואימות נוספים.
סוג המידע על TLS שנקלט על ידי Edge תלוי בתמיכה של המארח הווירטואלי TLS חד-כיווני או דו-כיווני. לדוגמה, עבור TLS חד-כיווני, Edge יכול לתעד מידע על הצפנה ב-TLS (אבטחת שכבת התעבורה) או פרוטוקול TLS שנעשה בהם שימוש בחיבור TLS.
עבור TLS דו-כיווני, Edge יכול לקלוט את כל המידע שצולם ב-TLS חד-כיווני, וגם לתעד מידע על האישור של הלקוח. לדוגמה, Edge יכול לתעד את טביעת האצבע מסוג SHA1 של אישור הלקוח ושל אישור הלקוח בפורמט PEM.
איסוף מידע לגבי שני הסוגים TLS חד-כיווני ודו-כיווני
בטבלה הבאה מפורטים משתני הזרימה שמכילים פרטי חיבור של TLS שתועדו
באמצעות Edge וזמין לגישה דרך ה-API. המידע הזה מתועד בשני הכיוונים
ו-TLS דו-כיווני על ידי הגדרה של <ConnectionProperties>
כ-true
הגדרת מארח וירטואלי:
משתנה זרימה | תיאור |
---|---|
tls.cipher
|
ההצפנה שבה נעשה שימוש בחיבור TLS (אבטחת שכבת התעבורה). |
tls.protocol
|
הפרוטוקול שבו נעשה שימוש בחיבור TLS. |
tls.server.name
|
שם שרת ה-SNI המבוקש. |
tls.session.id
|
מזהה הסשן. משתנה הזרימה הזה זמין כשמגדירים את |
לכידת מידע TLS נוסף במהלך TLS דו-כיווני
בטבלה הבאה מפורטים משתני הזרימה שמכילים פרטי אישורי לקוח שתועדו על ידי Edge
ב-TLS דו-כיווני. המידע הזה מתועד עבור TLS דו-כיווני באמצעות הגדרה
<ClientProperties>
מוגדר ל-TRUE בהגדרת המארח הווירטואלי:
משתנה זרימה | תיאור |
---|---|
tls.client.s.dn
|
השם הייחודי (DN) של הנושא של אישור הלקוח. |
tls.client.i.dn
|
השם הייחודי (DN) של המנפיק של אישור הלקוח. |
tls.client.raw.cert
|
אישור הלקוח בפורמט PEM. |
tls.client.cert.serial
|
המספר הסידורי של אישור הלקוח. |
tls.client.cert.fingerprint
|
טביעת האצבע מסוג SHA1 של אישור הלקוח. |
tls.session.id
|
מזהה הסשן. משתנה הזרימה הזה זמין כאשר מגדירים
|
הגדרת מארח וירטואלי לתיעוד מידע של TLS
כדי להגדיר שהמארח הווירטואלי יתעד מידע של TLS, צריך להגדיר את המאפיינים הבאים
מתחת ל-<PropagateTLSInformation>
עד true
.
<ConnectionProperties>
: הפעלת תיעוד פרטי חיבור TLS ל-TLS חד-כיווני וגם ל-TLS דו-כיווני. ערך ברירת המחדל הואfalse
.<ClientProperties>
: הפעלת תיעוד של מידע נוסף ל-TLS דו-כיווני. ערך ברירת המחדל הואfalse
.
לדוגמה, הגדרת המארח הווירטואלי הבאה משתמשת ב-TLS דו-כיווני והיא מאפשרת תיעוד של שני הסוגים של מידע ב-TLS:
<VirtualHost name="secure"> .... <SSLInfo> <Enabled>true</Enabled> # Enable two-way TLS. <ClientAuthEnabled>true</ClientAuthEnabled> <IgnoreValidationErrors>false</IgnoreValidationErrors> <KeyAlias>ks-alias</KeyAlias> <KeyStore>ref://ks-ref</KeyStore> <TrustStore>ref://ts-ref</TrustStore> </SSLInfo> <PropagateTLSInformation> <ConnectionProperties>true</ConnectionProperties> <ClientProperties>true</ClientProperties> </PropagateTLSInformation> </VirtualHost>
אם אתם מעבירים גוף JSON, צריך להגדיר את המאפיינים כך:
"propagateTLSInformation" : { "connectionProperties" : true, "clientProperties" : true }
הגדרת מגבלות לגודל של כותרת
כשמפעילים תיעוד של פרטי TLS במארח וירטואלי, Edge מעביר את המידע הזה באמצעות כותרות HTTP. לכן צריך לוודא שמגבלות גודל הכותרת מוגדרות כראוי בהתאם לשימוש ב-Edge ל-Cloud או ל-Edge לענן הפרטי:
- Edge for Cloud: ב-Apigee גודל הכותרות מוגדר בהתאם.
- מדריך לענן פרטי: התכונה לא זמינה.
גישה למשתני הזרימה בשרת proxy ל-API
מתוך שרת ה-proxy ל-API, אפשר לגשת למשתני הזרימה של TLS ולבדוק אותם. לדוגמה, אפשר להשתמש בפקודה AssignMessage המדיניות כדי לגשת אליהם, צריך לגשת אליהם ב-JavaScript באמצעות המדיניות בנושא JavaScript.
אפשר גם להפנות למשתני הזרימה ברכיב <Condition>
של שרת proxy או של תהליך היעד,
או ב-<Step>
או ב-<RouteRule>
. לדוגמה, אפשר לנתב
בקשה ליעדים שונים על סמך ה-SN של הלקוח.
מידע נוסף זמין במאמרים הבאים: