Bagikan melalui


Menyematkan konten Power BI dengan prinsipal layanan dan sertifikat

Autentikasi berbasis sertifikat memungkinkan Anda diautentikasi oleh ID Microsoft Entra dengan sertifikat klien. Sertifikat klien dapat berada di perangkat Windows, Android, atau iOS, atau sertifikat klien dapat disimpan di Azure Key Vault.

Menggunakan metode autentikasi ini memungkinkan pengelolaan sertifikat dari tempat pusat menggunakan otoritas sertifikat (CA) untuk rotasi atau pencabutan.

Anda dapat mempelajari selengkapnya tentang sertifikat di ID Microsoft Entra di halaman Alur kredensial klien .

Metode

  1. Sematkan konten Anda dengan service principal.

  2. Buat sertifikat.

  3. Siapkan autentikasi sertifikat.

  4. Dapatkan sertifikat dari Azure Key Vault.

  5. Autentikasi menggunakan prinsipal layanan dan sertifikat.

Langkah 1 - Sematkan konten Anda dengan perwakilan layanan

Untuk menyematkan konten Anda dengan perwakilan layanan, ikuti instruksi di Menyematkan konten Power BI dengan perwakilan layanan dan rahasia aplikasi.

Nota

Jika Anda sudah memiliki konten yang disematkan menggunakan service principal, lewati langkah ini dan lanjutkan ke langkah 2.

Langkah 2 - Membuat sertifikat

Anda dapat mendapatkan sertifikat dari Otoritas Sertifikat tepercaya, atau membuat sertifikat sendiri.

Bagian ini menjelaskan pembuatan sertifikat menggunakan Azure Key Vault, dan mengunduh file .cer , yang berisi kunci publik.

  1. Masuk ke Microsoft Azure.

  2. Cari dan pilih tautan Key Vault.

    Cuplikan layar jendela portal Microsoft Azure, yang memperlihatkan tautan ke layanan brankas kunci di daftar Layanan.

  3. Pilih brankas kunci yang ingin Anda tambahkan sertifikatnya.

    Cuplikan layar jendela portal Azure, yang memperlihatkan daftar brankas kunci yang dikaburkan dalam daftar Brankas kunci.

  4. Pilih Sertifikat.

    Cuplikan layar jendela portal Microsoft Azure, yang memperlihatkan halaman Brankas kunci dengan item Sertifikat yang disorot.

  5. Pilih Hasilkan/Impor.

    Cuplikan layar jendela portal Microsoft Azure, yang memperlihatkan panel Sertifikat dengan item Buat/Impor yang disorot.

  6. Konfigurasikan bidang Buat sertifikat sebagai berikut:

    • Metode Pembuatan Sertifikat - Umum

    • Nama Sertifikat - Masukkan nama untuk sertifikat Anda

    • Jenis Otoritas Sertifikat (CA) - Sertifikat yang ditandatangani sendiri

    • Subjek - Nama yang dibedakan X.500

    • Nama DNS - 0 Nama DNS

    • Periode Validitas (dalam bulan) - Masukkan durasi validitas sertifikat

    • Tipe Isi - PKCS #12

    • Jenis Tindakan Seumur Hidup - Memperbarui secara otomatis pada persentase masa pakai tertentu

    • Persentase Masa Pakai - 80

    • Konfigurasi Kebijakan Tingkat Lanjut - Tidak dikonfigurasi

  7. Pilih Buat. Sertifikat yang baru dibuat dinonaktifkan secara default. Dibutuhkan waktu hingga lima menit untuk diaktifkan.

  8. Pilih sertifikat yang Anda buat.

  9. Pilih Unduh dalam format CER. File yang diunduh berisi kunci publik.

    Cuplikan layar jendela portal Microsoft Azure, yang memperlihatkan tombol Unduh dalam Format CER yang disorot.

