Menyematkan konten Power BI dengan perwakilan 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 GitHub alur kredensial klien.

Metode

  1. Menyematkan konten Anda dengan perwakilan layanan.

  2. Membuat sertifikat.

  3. Menyiapkan autentikasi sertifikat.

  4. Mendapatkan sertifikat dari Azure Key Vault.

  5. Mengautentikasi dengan menggunakan perwakilan layanan dan sertifikat.

Langkah 1 - Menyematkan 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.

Catatan

Jika Anda sudah memiliki konten yang disematkan dengan menggunakan perwakilan layanan, lewati langgah ini dan lanjutkan ke langkah 2.

Langkah 2 - Membuat sertifikat

Anda dapat memperoleh sertifikat dari Otoritas Sertifikat terpercaya, atau membuat sertifikat sendiri.

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

  1. Masuk ke Microsoft Azure.

  2. Cari dan pilih tautan Brankas kunci.

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

  3. Pilih key vault yang ingin Anda tambahi sertifikat.

    Cuplikan layar jendela portal Azure, yang memperlihatkan daftar brankas kunci kabur di daftar Brankas kunci.

  4. Pilih Sertifikat.

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

  5. Pilih Buat/impor.

    Cuplikan layar jendela portal 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

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

    • Subjek - Nama khusus X.500

    • Nama DNS - 0 Nama DNS

    • Masa Berlaku (dalam bulan) - Masukkan durasi validitas sertifikat

    • Tipe Konten - PKCS #12

    • Tipe Tindakan Masa Berlaku - Perbarui secara otomatis pada presentase masa berlaku tertentu

    • Persentase Masa Berlaku - 80

    • Konfigurasi Kebijakan Tingkat Lanjut - Tidak dikonfigurasi

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

  8. Pilih sertifikat yang telah Anda buat.

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

    Cuplikan layar jendela portal 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 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 umum.

Langkah 4 - Mendapatkan sertifikat dari Azure Key Vault

Gunakan Identitas Layanan Terkelola (MSI) untuk mendapatkan sertifikat dari Azure Key Fault. Proses ini melibatkan mendapatkan sertifikat .pfx yang berisi kunci umum dan pribadi.

Lihat contoh untuk membaca sertifikat dari Azure Key Fault. 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 dengan 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.

Catatan

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

// 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, MSI akan membiarkan Visual Studio mengautentikasi terhadap Azure Key Fault Anda.

Catatan

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

  1. Buka proyek Anda di Visual Studio.

  2. Pilih Alat>Opsi.

    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.