id
Panduan
Server
Mengonfigurasi sertifikat tepercaya untuk mTLS
idGuidesServerMutual Tls

Configuring trusted certificates for mTLS

Untuk memvalidasi sertifikat klien dengan benar dan mengaktifkan metode otentikasi tertentu seperti TLS dua arah atau mTLS, Anda dapat mengatur toko kepercayaan dengan semua sertifikat (dan rantai sertifikat) yang harus dipercaya oleh server. Ada beberapa kemampuan yang bergantung pada toko kepercayaan ini untuk mengotentikasi klien yang menggunakan sertifikat dengan benar seperti Mutual TLS dan Otentikasi X.509.

Mengaktifkan mTLS

Otentikasi menggunakan mTLS dinonaktifkan secara default. Untuk mengaktifkan penanganan sertifikat mTLS saat NQRust-Identity adalah server dan perlu untuk memvalidasi sertifikat dari permintaan yang dibuat ke endpoint NQRust-Identity, letakkan sertifikat yang sesuai dalam truststore dan gunakan perintah berikut untuk mengaktifkan mTLS:

bin/kc.[sh|bat] start --https-client-auth=<none|request|required>

Menggunakan nilai required menyiapkan NQRust-Identity untuk selalu meminta sertifikat dan gagal jika tidak ada sertifikat yang diberikan dalam permintaan. Dengan mengatur nilai ke request, NQRust-Identity juga akan menerima permintaan tanpa sertifikat dan hanya memvalidasi kebenaran sertifikat jika ada.

⚠️

Konfigurasi mTLS dan truststore dibagikan oleh semua Realm. Tidak mungkin untuk mengonfigurasi truststore yang berbeda untuk Realm yang berbeda.

Properti antarmuka manajemen diwarisi dari server HTTP utama, termasuk pengaturan mTLS. Artinya saat mTLS diatur, itu juga diaktifkan untuk antarmuka manajemen. Untuk menimpa perilaku, gunakan properti https-management-client-auth.

Menggunakan truststore terdedikasi untuk mTLS

Secara default, NQRust-Identity menggunakan System Truststore untuk memvalidasi sertifikat. Lihat Mengonfigurasi sertifikat terpercaya untuk detail.

Jika Anda perlu untuk menggunakan truststore terdedikasi untuk mTLS, Anda dapat mengonfigurasi lokasi dari truststore ini dengan menjalankan perintah berikut:

bin/kc.[sh|bat] start --https-trust-store-file=/path/to/file --https-trust-store-password=<value>

Ekstensi file yang diakui untuk truststore:

  • .p12, .pkcs12, dan .pfx untuk file pkcs12
  • .jks, dan .truststore untuk file jks
  • .ca, .crt, dan .pem untuk file pem

Jika truststore Anda tidak memiliki ekstensi yang cocok dengan tipe filenya, Anda juga perlu untuk mengatur opsi https-key-store-type.

Sumber daya tambahan

Menggunakan mTLS untuk permintaan HTTP keluar

Perlu diperhatikan bahwa ini adalah konfigurasi sertifikat dasar untuk kasus penggunaan mTLS di mana NQRust-Identity bertindak sebagai server. Ketika NQRust-Identity bertindak sebagai klien sebagai contoh, misalnya saat NQRust-Identity mencoba untuk mendapatkan token dari endpoint token penyedia identitas yang dibroker oleh mTLS, Anda perlu untuk mengatur HttpClient untuk menyediakan sertifikat yang tepat dalam keystore untuk permintaan keluar. Untuk mengonfigurasi mTLS dalam skenario ini, lihat Mengonfigurasi permintaan HTTP keluar.

Mengonfigurasi Otentikasi X.509

Opsi relevan

OpsiTipe atau NilaiDefault
https-client-auth
Mengonfigurasi server untuk meminta/mengharuskan otentikasi klien.
CLI: --https-client-auth
Env: KC_HTTPS_CLIENT_AUTH
none, request, requirednone
https-trust-store-file
Trust store yang menyimpan informasi sertifikat sertifikat yang dipercaya.
CLI: --https-trust-store-file
Env: KC_HTTPS_TRUST_STORE_FILE
File
https-trust-store-password
Kata sandi file trust store.
CLI: --https-trust-store-password
Env: KC_HTTPS_TRUST_STORE_PASSWORD
String
https-trust-store-type
Tipe file trust store.
Jika tidak diberikan, tipe secara otomatis terdeteksi berdasarkan ekstensi file. Jika fips-mode diatur ke strict dan tidak ada nilai yang diatur, maka default ke BCFKS.
CLI: --https-trust-store-type
Env: KC_HTTPS_TRUST_STORE_TYPE
String
https-management-client-auth
Mengonfigurasi antarmuka manajemen untuk meminta/mengharuskan otentikasi klien.
Jika tidak diberikan, nilai diwarisi dari opsi HTTP. Hanya relevan saat ada yang diekspos di antarmuka manajemen - lihat panduan untuk detail.
CLI: --https-management-client-auth
Env: KC_HTTPS_MANAGEMENT_CLIENT_AUTH
none, request, requirednone