Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Halaman ini menjelaskan objek dan atribut yang digunakan untuk membuat ekspresi
Common Expression Language (CEL)
untuk tingkat akses kustom. Contoh disertakan.
Berisi atribut yang menjelaskan perangkat asal permintaan.
Atribut origin
Bagian ini mencantumkan atribut yang didukung oleh objek origin.
Atribut
ip
Type
string
Deskripsi
Alamat IP tempat permintaan berasal. Jika alamat IP tidak dapat ditentukan, origin.ip akan bernilai error. Sebaiknya gunakan
inIpRange untuk memeriksa apakah alamat IP asal berada dalam
rentang alamat IP tertentu, bukan melakukan perbandingan string.
Contoh:
inIpRange(origin.ip, ["203.0.113.24"])
region_code
Type
string
Deskripsi
Kode ISO 3166-1 alpha-2 untuk negara atau wilayah tempat permintaan berasal. Jika kode wilayah tidak dapat ditentukan, origin.region_code akan bernilai error.
Contoh:
origin.region_code == "GB"
origin.region_code in ["US", "FR", "JP"]
Atribut request.auth
Bagian ini mencantumkan atribut yang didukung oleh objek request.auth.
Atribut
principal
Type
string, list(string)
Deskripsi
ID unik pengguna yang mengajukan permintaan.
Nilai untuk request.auth.principal harus berupa satu
atau beberapa ID pengguna unik. UUID dapat diperoleh menggunakan
Admin SDK Directory API.
Nilai ini harus dalam format berikut:
https://accounts.google.com/UUID
UUID adalah UUID pengguna.
Contoh:
request.auth.principal == "https://accounts.google.com/1134924314572461055"
request.auth.principal in ["https://accounts.google.com/1134924314572461055", "https://accounts.google.com/3134824314572461115"]
claims.crd_str.pwd
Type
boolean
Deskripsi
Pengguna diautentikasi dengan sandi.
Contoh:
request.auth.claims.crd_str.pwd == true
claims.crd_str.push
Type
boolean
Deskripsi
Pengguna diautentikasi dengan notifikasi push ke perangkat seluler.
Contoh:
request.auth.claims.crd_str.push == true
claims.crd_str.sms
Type
boolean
Deskripsi
Pengguna diautentikasi menggunakan kode yang dikirim melalui SMS atau melalui panggilan telepon.
Contoh:
request.auth.claims.crd_str.sms == true
claims.crd_str.swk
Type
boolean
Deskripsi
Verifikasi 2 Langkah menggunakan kunci software, seperti ponsel, sebagai kunci keamanan.
Contoh:
request.auth.claims.crd_str.swk == true
claims.crd_str.hwk
Type
boolean
Deskripsi
Verifikasi 2 Langkah menggunakan kunci hardware, seperti Kunci Titan Google.
Contoh:
request.auth.claims.crd_str.hwk == true
claims.crd_str.otp
Type
boolean
Deskripsi
Pengguna diautentikasi dengan metode sandi sekali pakai (Google Authenticator dan Kode Cadangan).
Contoh:
request.auth.claims.crd_str.otp == true
claims.crd_str.mfa
Type
boolean
Deskripsi
Pengguna diautentikasi dengan salah satu metode dalam tabel ini kecuali pwd.
Bagian ini mencantumkan atribut yang didukung oleh objek levels.
Atribut
level name
Type
boolean
Deskripsi
level name sesuai dengan nama tingkat akses yang ada.
Saat digunakan, kondisi dari tingkat akses yang ditentukan juga harus
terpenuhi selain persyaratan lain pada tingkat akses
kustom Anda.
Contoh:
levels.allow_corp_ips
Dengan allow_corp_ips adalah nama tingkat akses.
device atribut
Bagian ini mencantumkan atribut yang didukung oleh objek device. Jika tidak ditemukan perangkat
yang terkait dengan ID dalam permintaan, semua atribut berikut
akan dievaluasi ke error.
Atribut
encryption_status
Type
enum
Deskripsi
Menjelaskan status enkripsi perangkat.
Nilai enum:
enum DeviceEncryptionStatus {
// 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;
}
Apakah perangkat telah disetujui oleh administrator
domain.
Contoh:
device.is_admin_approved_device == true
is_corp_owned_device
Type
boolean
Deskripsi
Apakah perangkat dimiliki oleh organisasi.
Contoh:
device.is_corp_owned_device == true
is_secured_with_screenlock
Type
boolean
Deskripsi
Apakah fungsi kunci layar telah diaktifkan pada perangkat.
Contoh:
device.is_secured_with_screenlock == true
os_type
Type
enum
Deskripsi
Mengidentifikasi sistem operasi yang digunakan perangkat.
Nilai enum:
enum OsType {
// 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;
}
Objek vendors digunakan untuk mengakses data yang disediakan oleh vendor keamanan dan pengelolaan endpoint pihak ketiga. Setiap vendor dapat mengisi tiga atribut tingkat atas bersama: is_compliant_device, is_managed_device, dan device_health_score.
Selain itu, vendor dapat menyediakan kunci dan nilai mereka sendiri
yang direferensikan menggunakan atribut data.
Kunci yang tersedia untuk atribut data bervariasi dari satu vendor ke vendor lainnya. Pastikan Anda konsisten saat membandingkan nilai kunci dalam ekspresi kebijakan. Misalnya, jika Anda mengharapkan nilai kunci berupa string atau boolean, pastikan Anda membandingkannya dengan string atau boolean dalam ekspresi kebijakan yang sesuai. Perhatikan bahwa jika nilai adalah bilangan bulat, Anda harus membandingkannya dengan angka ganda dalam ekspresi kebijakan.
Nilai enum:
// Health score of the device as provided by the vendor (possibly third party).
enum DeviceHealthScore {
// 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;
}
Apakah browser dikelola, di tingkat browser atau di tingkat profil, dan oleh perusahaan dalam domain yang benar.
Browser dianggap dikelola jika kebijakan dikelola dan diterapkan secara terpusat, dan domain browser atau profil terkelola cocok dengan domain yang diharapkan di sisi server.
Menguji apakah operand string dimulai dengan argumen awalan.
Contoh:
"Sample string".startsWith("Sample")
endsWith()
Type
string.(string) -> bool
Deskripsi
Menguji apakah operand string diakhiri dengan argumen akhiran.
Contoh:
"Sample string".endsWith("string")
origin.clientCertFingerprint()
Type
Origin.() -> string
Deskripsi
Menampilkan sidik jari sertifikat yang terkait dengan asal. Anda dapat menggunakannya di makro untuk menguji sertifikat perangkat.
Contoh:
// Checks if the enterprise certificate associated with the origin matches the device.
device.certificates.exists(cert, cert.is_valid && cert.cert_fingerprint == origin.clientCertFingerprint())
Makro untuk ekspresi CEL
Anda dapat menggunakan makro berikut di ekspresi CEL untuk tingkat akses kustom:
Makro
Deskripsi
has(e.f)
Menguji apakah kolom tersedia. Lihat Pilihan Kolom untuk detail selengkapnya. Contoh:
Menguji apakah predikat berlaku untuk semua elemen daftar e atau kunci peta e. Di sini, x adalah ID untuk digunakan di p yang mengikat ke elemen atau kunci. Makro all() menggabungkan hasil predikat per elemen dengan operator and (&&). Jadi, jika predikat apa pun bernilai salah, makro akan bernilai salah (false), dengan mengabaikan error apa pun dari predikat lainnya. Contoh:
Metode ini menampilkan nilai salah karena tidak semua elemen lebih besar dari 1: [1,2,3].all(x, x > 1)
e.exists(x, p)
Seperti makro all(), tetapi menggabungkan hasil predikat dengan operator or (||). Contoh:
Kueri akan menampilkan nilai benar karena setidaknya ada satu elemen dalam daftar yang lebih besar dari 1: [1,2,3].exists(x, x > 1)
Memeriksa apakah sertifikat perusahaan yang terkait dengan perangkat cocok dengan penerbit: device.certificates.exists(cert, cert.is_valid && cert.issuer == "EMAILADDRESS=test_inter1@beyondcorp.in, CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN")
e.exists_one(x, p)
Seperti makro exists(), tetapi bernilai benar hanya jika predikat tepat satu elemen atau kunci bernilai benar, dan sisanya bernilai salah. Kombinasi hasil boolean lainnya bernilai false, dan error predikat apa pun menyebabkan makro menimbulkan error. Contoh:
Metode ini menampilkan nilai salah karena lebih dari satu elemen lebih besar dari 1: [1,2,3].exists_one(x, x > 1)
Contoh ekspresi CEL
Bagian ini menyertakan contoh ekspresi CEL yang digunakan untuk membuat tingkat akses
kustom.
Contoh 1
device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && (origin.region_code in ["US"] || device.is_admin_approved_device)
Contoh ini menunjukkan tingkat akses yang mengharuskan kondisi berikut
dipenuhi untuk mengizinkan permintaan:
Perangkat tempat permintaan berasal dienkripsi.
Satu atau beberapa hal berikut berlaku:
Permintaan ini berasal dari Amerika Serikat.
Perangkat tempat permintaan berasal disetujui oleh
administrator domain.
Contoh ini menunjukkan tingkat akses yang mengharuskan kondisi berikut
dipenuhi untuk mengizinkan permintaan:
Salah satu hal berikut benar:
Perangkat tempat permintaan berasal menggunakan sistem operasi
Windows desktop dan dimiliki oleh organisasi Anda.
Perangkat tempat permintaan berasal menggunakan sistem operasi Mac
desktop, disetujui oleh administrator domain, dan
menggunakan setidaknya MacOS 10.11.
Contoh ini menunjukkan tingkat akses yang mengharuskan kondisi berikut
dipenuhi untuk mengizinkan permintaan:
Fungsi ekstensi certificateBindingState menentukan bahwa sertifikat yang ditampilkan pada waktu permintaan cocok dengan salah satu sertifikat perangkat yang didaftarkan saat perangkat didaftarkan dalam verifikasi endpoint.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2024-04-06 UTC."],[],[]]