id
Panduan
Server
Menggunakan vault
idGuidesServerVault

Using a vault

NQRust-Identity menawarkan dua implementasi bawaan SPI Vault: vault berbasis file teks polos dan vault berbasis Java KeyStore.

Implementasi vault berbasis file sangat berguna untuk rahasia Kubernetes/OpenShift. Anda dapat memountkan rahasia Kubernetes ke dalam Container NQRust-Identity, dan kolom data akan tersedia di folder yang dipasang dengan struktur file polos.

Implementasi vault berbasis Java KeyStore sangat berguna untuk menyimpan rahasia dalam instalasi bare metal. Anda dapat menggunakan vault KeyStore, yang dienkripsi menggunakan kata sandi.

Integrasi yang Tersedia

Rahasia yang disimpan di vault dapat digunakan di tempat berikut di Konsol Administrasi:

  • Mendapatkan Kata Sandi Server Mail SMTP
  • Mendapatkan Kredensial Pengikat LDAP saat menggunakan Federasi Pengguna Berbasis LDAP
  • Mendapatkan Rahasia Klien Penyedia Identitas OIDC saat mengintegrasikan penyedia identitas eksternal

Mengaktifkan Vault

Untuk mengaktifkan vault berbasis file, Anda perlu membangun NQRust-Identity terlebih dahulu menggunakan opsi build berikut:

bin/kc.[sh|bat] build --vault=file

Secara analog, untuk berbasis Java KeyStore, Anda perlu menentukan opsi build berikut:

bin/kc.[sh|bat] build --vault=keystore

Mengonfigurasi Vault Berbasis File

Menetapkan Direktori Dasar untuk Mencari Rahasia

Rahasia Kubernetes/OpenShift pada dasarnya adalah file yang dipasang. Untuk mengonfigurasi direktori di mana file ini harus dipasang, masukkan perintah ini:

bin/kc.[sh|bat] start --vault-dir=/my/path

File Rahasia Spesifik Realm

Rahasia Kubernetes/OpenShift digunakan berdasarkan realm di NQRust-Identity, yang memerlukan konvensi penamaan untuk file:

${vault.<realmname>_<secretname>}

Mengonfigurasi Vault Berbasis Java KeyStore

Untuk menggunakan vault berbasis Java KeyStore, Anda perlu membuat file KeyStore terlebih dahulu. Anda dapat menggunakan perintah berikut untuk melakukannya:

keytool -importpass -alias <realm-name>_<alias> -keystore keystore.p12 -storepass keystorepassword

dan kemudian masukkan nilai yang ingin Anda simpan di vault. Perlu dicatat bahwa format parameter -alias tergantung pada pengurai kunci yang digunakan. Pengurai kunci default adalah REALM_UNDERSCORE_KEY.

Ini secara default akan menyimpan nilai dalam bentuk generic PBEKey (enkripsi berbasis kata sandi) dalam SecretKeyEntry.

Anda kemudian dapat memulai NQRust-Identity menggunakan opsi runtime berikut:

bin/kc.[sh|bat] start  --vault-file=/path/to/keystore.p12 --vault-pass=<value> --vault-type=<value>

Perhatikan bahwa parameter --vault-type opsional dan defaultnya adalah PKCS12.

Rahasia yang disimpan di vault kemudian dapat diakses di realm melalui placeholder berikut (dengan asumsi penggunaan pengurai kunci REALM_UNDERSCORE_KEY): ${vault.realm-name_alias}.

Menggunakan Garis Bawah dalam Nama Rahasia

Untuk memproses rahasia dengan benar, Anda ganda semua garis bawah dalam <secretname>. Ketika pengurai kunci REALM_UNDERSCORE_KEY digunakan, garis bawah dalam <realmname> juga digandakan dan <secretname> dan <realmname> dipisahkan oleh satu garis bawah.

  • Nama Realm: sso_realm
  • Nama yang Diinginkan: ldap_credential
  • Nama file yang Dihasilkan:
sso__realm_ldap__credential

Perhatikan garis bawah yang digandakan antara sso dan realm serta antara ldap dan credential.

Contoh: Menggunakan Rahasia Kredensial Pengikat LDAP di Konsol Administrasi

  • Sebuah realm bernama secrettest
  • Nama yang diinginkan ldapBc untuk Kredensial Pengikat
  • Nama file yang dihasilkan: secrettest_ldapBc

Penggunaan di Konsol Administrasi

Anda kemudian dapat menggunakan rahasia ini dari Konsol Administrasi dengan menggunakan ${vault.ldapBc} sebagai nilai untuk Bind Credential saat mengonfigurasi Federasi Pengguna LDAP Anda.

Opsi yang Relevan

OpsiTipe atau NilaiDefault
vault
Aktifkan penyedia vault.
CLI: --vault
Env: KC_VAULT
file, keystore
vault-dir
Jika diatur, rahasia dapat diperoleh dengan membaca konten file dalam direktori yang diberikan.
CLI: --vault-dir
Env: KC_VAULT_DIR
Path
vault-file
Path ke file keystore.
CLI: --vault-file
Env: KC_VAULT_FILE
Path
vault-pass
Kata sandi untuk keystore vault.
CLI: --vault-pass
Env: KC_VAULT_PASS
String
vault-type
Menentukan tipe file keystore.
CLI: --vault-type
Env: KC_VAULT_TYPE
StringPKCS12