Mengonfigurasi kondisi sertifikat perusahaan

Prinsip utama BeyondCorp Enterprise adalah "Akses ke layanan diberikan berdasarkan hal yang kami ketahui tentang Anda dan perangkat Anda". Tingkat akses yang diberikan kepada satu pengguna atau satu perangkat disimpulkan secara dinamis dengan menginterogasi beberapa sumber data. BeyondCorp Enterprise menggunakan tingkat kepercayaan ini sebagai bagian dari proses keputusannya.

Access Context Manager adalah mesin kebijakan zero-trust BeyondCorp Enterprise. Dengan Access Context Manager, administrator dapat menentukan kontrol akses berbasis atribut yang terperinci untuk aplikasi dan resource Google Cloud.

Gunakan tingkat akses untuk mengizinkan akses ke resource berdasarkan informasi kontekstual tentang permintaan. Dengan menggunakan tingkat akses, Anda dapat mulai mengatur tingkat kepercayaan. Misalnya, Anda dapat membuat tingkat akses yang disebut High_Level yang mengizinkan permintaan dari sekelompok kecil individu dengan hak istimewa tinggi. Anda mungkin juga mengidentifikasi grup yang lebih umum untuk dipercaya, seperti rentang IP yang permintaannya ingin Anda izinkan. Dalam hal ini, Anda dapat membuat tingkat akses yang disebut Medium_Level untuk mengizinkan permintaan tersebut.

Salah satu persyaratan utama untuk akses zero-trust adalah hanya mengizinkan akses saat perangkat dikelola atau dimiliki oleh perusahaan. Ada banyak cara untuk menentukan apakah perangkat merupakan milik perusahaan, dan salah satu caranya adalah dengan menentukan apakah perangkat memiliki sertifikat yang valid, yang diterbitkan oleh perusahaan. Keberadaan sertifikat perusahaan pada perangkat dapat digunakan untuk menunjukkan bahwa perangkat tersebut milik perusahaan.

Sertifikat perusahaan untuk akses kontekstual adalah fitur dari keseluruhan solusi akses berbasis sertifikat BeyondCorp Enterprise. Fitur ini memanfaatkan sertifikat perangkat sebagai sinyal kontekstual alternatif untuk menentukan apakah perangkat merupakan aset milik perusahaan. Fitur ini didukung di browser Chrome 110 atau yang lebih baru.

Karena perangkat dapat memiliki lebih dari satu sertifikat, sertifikat perusahaan dapat diakses di tingkat akses kustom melalui makro .exist(e,p):

device.certificates.exists(cert, predicate)

Dalam contoh, cert adalah ID sederhana untuk digunakan di predicator yang mengikat ke sertifikat perangkat. Makro exist() menggabungkan hasil predikat per elemen dengan operator "atau" (||), yang berarti bahwa makro akan menampilkan nilai benar jika setidaknya satu sertifikat memenuhi ekspresi predicate.

Sertifikat memiliki atribut berikut yang dapat diperiksa bersama. Perhatikan bahwa perbandingan string peka huruf besar/kecil.

Atribut Deskripsi Contoh ekspresi predikat (dengan cert adalah ID makro)
is_valid True jika sertifikat valid dan belum habis masa berlakunya (boolean). cert.is_valid
cert_fingerprint Sidik jari sertifikat (SHA256 tanpa padding base64).

Sidik jari adalah digest SHA256 berenkode base64 tanpa padding, dalam format biner, dari sertifikat berenkode DER. Anda dapat membuat string dari sertifikat dalam format PEM menggunakan prosedur berikut dengan OpenSSL:

$ openssl x509 -in cert.pem -out cert.der -outform DER
$ openssl dgst -sha256 -binary cert.der > digest.sha
$ openssl base64 -in digest.sha

cert.cert_fingerprint == origin.clientCertFingerprint()
root_ca_fingerprint Sidik jari Sertifikat Root CA yang digunakan untuk menandatangani sertifikat (SHA256 tanpa padding base64).

Sidik jari adalah digest SHA256 berenkode base64 tanpa padding, dalam format biner, dari sertifikat berenkode DER. Anda dapat membuat string dari sertifikat dalam format PEM menggunakan prosedur berikut dengan OpenSSL:

$ openssl x509 -in cert.pem -out cert.der -outform DER
$ openssl dgst -sha256 -binary cert.der > digest.sha
$ openssl base64 -in digest.sha

cert.root_ca_fingerprint == "the_fingerprint"
issuer Nama penerbit (nama yang sepenuhnya diperluas).

Untuk menemukan nama penerbit, Anda dapat menggunakan pendekatan berikut:

Jalankan perintah berikut pada sertifikat:

$ openssl x509 -in ca_1.crt -issuer issuer= /C=IN/ST=UP/L=NCR/O=BCEDemo/OU=BCEDemo_1/CN=inter_1/[email protected]