Langkah 3 - Menyiapkan autentikasi sertifikat

  1. Di aplikasi Microsoft Entra Anda, pilih tab Sertifikat &rahasia .

    Cuplikan layar jendela portal Microsoft Azure, yang memperlihatkan panel sertifikat dan rahasia untuk aplikasi.

  2. Pilih Unggah sertifikat dan unggah file .cer yang Anda buat dan unduh di langkah 2 tutorial ini. File .cer berisi kunci publik.

Langkah 4 - Dapatkan sertifikat dari Azure Key Vault

Gunakan Identitas Layanan Terkelola (MSI) untuk mendapatkan sertifikat dari Azure Key Vault. Proses ini melibatkan mendapatkan sertifikat .pfx yang berisi kunci publik dan privat.

Lihat contoh kode untuk membaca sertifikat dari Azure Key Vault. Jika Anda ingin menggunakan Visual Studio, lihat Mengonfigurasi Visual Studio untuk menggunakan MSI.

private X509Certificate2 ReadCertificateFromVault(string certName)
{
    var serviceTokenProvider = new AzureServiceTokenProvider();
    var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(serviceTokenProvider.KeyVaultTokenCallback));
    CertificateBundle certificate = null;
    SecretBundle secret = null;

    certificate = keyVaultClient.GetCertificateAsync($"https://{KeyVaultName}.vault.azure.net/", certName).Result;
    secret = keyVaultClient.GetSecretAsync(certificate.SecretIdentifier.Identifier).Result;
    
    return new X509Certificate2(Convert.FromBase64String(secret.Value));
}

Langkah 5 - Mengautentikasi menggunakan perwakilan layanan dan sertifikat

Anda dapat mengautentikasi aplikasi yang menggunakan perwakilan layanan dan sertifikat yang disimpan di Azure Key Vault dengan menyambungkan ke Azure Key Vault.

Untuk menyambungkan dan membaca sertifikat dari Azure Key Vault, lihat sampel kode berikut.

Nota

Jika Anda sudah memiliki sertifikat yang dibuat oleh organisasi Anda, unggah file .pfx ke Azure Key Vault.

// Preparing needed variables
var Scope = "https://analysis.windows.net/powerbi/api/.default"
var ApplicationId = "{YourApplicationId}"
var tenantSpecificURL = "https://login.microsoftonline.com/{YourTenantId}/"
X509Certificate2 certificate = ReadCertificateFromVault(CertificateName);

// Authenticating with a SP and a certificate
public async Task<AuthenticationResult> DoAuthentication(){
    IConfidentialClientApplication clientApp = null;
    clientApp = ConfidentialClientApplicationBuilder.Create(ApplicationId)
                                                    .WithCertificate(certificate)
                                                    .WithAuthority(tenantSpecificURL)
                                                    .Build();
    return await clientApp.AcquireTokenForClient(Scope).ExecuteAsync();
}

Mengonfigurasi Visual Studio untuk menggunakan MSI

Saat Anda membuat solusi yang disematkan, mungkin berguna untuk mengonfigurasi Visual Studio untuk menggunakan Identitas Layanan Terkelola (MSI). MSI adalah fitur yang memungkinkan Anda mengelola identitas Microsoft Entra Anda. Setelah dikonfigurasi, Visual Studio akan mengautentikasi ke Azure Key Vault Anda.

Nota

Pengguna yang masuk ke Visual Studio memerlukan izin Azure Key Vault untuk mendapatkan sertifikat.

  1. Buka proyek Anda di Visual Studio.

  2. PilihOpsi>.

    Cuplikan layar jendela Visual Studio, yang memperlihatkan tombol Opsi yang disorot di menu Alat.

  3. Cari dan pilih Pilihan Akun.

    Cuplikan layar jendela Opsi Visual Studio, yang memperlihatkan opsi Pemilihan Akun yang disorot di hasil pencarian.

  4. Tambahkan akun yang memiliki akses ke Azure Key Vault Anda.