אתם צופים במסמכי העזרה של Apigee Edge.
כניסה למסמכי העזרה של Apigee X. info
ב-Edge אפשר ליצור מארחים וירטואליים שתומכים ב-TLS חד-כיווני וב-TLS דו-כיווני. באמצעות TLS חד-כיווני, הלקוח מנפיק בקשת סשן למארח וירטואלי שנפרס בנתב Edge ובנתב משיבה עם אישור שמכיל את המפתח הציבורי של המארח הווירטואלי. עבור אישור חתום, הלקוח לאחר מכן יוכל להגיש בקשה לרשות האישורים (CA) כדי לאמת את האישור.
ב-TLS דו-כיווני, גם הלקוח וגם Edge מעבירים אישורים שמאומתים כחלק מבקשה:
- Edge Router מציג את האישור שלו ללקוח ה-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 proxy. המידע הזה מתועד בשני הכיוונים
ו-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 for the Cloud או ב-Edge for the Private Cloud:
- Edge for Cloud: ב-Apigee גודל הכותרות מוגדר בהתאם.
- Edge לענן הפרטי: התכונה לא זמינה.
גישה למשתני התהליך ב-proxy ל-API
מתוך שרת ה-proxy ל-API, אפשר לגשת למשתני הזרימה של TLS ולבדוק אותם. לדוגמה, אפשר להשתמש במדיניות AssignMessage כדי לגשת אליהם, ולגשת אליהם ב-JavaScript באמצעות מדיניות JavaScript.
אפשר גם להפנות למשתני הזרימה ברכיב <Condition>
של שרת proxy או של תהליך היעד,
או ב-<Step>
או ב-<RouteRule>
. לדוגמה, אפשר לנתב
בקשה ליעדים שונים על סמך ה-SN של הלקוח.
מידע נוסף זמין במאמרים הבאים: