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=fileSecara analog, untuk berbasis Java KeyStore, Anda perlu menentukan opsi build berikut:
bin/kc.[sh|bat] build --vault=keystoreMengonfigurasi 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/pathFile 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 keystorepassworddan 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__credentialPerhatikan 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
ldapBcuntuk 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
| Opsi | Tipe atau Nilai | Default |
|---|---|---|
vaultAktifkan penyedia vault. CLI: --vaultEnv: KC_VAULT | file, keystore | |
vault-dirJika diatur, rahasia dapat diperoleh dengan membaca konten file dalam direktori yang diberikan. CLI: --vault-dirEnv: KC_VAULT_DIR | Path | |
vault-filePath ke file keystore. CLI: --vault-fileEnv: KC_VAULT_FILE | Path | |
vault-passKata sandi untuk keystore vault. CLI: --vault-passEnv: KC_VAULT_PASS | String | |
vault-typeMenentukan tipe file keystore. CLI: --vault-typeEnv: KC_VAULT_TYPE | String | PKCS12 |