Fitur Cloudflare Access custom pages memungkinkan tim memakai template HTML dan Liquid pada empat halaman yang pengguna lihat: login, identity denied, forbidden, dan persetujuan login lewat command line. Perubahan itu tercantum dalam changelog Cloudflare tertanggal 27 Oktober 2026. Cloudflare menyebut template mengontrol branding dan tampilan tiap halaman. Sementara itu variabel Liquid dapat menampilkan instruksi khusus atau alasan jelas mengapa Access memblokir pengguna.
Kata penuh pada judul perlu Anda baca sempit. Menurut dokumentasi Access custom pages, template mengubah presentasi saja. Template tidak mengubah keputusan Access. Halaman ini tidak memberi akses. Halaman ini juga tidak menggantikan kebijakan autentikasi maupun otorisasi. JavaScript buatan pelanggan, event handler inline, dan form autentikasi sendiri tidak didukung. Yang bisa Anda kustom penuh hanyalah lapisan tampilan dan teks instruksi di dalam lingkungan Liquid yang Cloudflare batasi.
Empat jenis halaman Cloudflare Access dan kontrol yang tetap milik Access
Dokumentasi meminta satu template terpisah untuk tiap jenis halaman. Dua jenis wajib memuat elemen yang Access isi sendiri. Sedangkan dua lainnya hanya berisi penjelasan.
| Jenis halaman | Fungsi | Elemen wajib |
|---|---|---|
| Login | Masuk ke aplikasi Access | Tepat satu cf-access-authbox |
| Identity denied | Menjelaskan penolakan setelah pengguna berhasil masuk | Tidak ada |
| Forbidden | Menjelaskan penolakan non-identitas, seperti permintaan yang gagal pada policy service authentication | Tidak ada |
| Interstitial | Menyetujui atau menolak permintaan login command line | Tepat satu cf-access-cli-approval |
Access menyisipkan kontrol masuk dan persetujuannya sendiri ke dalam elemen tersebut. Elemen harus terlihat. Elemen harus berada di luar kondisi atau loop Liquid. Access harus benar-benar merender elemen itu satu kali. Menulis elemen sekali di sumber template saja tidak cukup. Dokumentasi melarang menggantinya dengan form, link penyedia identitas, atau tombol persetujuan buatan sendiri. Berhasil masuk pun belum berarti diizinkan. Halaman identity denied muncul tepat pada kondisi itu: pengguna sudah masuk tetapi policy menolak.
Pembaca yang menemui halaman error Cloudflare perlu membedakan lapisan yang menolak. Error 522 menandakan masalah koneksi ke origin. Topik itu tercakup dalam penjelasan Error 522 Cloudflare. Aturan firewall di edge Anda atur lewat panduan konfigurasi Cloudflare WAF. Sedangkan halaman identity denied dan forbidden berasal dari policy Access.
Alur custom pages dari template sampai assignment ke aplikasi
Anda buat template di dashboard Cloudflare One lewat Reusable components, bagian Custom pages, lalu kartu Access custom pages. Editor memuat template awal sesuai jenis halaman. Panel Variables menampilkan data yang tersedia. Panel Problems memuat error serta peringatan validasi. Anda bisa mempublikasikan template baru setelah menyelesaikan error. Bila validasi sedang tidak tersedia, dokumentasi meminta Anda memilih Retry validation lebih dulu.
Publikasi hanya menyimpan template yang bisa dipakai ulang. Agar tampil, Anda perlu assign template ke aplikasi self-hosted lewat Additional settings pada bagian Custom block pages. Anda juga bisa menjadikannya default akun. Pengaturannya dibedakan per jenis: Identity failure block page untuk identity denied, Non-identity failure block page untuk forbidden, serta Login page dan Interstitial page. Assignment pada aplikasi mengalahkan default akun. Bila keduanya tidak ada, Access memakai halaman bawaan. Perubahan konfigurasi memerlukan waktu propagasi sebelum Anda uji ulang.
Data yang tersedia berbeda untuk tiap jenis halaman. Halaman login menyediakan antara lain app_name, app_domain, org, idps, dan message. Namun daftar idps hanya berisi informasi tampilan, bukan URL login. Halaman identity denied dan forbidden dapat memuat ray_id, user, serta policy_evaluation yang bersifat opsional. Data user bisa kosong sebelum pengguna masuk. Cloudflare meng-escape keluaran Liquid sebagai HTML. Variabel yang hilang muncul sebagai teks kosong. Contoh dalam dokumentasi menampilkan Ray ID agar pengguna dapat melapor ke administrator.
Batas keamanan: tampilan boleh berubah, keputusan tidak
Cloudflare membatasi lingkungan Liquid yang dipakai. Tag include, render, layout, echo, dan raw serta filter raw tidak tersedia. Sanitasi Cloudflare berlaku untuk HTML dan CSS. Aset eksternal harus mematuhi Content Security Policy halaman. Gambar dan font harus memakai URL HTTPS. Tampilan tidak boleh bergantung pada skrip pihak ketiga. Batas parsing, rendering, dan memori juga berlaku. Bila template tidak tersedia atau Cloudflare gagal merender template secara aman, Access kembali ke halaman bawaan tanpa mengubah keputusan policy.
Dari batasan itu, dampak yang paling mungkin adalah branding yang lebih rapi dan pesan error yang lebih jelas. Model keamanan tidak berubah. Dokumentasi memperingatkan agar admin tidak menampilkan nama grup, claim, dan detail policy yang sensitif tanpa perlu. Padahal data policy_evaluation tersedia di halaman penolakan. Itu inferensi dari peringatan tersebut. Pilihan data yang tampil menjadi keputusan keamanan tersendiri bagi admin. Pesan yang terlalu rinci dapat membuka struktur akses kepada pengguna yang ditolak.
Pembagian peran itu juga menentukan siapa yang bisa mengerjakan apa. Cara pengguna memasukkan kredensial, cara persetujuan command line diberikan, dan hasil evaluasi policy tetap ada di sisi Access. Sedangkan template hanya mengatur kata-kata, tata letak, dan identitas visual di sekelilingnya. Tim desain atau helpdesk dapat merapikan halaman tanpa menyentuh aturan akses. Perubahan policy tetap memerlukan konfigurasi Access yang terpisah dari template.
Uji di aplikasi terpisah sebelum dijadikan default
Validasi di editor bukan pratinjau hasil render. Cloudflare meminta Anda uji template yang sudah disimpan pada aplikasi terisolasi. Uji mencakup alur login atau penolakan, teks panjang, tampilan mobile, dan kondisi Liquid. Panel Problems yang bersih tidak membuktikan setiap kondisi runtime tampil benar.
Satu template dapat dipakai banyak aplikasi. Jadi mengedit template yang sudah dipublikasikan mengubah semua aplikasi itu sekaligus. Untuk menghindarinya, dokumentasi menyarankan menguji dengan template terpisah. Sebelum Anda hapus template, ganti assignment aplikasinya dan lepas status default. Simpan salinan HTML dan Liquid di luar dashboard. Editor tidak menyediakan pratinjau terender maupun tombol Download.
Changelog dan dokumentasi yang redaksi baca tidak memuat ketersediaan per paket langganan, dampak pada jumlah tiket dukungan, atau lama propagasi konfigurasi. Hal-hal itu baru bisa Anda pastikan dari akun dan aplikasi masing-masing. Dokumentasi tercatat Cloudflare perbarui pada 27 Oktober 2026. Jadi tambahan variabel atau perubahan batas Liquid layak Anda pantau lewat halaman yang sama.




