במדריך הזה מוסבר איך ליצור חתימה, ומהם שדות החובה והשדות האופציונליים בחתימות.
כדי ליצור חתימה, צריך ליצור מחרוזת לחתימה, שאנחנו קוראים לה ערך חתום במדריך הזה. הערך החתום כולל פרמטרים שמתארים את התוכן שאתם מגנים עליו, את תוקף הערך החתום וכו'.
משתמשים בערך החתום בזמן יצירת מחרוזת חתימה. יוצרים מחרוזת חתימה על ידי הרכבת הפרמטרים של החתימה, כמו חתימת Ed25519 של מפתח אסימטרי של הערך החתום.
Media CDN משתמש בחתימה הסופית כדי להגן על התוכן שלכם.
פורמטים נתמכים של חתימות
Media CDN תומך בפורמטים הבאים של בקשות חתומות.
| פורמט | התנהגות | דוגמה |
|---|---|---|
| פרמטרים של שאילתה (כתובת URL מדויקת) |
כתובת URL מדויקת, למתן גישה לכתובת URL ספציפית. |
מדויקת:
|
| פרמטרים של שאילתה (קידומת של כתובת URL) |
ציון URLPrefix מאפשר לכם לחתום על תחילית ולצרף את אותם פרמטרים של שאילתה לכמה כתובות URL בתוך הנגן או יצירת המניפסט.
|
מה צריך לחתום:
מחליפים את |
| רכיב נתיב |
קידומת: מאפשרת גישה לכל כתובת URL עם קידומת לפני הרכיב כך כתובות URL יחסיות של קובץ מניפסט יכולות לקבל באופן אוטומטי את רכיב כתובת ה-URL החתומה כשמאחזרים משאבי משנה. |
https://media.example.com/video/edge-cache-token=Expires=EXPIRATION
|
| קובץ Cookie חתום | קידומת: קובץ ה-Cookie מאפשר גישה לכל כתובת URL עם הקידומת שצוינה בערך URLPrefix החתום.
|
Edge-Cache-Cookie:
|
יצירת חתימה
יוצרים ערך חתום על ידי שרשור מחרוזת שמכילה את שדות החתימה הנדרשים ואת שדות החתימה האופציונליים הרצויים.
אם מציינים את הפרמטר
URLPrefix, הוא חייב להופיע ראשון, ואחריו הפרמטריםExpires,KeyNameוכל הפרמטרים האופציונליים.מפרידים בין כל שדה ובין כל פרמטר באמצעות התווים הבאים:
- לגבי קובצי Cookie, משתמשים בתו נקודתיים
:. - לפרמטרים של שאילתות ולרכיבי נתיב, משתמשים בתו אמפרסנד
&.
- לגבי קובצי Cookie, משתמשים בתו נקודתיים
חתימה על הערך החתום באמצעות חתימת Ed25519.
מוסיפים מפריד שדות (
:או&) ואחריוSignature=ואת חתימת Ed25519 לסוף המחרוזת.
יצירת כתובת URL חתומה
בדוגמאות הקוד הבאות אפשר לראות איך ליצור כתובת URL חתומה באופן פרוגרמטי.
Go
כדי לבצע אימות ב-Media CDN, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי לבצע אימות ב-Media CDN, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
יצירת תחילית של כתובת URL חתומה
בדוגמאות הקוד הבאות אפשר לראות איך ליצור באופן פרוגרמטיבי קידומת של כתובת URL חתומה.
Go
כדי לבצע אימות ב-Media CDN, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי לבצע אימות ב-Media CDN, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
יצירת קובץ Cookie של כתובת URL חתומה
בדוגמאות הקוד הבאות אפשר לראות איך ליצור קובץ Cookie של כתובת URL חתומה באופן פרוגרמטי.
Go
כדי לבצע אימות ב-Media CDN, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי לבצע אימות ב-Media CDN, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
יצירת רכיב נתיב חתום
בדוגמאות הקוד הבאות אפשר לראות איך ליצור רכיב חתום של נתיב באופן פרוגרמטי.
Python
כדי לבצע אימות ב-Media CDN, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
שדות חתימה נדרשים
חובה למלא את השדות הבאים בכל חתימה:
ExpiresKeyNameSignature
אם יש פרמטרים של שאילתה, הם צריכים להיות מקובצים יחד כפרמטרים האחרונים בכתובת ה-URL. אלא אם צוין אחרת, השמות של הפרמטרים והערכים שלהם הם תלויי אותיות רישיות.
בטבלה הבאה מוסבר על כל פרמטר:
| שם השדה | פרמטרים של חתימה | ערך חתום |
|---|---|---|
Expires |
מספר שלם של שניות שחלפו מאז ראשית זמן יוניקס (Unix epoch) (1970-01-01T00:00:00Z) | Expires=EXPIRATION_TIME, שאחריו החתימה כבר לא תקפה. |
KeyName |
השם של EdgeCacheKeyset שמשמש לחתימה על הבקשה הזו. KeyName מתייחס לכל קבוצת המפתחות, ולא למפתחות ספציפיים בתוך קבוצת המפתחות עצמה.
|
KeyName=EDGE_CACHE_KEYSET |
Signature |
גרסה של החתימה בקידוד Base64. | לא רלוונטי |
שדות אופציונליים לחתימה
אם יש פרמטרים של שאילתה, הם צריכים להיות מקובצים יחד כפרמטרים האחרונים בכתובת ה-URL. אלא אם צוין אחרת, השמות של הפרמטרים והערכים שלהם הם תלויי אותיות רישיות.
בטבלה הבאה מוסבר שם הפרמטר ופרטים נוספים לגבי פרמטרים אופציונליים של חתימה:
| שם השדה | פרמטרים של חתימה | ערך חתום |
|---|---|---|
HeaderName |
שם של שדה כותרת בקשה שחייב להופיע בבקשה. כשחותמים על הודעה, צריך להשתמש באותיות קטנות כי שמות השדות בכותרת הם תלויי אותיות רישיות. Media CDN ממיר את האותיות בכותרת לאותיות קטנות לפני אימות החתימה. |
HeaderName=HEADER_NAME |
HeaderValue |
ערך של שדה כותרת בקשה עם שם שחייב להיות נוכח בבקשה. בדרך כלל זה מזהה משתמש או מזהה אטום אחר. בקשות
עם HeaderValue אבל בלי HeaderName נדחות.
|
HeaderValue=HEADER_VALUE |
IPRanges |
רשימה של עד חמש כתובות IPv4 ו-IPv6 בפורמט CIDR, שכתובת ה-URL הזו תקפה לגביהן בפורמט base64 בטוח לשימוש באינטרנט. לדוגמה,
כדי לציין את טווחי כתובות ה-IP 192.6.13.13/32,193.5.64.135/32, מציינים את
יכול להיות שטווח כתובות ה-IP לא יעזור לכם לכלול בחתימות כשלקוחות נמצאים בסיכון להעברות WAN או במקרים שבהם נתיב הרשת לחלק הקדמי של האפליקציה שונה מנתיב המסירה.
Media CDN דוחה לקוחות עם קוד אלה מקרים שבהם יכול להיות ש-Media CDN ידחה לקוחות עם קוד
כל הגורמים האלה יכולים לגרום לכך שללקוח מסוים תהיה כתובת IP לא דטרמיניסטית במהלך הפעלת סרטון. אם כתובת ה-IP של הלקוח משתנה אחרי שניתנה גישה, והלקוח מנסה להוריד קטע וידאו למאגר הזמני להפעלה, הוא מקבל קוד שגיאה |
IPRanges=BASE_64_IP_RANGES |
URLPrefix |
קידומת כתובת ה-URL בקידוד base64 (בטוח לשימוש בכתובת URL) של כתובת ה-URL שאליה רוצים להעניק גישה. ציון של
URLPrefix מאפשר לכם לחתום על תחילית ולצרף את אותם פרמטרים של שאילתה לכמה כתובות URL בתוך הנגן או יצירת המניפסט.
הפרמטר URLPrefix נדרש כשמשתמשים בפורמט של קובץ Cookie חתום.
|
URLPrefix=BASE_64_URL_PREFIX |