Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mulai menggunakan pustaka klien Sertifikat Azure Key Vault untuk Java. Ikuti langkah-langkah berikut untuk menginstal paket dan mencoba kode contoh untuk tugas dasar.
Tip
Jika Anda bekerja dengan sumber daya Sertifikat Azure Key Vault dalam aplikasi Spring, kami sarankan Anda mempertimbangkan Spring Cloud Azure sebagai alternatif. Spring Cloud Azure adalah proyek sumber terbuka yang menyediakan integrasi Spring tanpa hambatan dengan layanan Azure. Untuk mempelajari selengkapnya tentang Spring Cloud Azure, dan untuk melihat contoh menggunakan Sertifikat Key Vault, lihat Enable HTTPS di Spring Boot dengan sertifikat Azure Key Vault.
Sumber daya tambahan:
- kode sumber
- Dokumentasi referensi API
- dokumentasi produk
- Sampel
Prerequisites
- Langganan Azure - buat langganan secara gratis.
- Java Development Kit (JDK) versi 8 atau lebih tinggi
- Apache Maven
- Azure CLI
Panduan memulai cepat ini mengasumsikan Anda menjalankan Azure CLI dan Apache Maven dalam jendela terminal Linux.
Persiapan
Panduan memulai cepat ini menggunakan pustaka Azure Identity dengan Azure CLI untuk mengautentikasi pengguna ke Layanan Azure. Pengembang juga dapat menggunakan Visual Studio atau Visual Studio Code untuk mengautentikasi panggilan mereka, untuk informasi selengkapnya, lihat Autentikasi klien dengan pustaka klien Azure Identity.
Masuk ke Azure
Jalankan perintah
login.az loginJika CLI dapat membuka browser default Anda, CLI akan melakukannya dan memuat halaman masuk Azure.
Jika tidak, buka halaman peramban di https://aka.ms/devicelogin dan masukkan kode otorisasi yang ditampilkan di terminal Anda.
Masuk menggunakan kredensial akun Anda di browser.
Membuat aplikasi konsol Java baru
Di jendela konsol, gunakan perintah mvn untuk membuat aplikasi konsol Java baru dengan nama akv-certificates-java.
mvn archetype:generate -DgroupId=com.keyvault.certificates.quickstart
-DartifactId=akv-certificates-java
-DarchetypeArtifactId=maven-archetype-quickstart
-DarchetypeVersion=1.4
-DinteractiveMode=false
Output dari pembuatan proyek akan terlihat seperti berikut:
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.keyvault.certificates.quickstart
[INFO] Parameter: artifactId, Value: akv-certificates-java
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.keyvault.certificates.quickstart
[INFO] Parameter: packageInPathFormat, Value: com/keyvault/quickstart
[INFO] Parameter: package, Value: com.keyvault.certificates.quickstart
[INFO] Parameter: groupId, Value: com.keyvault.certificates.quickstart
[INFO] Parameter: artifactId, Value: akv-certificates-java
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Project created from Archetype in dir: /home/user/quickstarts/akv-certificates-java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 38.124 s
[INFO] Finished at: 2019-11-15T13:19:06-08:00
[INFO] ------------------------------------------------------------------------
Ubah direktori Anda ke folder akv-certificates-java/ yang baru dibuat.
cd akv-certificates-java
Pasang paket
Buka file pom.xml di editor teks Anda. Tambahkan elemen dependensi berikut ke grup dependensi.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-security-keyvault-certificates</artifactId>
<version>4.8.6</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.2</version>
</dependency>
Buat grup sumber daya dan Key Vault
Panduan mulai cepat ini menggunakan brankas kunci Azure yang sudah dibuat sebelumnya. Anda dapat membuat brankas kunci dengan mengikuti langkah-langkah dalam panduan cepat ini:
- Panduan Memulai Cepat Azure CLI
- Panduan Memulai Cepat Azure PowerShell
- Panduan cepat portal Azure
Atau, Anda dapat menjalankan perintah Azure CLI ini.
Important
Setiap key vault harus memiliki nama yang unik. Ganti <vault-name> dengan nama brankas kunci Anda dalam contoh berikut.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Memberikan akses ke key vault Anda
Untuk mendapatkan izin ke brankas kunci Anda melalui Role-Based Access Control (RBAC), tetapkan peran ke "Nama Prinsipal Pengguna" (UPN) Anda menggunakan perintah Azure CLI az role assignment create.
az role assignment create --role "Key Vault Certificates Officer" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
Ganti <upn>, <subscription-id>, dan <vault-name> dengan nilai aktual Anda. Jika Anda menggunakan nama grup sumber daya yang berbeda, ganti "myResourceGroup" juga. UPN Anda biasanya akan dalam format alamat email (misalnya, username@domain.com).
Atur variabel lingkungan
Aplikasi ini menggunakan nama brankas kunci Anda sebagai variabel lingkungan yang bernama KEY_VAULT_NAME.
Windows
set KEY_VAULT_NAME=<vault-name>
Windows PowerShell
$Env:KEY_VAULT_NAME="<vault-name>"
macOS atau Linux
export KEY_VAULT_NAME=<vault-name>
Model objek
Pustaka klien Sertifikat Azure Key Vault untuk Java memungkinkan Anda mengelola sertifikat. Bagian Contoh kode menunjukkan cara membuat klien, membuat sertifikat, mengambil sertifikat, dan menghapus sertifikat.
Seluruh aplikasi konsol ada di bawah.
Contoh kode
Menambahkan direktif
Tambahkan instruksi berikut di bagian atas kode Anda:
import com.azure.core.util.polling.SyncPoller;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.certificates.CertificateClient;
import com.azure.security.keyvault.certificates.CertificateClientBuilder;
import com.azure.security.keyvault.certificates.models.CertificateOperation;
import com.azure.security.keyvault.certificates.models.CertificatePolicy;
import com.azure.security.keyvault.certificates.models.DeletedCertificate;
import com.azure.security.keyvault.certificates.models.KeyVaultCertificate;
import com.azure.security.keyvault.certificates.models.KeyVaultCertificateWithPolicy;
Mengautentikasi dan membuat klien
Permintaan aplikasi ke sebagian besar layanan Azure harus diotorisasi. Menggunakan DefaultAzureCredential adalah pendekatan yang direkomendasikan untuk menerapkan koneksi tanpa kata sandi ke layanan Azure dalam kode Anda.
DefaultAzureCredential mendukung beberapa metode autentikasi dan menentukan metode mana yang harus digunakan pada saat runtime. Pendekatan ini memungkinkan aplikasi Anda menggunakan metode autentikasi yang berbeda di lingkungan yang berbeda (lokal vs. produksi) tanpa menerapkan kode spesifik per lingkungan.
Dalam panduan memulai cepat ini, DefaultAzureCredential mengautentikasi ke Key Vault menggunakan kredensial pengguna lokal pengembangan yang masuk ke Azure CLI. Ketika aplikasi disebarkan ke Azure, kode DefaultAzureCredential yang sama dapat secara otomatis menemukan dan menggunakan identitas terkelola yang ditetapkan ke App Service, Komputer Virtual, atau layanan lainnya. Untuk informasi selengkapnya, lihat Gambaran Umum Identitas Terkelola.
Dalam contoh ini, nama brankas kunci Anda diperluas ke URI brankas kunci, dalam format yang sesuai https://<vault-name>.vault.azure.net. Untuk informasi lebih lanjut tentang autentikasi ke brankas kunci, lihat Panduan Pengembang.
String keyVaultName = System.getenv("KEY_VAULT_NAME");
String keyVaultUri = "https://" + keyVaultName + ".vault.azure.net";
CertificateClient certificateClient = new CertificateClientBuilder()
.vaultUrl(keyVaultUri)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Menyimpan sertifikat
Setelah aplikasi diautentikasi, Anda dapat membuat sertifikat di brankas kunci menggunakan metode certificateClient.beginCreateCertificate. Ini memerlukan nama untuk sertifikat dan kebijakan sertifikat -- nilai "myCertificate" ditetapkan ke certificateName variabel dalam sampel ini dan kebijakan default digunakan.
Pembuatan sertifikat adalah operasi yang berlangsung lama. Anda dapat memeriksa kemajuannya atau menunggunya hingga selesai.
Nota
Panduan memulai cepat ini membuat sertifikat yang ditandatangani sendiri untuk keperluan demonstrasi. Untuk beban kerja produksi, integrasikan Key Vault dengan otoritas sertifikat tepercaya. Lihat Sekuriti sertifikat Azure Key Vault Anda.
SyncPoller<CertificateOperation, KeyVaultCertificateWithPolicy> certificatePoller =
certificateClient.beginCreateCertificate(certificateName, CertificatePolicy.getDefault());
certificatePoller.waitForCompletion();
Anda dapat memperoleh sertifikat setelah pembuatan selesai melalui panggilan berikut:
KeyVaultCertificate createdCertificate = certificatePoller.getFinalResult();
Mengambil sertifikat
Kini Anda dapat mengambil sertifikat yang telah dibuat sebelumnya dengan metode certificateClient.getCertificate.
KeyVaultCertificate retrievedCertificate = certificateClient.getCertificate(certificateName);
Anda sekarang dapat mengakses detail sertifikat yang diambil dengan operasi seperti retrievedCertificate.getName, retrievedCertificate.getProperties, dan lain-lain, serta isinya retrievedCertificate.getCer.
Hapus sertifikat
Terakhir, mari kita hapus sertifikat dari penyimpanan kunci Anda dengan metode certificateClient.beginDeleteCertificate, yang juga merupakan operasi jangka panjang.
SyncPoller<DeletedCertificate, Void> deletionPoller = certificateClient.beginDeleteCertificate(certificateName);
deletionPoller.waitForCompletion();
Membersihkan sumber daya
Jika tidak lagi diperlukan, Anda dapat menggunakan Azure CLI atau Azure PowerShell untuk menghapus brankas kunci dan grup sumber daya yang sesuai.
az group delete -g "myResourceGroup"
Remove-AzResourceGroup -Name "myResourceGroup"
Contoh kode
package com.keyvault.certificates.quickstart;
import com.azure.core.util.polling.SyncPoller;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.certificates.CertificateClient;
import com.azure.security.keyvault.certificates.CertificateClientBuilder;
import com.azure.security.keyvault.certificates.models.CertificateOperation;
import com.azure.security.keyvault.certificates.models.CertificatePolicy;
import com.azure.security.keyvault.certificates.models.DeletedCertificate;
import com.azure.security.keyvault.certificates.models.KeyVaultCertificate;
import com.azure.security.keyvault.certificates.models.KeyVaultCertificateWithPolicy;
public class App {
public static void main(String[] args) throws InterruptedException, IllegalArgumentException {
String keyVaultName = System.getenv("KEY_VAULT_NAME");
String keyVaultUri = "https://" + keyVaultName + ".vault.azure.net";
System.out.printf("key vault name = %s and kv uri = %s \n", keyVaultName, keyVaultUri);
CertificateClient certificateClient = new CertificateClientBuilder()
.vaultUrl(keyVaultUri)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
String certificateName = "myCertificate";
System.out.print("Creating a certificate in " + keyVaultName + " called '" + certificateName + " ... ");
SyncPoller<CertificateOperation, KeyVaultCertificateWithPolicy> certificatePoller =
certificateClient.beginCreateCertificate(certificateName, CertificatePolicy.getDefault());
certificatePoller.waitForCompletion();
System.out.print("done.");
System.out.println("Retrieving certificate from " + keyVaultName + ".");
KeyVaultCertificate retrievedCertificate = certificateClient.getCertificate(certificateName);
System.out.println("Your certificate's ID is '" + retrievedCertificate.getId() + "'.");
System.out.println("Deleting your certificate from " + keyVaultName + " ... ");
SyncPoller<DeletedCertificate, Void> deletionPoller = certificateClient.beginDeleteCertificate(certificateName);
deletionPoller.waitForCompletion();
System.out.print("done.");
}
}
Langkah selanjutnya
Dalam panduan memulai cepat ini, Anda membuat Key Vault, membuat sertifikat, mengambilnya, lalu menghapusnya. Untuk mempelajari lebih lanjut tentang Key Vault dan cara mengintegrasikannya dengan aplikasi Anda, lanjutkan ke artikel di bawah ini.
- Baca Gambaran Umum Azure Key Vault
- Lihat panduan pengembang Azure Key Vault
- Cara Mengamankan akses ke brankas kunci
- Meninjau praktik terbaik keamanan khusus sertifikat