String penerbit yang digunakan di tingkat akses adalah kebalikan dari output dan / diganti dengan koma. Contoh:

[email protected], CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN

cert.issuer == "[email protected], CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN"
subject Nama subjek sertifikat (nama yang sepenuhnya diperluas). cert.subject == "CA_SUB"
serial_number Nomor seri sertifikat (string). cert.serial_number = "123456789"
template_id ID template Certificate Template ekstensi X.509 untuk sertifikat (string). cert.template_id = "1.3.6.1.4.1.311.21.8.15608621.11768144.5720724.16068415.6889630.81.2472537.7784047"

Tabel berikut berisi contoh kebijakan yang dapat Anda tetapkan:

Contoh Kebijakan Ekspresi
Perangkat memiliki sertifikat valid yang ditandatangani oleh root certificate perusahaan. device.certificates.exists(cert, cert.is_valid && cert.root_ca_fingerprint == "ROOT_CA_FINGERPRINT")
Perangkat memiliki sertifikat valid yang diterbitkan oleh penerbit CA_ABC. device.certificates.exists(cert, cert.is_valid && cert.issuer == "[email protected], CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN")

Mengonfigurasi sertifikat perusahaan

Sebelum mengonfigurasi sertifikat perusahaan, pastikan Anda telah mengonfigurasi tingkat akses kustom. Untuk mengetahui petunjuknya, lihat Membuat tingkat akses kustom.

Anda dapat menggunakan definisi tingkat akses kustom Access Context Manager untuk menetapkan kebijakan yang sesuai. Tingkat akses kustom menggunakan ekspresi boolean yang ditulis dalam subset Common Expression Language (CEL) untuk menguji atribut klien yang membuat permintaan.

Mengupload trust anchor di konsol Admin

Agar BeyondCorp Enterprise dapat mengumpulkan dan memvalidasi sertifikat perusahaan perangkat, Anda harus mengupload trust anchor yang digunakan untuk menerbitkan sertifikat perangkat. Anchor kepercayaan di sini mengacu pada sertifikat root CA (Certificate Authority) yang ditandatangani sendiri serta intermediate dan subordinate certificate yang relevan. Selesaikan langkah-langkah berikut untuk mengupload trust anchor:

  1. Buka konsol Admin, lalu buka Perangkat > Jaringan > Sertifikat.
  2. Pilih unit organisasi yang sesuai.
  3. Pilih Tambahkan Sertifikat.
  4. Masukkan nama sertifikat.
  5. Upload sertifikat.
  6. Aktifkan kotak centang Endpoint Verification.
  7. Klik Tambahkan.
  8. Pastikan pengguna menjadi bagian dari unit organisasi tempat trust anchor diupload.

Mengonfigurasi kebijakan AutoSelectCertificateForUrls

Agar Verifikasi Endpoint dapat menelusuri sertifikat perangkat dan mengumpulkannya melalui Chrome, Anda harus mengonfigurasi kebijakan chrome AutoSelectCertificateForURLs dengan menyelesaikan langkah-langkah berikut:

  1. Pastikan browser Chrome dikelola oleh Pengelolaan Cloud Browser Chrome.

  2. Di konsol Admin, tambahkan kebijakan AutoSelectCertificateForUrls:

    1. Buka konsol Admin dan buka Perangkat > Chrome > Setelan > Setelan Pengguna & Browser > Sertifikat klien.
    2. Pilih unit organisasi yang sesuai.
    3. Tambahkan kebijakan AutoSelectCertificateForUrls, seperti yang ditunjukkan dalam contoh berikut:

      {"pattern":"https://[*.]clients6.google.com","filter":{"ISSUER":{"CN":"CERTIFICATE_ISSUER_NAME"}}}
      

      Ganti CERTIFICATE_ISSUER_NAME dengan nama umum root CA. Jangan ubah nilai pattern.

Untuk memverifikasi konfigurasi kebijakan, selesaikan langkah-langkah berikut:

  1. Buka chrome://policy di browser.
  2. Verifikasi nilai yang dikonfigurasi untuk AutoSelectCertificateForUrls.
  3. Pastikan nilai Berlaku untuk kebijakan disetel ke Mesin. Pada sistem operasi Chrome, nilai ini diterapkan ke Current User*.
  4. Pastikan Status untuk kebijakan tidak memiliki Konflik.

Memecahkan masalah konfigurasi

Tinjau atribut sertifikat di halaman detail perangkat untuk memastikan bahwa atribut sertifikat dicantumkan dengan benar.

Anda dapat menggunakan log Verifikasi Endpoint untuk membantu memecahkan masalah apa pun. Untuk mendownload log Verifikasi Endpoint, selesaikan langkah-langkah berikut:

  1. Klik kanan ekstensi Endpoint Verification, lalu buka Options.
  2. Pilih Level log > Semua > Download Log.
  3. Buka kasus dukungan dengan Cloud Customer Care dan bagikan log untuk proses debug lebih lanjut.