מכיל מאפיינים שקשורים לקריאה ל-API עצמה, שונים מהמשתמש, מהמכשיר או מהרשת.
מאפיינים של origin
בקטע הזה מפורטים המאפיינים שנתמכים באובייקט origin.
מאפיינים
ip
סוג
מחרוזת
תיאור
כתובת ה-IP שממנה נשלחה הבקשה. אם לא ניתן לקבוע את כתובת ה-IP, הפונקציה origin.ip מחזירה שגיאה. מומלץ להשתמש ב-inIpRange כדי לבדוק אם כתובת ה-IP של המקור נמצאת בטווח כתובות IP ספציפי, במקום לבצע השוואה של מחרוזות.
לדוגמה:
inIpRange(origin.ip,["203.0.113.24"])
region_code
סוג
מחרוזת
תיאור
קוד ISO 3166-1 alpha-2 של המדינה או האזור שמהם נשלחה הבקשה. אם לא ניתן לקבוע את קוד האזור, הערך origin.region_code יקבל שגיאה.
בקטע הזה מפורטים המאפיינים שנתמכים באובייקט levels.
מאפיינים
level name
סוג
בוליאני
תיאור
level name הוא השם של רמת גישה קיימת.
כשמשתמשים ברמת גישה מותאמת אישית, צריך לעמוד גם בתנאים של רמת הגישה שצוינה, בנוסף לדרישות האחרות של רמת הגישה המותאמת אישית.
לדוגמה:
levels.allow_corp_ips
כאשר allow_corp_ips הוא השם של רמת גישה.
מאפיין device
בקטע הזה מפורטים המאפיינים שנתמכים באובייקט device. אם לא נמצא מכשיר שמשויך למזהים שבבקשה, כל המאפיינים הבאים יחזירו שגיאה.
מאפיינים
encryption_status
סוג
enum
תיאור
תיאור של סטטוס ההצפנה של המכשיר.
ערכי enum:
enumDeviceEncryptionStatus{// The encryption status of the device is not specified or not known.ENCRYPTION_UNSPECIFIED==0;// The device does not support encryption.ENCRYPTION_UNSUPPORTED==1;// The device supports encryption, but is currently unencrypted.UNENCRYPTED==2;// The device is encrypted.ENCRYPTED==3;}
enumOsType{// The operating system of the device is not specified or not known.OS_UNSPECIFIED==0;// A desktop Mac operating system.DESKTOP_MAC==1;// A desktop Windows operating system.DESKTOP_WINDOWS==2;// A desktop Linux operating system.DESKTOP_LINUX==3;// An Android operating system.ANDROID==4;// An iOS operating system.IOS==5;// A desktop ChromeOS operating system.DESKTOP_CHROME_OS==6;}
האובייקט vendors משמש לגישה לנתונים שסופקו על ידי ספקים של צד שלישי בתחום האבטחה וניהול נקודות הקצה. כל ספק יכול לאכלס שלושה מאפיינים משותפים ברמה העליונה: is_compliant_device, is_managed_device ו-device_health_score.
בנוסף, ספקים יכולים לספק מפתחות וערכים משלהם, שאליהם מתייחסים באמצעות המאפיין data.
המפתחות הזמינים של מאפיין data משתנים מספק לספק. חשוב להקפיד על עקביות כשמשווים את ערך המפתח בביטוי המדיניות. לדוגמה, אם אתם מצפים שערך המפתח יהיה מחרוזת או ערך בוליאני, ודאו שאתם משווים אותו למחרוזת או לערך בוליאני בביטוי המדיניות. שימו לב: אם הערך הוא מספר שלם, צריך להשוות אותו למספר עשרוני בביטוי המדיניות.
כדי להפנות אל מצב המכשיר, משתמשים בפורמט key-acme, כאשר acme הוא מספר הלקוח של הארגון. אפשר למצוא את מספר הלקוח בכתובת ה-URL GET https://www.googleapis.com/admin/directory/v1/customers/my_customer. השדה ID בתשובה מכיל את מספר הלקוח שמתחיל באות C. מספר הלקוח הוא המחרוזת שאחרי האות C, לא כולל האות C.
ערכי enum:
// Health score of the device as provided by the vendor (possibly third party).enumDeviceHealthScore{// The health score for the device is not specified or unknown.DEVICE_HEALTH_SCORE_UNSPECIFIED=0;// The health of the device is very poor.VERY_POOR=1;// The health of the device is poor.POOR=2;// The health of the device is ok.NEUTRAL=3;// The health of the device is good.GOOD=4;// The health of the device is very good.VERY_GOOD=5;}
הפונקציה בודקת אם אופרנד המחרוזת מתחיל בארגומנט התחילית.
לדוגמה:
"Sample string".startsWith("Sample")
endsWith()
סוג
string.(string) -> bool
תיאור
בודקת אם אופרנד המחרוזת מסתיים בארגומנט הסיומת.
לדוגמה:
"Sample string".endsWith("string")
origin.clientCertFingerprint()
סוג
Origin.() -> string
תיאור
הפונקציה מחזירה את טביעת האצבע של האישור שמשויך למקור. אפשר להשתמש בזה בפקודות מאקרו כדי לבדוק אישורים של מכשירים.
לדוגמה:
// Checks if the enterprise certificate associated with the origin matches the device.device.certificates.exists(cert,cert.is_valid && cert.cert_fingerprint==origin.clientCertFingerprint())
פקודות מאקרו לביטויי CEL
אפשר להשתמש בפקודות המאקרו הבאות בביטויי CEL לרמות גישה מותאמות אישית:
מאקרו
תיאור
has(e.f)
בודקת אם שדה זמין. פרטים נוספים מופיעים במאמר בנושא בחירת שדות. דוגמה:
בודקת אם פרדיקט מתקיים עבור כל הרכיבים של רשימה e או מפתחות של מפה e. כאן x הוא מזהה לשימוש ב-p שמשויך לרכיב או למפתח. פקודת המאקרו all() משלבת תוצאות של פרדיקטים לכל רכיב עם האופרטור and (&&), כך שאם פרדיקט כלשהו מחזיר את הערך false, פקודת המאקרו מחזירה את הערך false, תוך התעלמות משגיאות מפרדיקטים אחרים. דוגמה:
הפונקציה מחזירה false כי לא כל הרכיבים גדולים מ-1: [1,2,3].all(x, x > 1)
e.exists(x, p)
בדומה לפקודת המאקרו all(), אבל משלבת את תוצאות התנאי עם האופרטור or (||). דוגמה:
הפונקציה מחזירה את הערך True כי יש לפחות רכיב אחד ברשימה שגדול מ-1: [1,2,3].exists(x, x > 1)
בדומה לפקודת המאקרו exists(), אבל מחזירה את הערך True רק אם ערך החיזוי של רכיב אחד או מפתח אחד הוא True, ושל כל השאר הוא False. כל שילוב אחר של תוצאות בוליאניות מוערך כ-false, וכל שגיאה בפרדיקט גורמת לפקודת המאקרו להחזיר שגיאה. דוגמה:
הפונקציה מחזירה false כי יש יותר מרכיב אחד שגדול מ-1: [1,2,3].exists_one(x, x > 1)
דוגמאות לביטויי CEL
בקטע הזה מופיעות דוגמאות לביטויי CEL שמשמשים ליצירת רמות גישה מותאמות אישית.
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["התוכן קשה להבנה","hardToUnderstand","thumb-down"],["שגיאות בקוד לדוגמה או במידע","incorrectInformationOrSampleCode","thumb-down"],["חסרים לי פרטים או דוגמאות","missingTheInformationSamplesINeed","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2026-06-18 (שעון UTC)."],[],[]]