Menyematkan konten Power BI dengan perwakilan layanan dan rahasia aplikasi

Perwakilan layanan adalah metode autentikasi yang dapat digunakan untuk memungkinkan aplikasi Microsoft Entra mengakses konten dan API layanan Power BI.

Saat Anda membuat aplikasi Microsoft Entra, objek perwakilan layanan dibuat. Objek perwakilan layanan, juga dikenal sebagai perwakilan layanan, memungkinkan MICROSOFT Entra ID untuk mengautentikasi aplikasi Anda. Setelah diautentikasi, aplikasi dapat mengakses sumber daya penyewa Microsoft Entra.

Untuk mengautentikasi, perwakilan layanan menggunakan ID aplikasi aplikasi Microsoft Entra dan salah satu hal berikut:

  • Sertifikat
  • Rahasia aplikasi

Artikel ini menjelaskan autentikasi perwakilan layanan menggunakan ID aplikasi dan rahasia aplikasi.

Catatan

Kami menyarankan agar Anda mengamankan layanan back-end Anda dengan menggunakan sertifikat, bukan kunci rahasia.

Metode

Untuk menggunakan perwakilan layanan dan ID aplikasi untuk analitik yang disematkan, Anda mengambil langkah-langkah berikut. Bagian berikutnya menjelaskan langkah-langkah ini secara rinci.

  1. Membuat aplikasi Microsoft Entra.

    1. Buat rahasia untuk aplikasi Microsoft Entra Anda.
    2. Dapatkan ID aplikasi dan rahasia aplikasi aplikasi.

    Catatan

    Langkah-langkah ini dijelaskan di langkah 1. Untuk informasi selengkapnya tentang membuat aplikasi Microsoft Entra, lihat membuat aplikasi Microsoft Entra.

  2. Buat grup keamanan Microsoft Entra.

  3. Aktifkan pengaturan admin layanan Power BI.

  4. Tambahkan perwakilan layanan ke ruang kerja Anda.

  5. Sematkan konten Anda.

Penting

Aplikasi Microsoft Entra tidak mengharuskan Anda mengonfigurasi izin atau izin aplikasi yang didelegasikan dalam portal Azure saat telah dibuat untuk perwakilan layanan. Saat Anda membuat aplikasi Microsoft Entra untuk perwakilan layanan untuk mengakses Rest API Power BI, kami sarankan Anda menghindari penambahan izin. Mereka tidak pernah digunakan dan dapat menyebabkan kesalahan yang sulit di memecahkan masalah.

Langkah 1 - Membuat aplikasi Microsoft Entra

Buat aplikasi Microsoft Entra dengan menggunakan salah satu metode berikut:

Membuat aplikasi Microsoft Entra di portal Azure

  1. Masuk ke portal Azure.

  2. Cari dan pilih Pendaftaran aplikasi.

    Cuplikan layar portal Azure, dengan pendaftaran aplikasi di kotak pencarian. Kotak itu dan ikon Pendaftaran aplikasi disorot.

  3. Pilih Pendaftaran baru.

    Cuplikan layar halaman Pendaftaran aplikasi di portal Azure. Pendaftaran baru disorot.

  4. Isi informasi yang diperlukan:

    • Nama - Masukkan nama untuk aplikasi Anda.
    • Jenis akun yang didukung - Pilih jenis akun yang didukung.
    • (Opsional) URI Pengalihan - Masukkan URI jika diperlukan.
  5. Pilih Daftarkan.

  6. Setelah Anda mendaftarkan aplikasi, ID Aplikasi tersedia dari tab Gambaran Umum . Salin dan simpan ID Aplikasi untuk digunakan nanti.

    Cuplikan layar halaman Gambaran Umum aplikasi baru. ID Aplikasi tidak dapat didefinisikan dan disorot.

  7. Pilih Sertifikat & rahasia.

    Cuplikan layar halaman Gambaran Umum aplikasi baru. Pada panel navigasi, Sertifikat & rahasia disorot.

  8. Pilih Rahasia klien baru.

    Cuplikan layar yang memperlihatkan bagian dari halaman Sertifikat & rahasia untuk aplikasi. Di bawah Rahasia klien, tombol Rahasia klien baru disorot.

  9. Di jendela Tambahkan rahasia klien, masukkan deskripsi, tentukan kapan Anda ingin rahasia klien kedaluwarsa, dan pilih Tambahkan.

  10. Salin dan simpan nilai rahasia klien.

    Cuplikan layar halaman Sertifikat & rahasia untuk aplikasi. Di bawah Rahasia klien, rahasia baru terlihat. Nilainya yang tidak dapat didefinisikan disorot.

    Catatan

    Setelah Anda meninggalkan jendela ini, nilai rahasia klien disembunyikan, dan Anda tidak dapat melihat atau menyalinnya lagi.

Membuat aplikasi Microsoft Entra dengan menggunakan PowerShell

Contoh skrip PowerShell berikut membuat aplikasi Microsoft Entra baru dan perwakilan layanan. Sebelum Anda menjalankan skrip ini:

Setelah skrip berjalan, catat informasi berikut dalam output skrip:

  • ID klien aplikasi baru
  • ID objek dari perwakilan layanan baru
  • Nilai rahasia perwakilan layanan
# Sign in as a user who's allowed to create an app.
Connect-MgGraph -Scopes "Application.ReadWrite.All" 

# Create a new Azure AD web application.
$web = @{
    RedirectUris = "https://localhost:44322"
    HomePageUrl = "https://localhost:44322"
}
$params = @{
    DisplayName = "myAzureADApp"
    Web = $($web)
}
$app = New-MgApplication @params
Write-Host "Client ID of new app: " $($app.AppId)

# Create a service principal.
$ServicePrincipalID=@{
  "AppId" = $($app.AppId)
  }
$sp = New-MgServicePrincipal -BodyParameter $($ServicePrincipalId)
Write-Host "Object ID of new service principal: " $($sp.Id)

# Create a key for the service principal.
$credential = Add-MgServicePrincipalPassword -ServicePrincipalId $($sp.Id)
Write-Host "Credential of new service principal: " $($credential.SecretText)

Langkah 2 - Membuat grup keamanan Microsoft Entra

Perwakilan layanan Anda tidak memiliki akses ke konten dan API Power BI Anda. Untuk memberikan akses perwakilan layanan, buat grup keamanan di ID Microsoft Entra. Kemudian tambahkan perwakilan layanan yang Anda buat ke grup keamanan tersebut.

Catatan

Jika Anda ingin mengaktifkan akses perwakilan layanan untuk seluruh organisasi, lewati langkah ini.

Ada dua cara untuk membuat grup keamanan Microsoft Entra:

Buat grup keamanan secara manual

Untuk membuat grup keamanan Azure secara manual, ikuti instruksi di Membuat grup dasar dan menambahkan anggota.

Membuat grup keamanan dengan menggunakan PowerShell

Contoh skrip berikut membuat grup keamanan baru. Ini juga menambahkan perwakilan layanan yang Anda buat sebelumnya ke grup keamanan baru.

  • Sebelum Menjalankan skrip, ganti <app-client-ID> dengan ID klien yang Anda rekam sebelumnya untuk aplikasi baru Anda.
  • Setelah Anda menjalankan skrip, catat ID objek dari grup keamanan baru, yang dapat Anda temukan di output skrip.
# Sign in as an admin.
Connect-MgGraph -Scopes "Application.ReadWrite.All"

# Get the service principal that you created earlier.
$servicePrincipal = Get-MgServicePrincipal -Filter "AppId eq '<app-client-ID>'"

# Create an Azure AD security group.
$group = New-MgGroup -DisplayName "securitygroup1" -SecurityEnabled -MailEnabled:$False -MailNickName "notSet"
Write-Host "Object ID of new security group: " $($group.Id)

# Add the service principal to the group.
New-MgGroupMember -GroupId $($group.Id) -DirectoryObjectId $($servicePrincipal.Id)

Langkah 3 - Aktifkan pengaturan admin layanan Power BI

Agar aplikasi Microsoft Entra mengakses konten dan API Power BI, admin Power BI perlu mengaktifkan pengaturan berikut:

  • Menyematkan konten di aplikasi
  • Mengizinkan perwakilan layanan untuk menggunakan API Power BI

Di portal Admin Power BI, buka Pengaturan penyewa, dan gulir ke bawah ke Pengaturan pengembang.

  • Aktifkan Sematkan konten di aplikasi baik untuk seluruh organisasi atau untuk grup keamanan tertentu yang Anda buat di ID Microsoft Entra.

    Cuplikan layar pengaturan Pengembang di bagian Pengaturan penyewa di portal Admin. Opsi untuk menyematkan konten di aplikasi diaktifkan.

  • Aktifkan Izinkan perwakilan layanan untuk menggunakan API Power BI baik untuk seluruh organisasi atau untuk grup keamanan tertentu yang Anda buat di ID Microsoft Entra.

    Cuplikan layar bagian Pengaturan pengembang. Opsi untuk mengizinkan perwakilan layanan menggunakan API Power BI diaktifkan untuk satu grup keamanan.

    Penting

    Perwakilan layanan memiliki akses ke pengaturan penyewa apa pun yang diaktifkan. Bergantung pada pengaturan admin Anda, ini termasuk grup keamanan tertentu atau seluruh organisasi.

    Untuk membatasi akses perwakilan layanan ke pengaturan penyewa tertentu, izinkan akses hanya ke grup keamanan tertentu. Atau, Anda dapat membuat kelompok keamanan khusus untuk perwakilan layanan, dan mengecualikannya dari pengaturan penyewa yang diinginkan.

Langkah 4 - Tambahkan perwakilan layanan ke ruang kerja Anda

Aplikasi Microsoft Entra Anda dapat mengakses laporan Power BI, dasbor, dan model semantik hanya saat memiliki akses ke ruang kerja Power BI Anda. Anda menyediakan akses tersebut dengan menambahkan perwakilan layanan aplikasi atau grup keamanannya ke ruang kerja Anda sebagai anggota atau admin.

Ada tiga cara untuk menambahkan perwakilan layanan atau grup keamanannya ke ruang kerja Anda:

Menambahkan perwakilan layanan atau grup keamanan secara manual

  1. Di layanan Power BI, gulir ke ruang kerja yang ingin Anda aktifkan aksesnya. Dari menu Lainnya, pilih Akses ruang kerja.

    Cuplikan layar yang memperlihatkan menu Lainnya yang diperluas untuk ruang kerja. Pada menu tersebut, akses Ruang Kerja disorot.

  2. Di panel Akses , di bawah Tambahkan admin, anggota, atau kontributor, tambahkan salah satu hal berikut ini:

    • Perwakilan layanan Anda. Nama perwakilan layanan Anda adalah Nama tampilan aplikasi Microsoft Entra Anda, seperti yang muncul di tab gambaran umum aplikasi Microsoft Entra Anda.
    • Grup keamanan yang menyertakan perwakilan layanan Anda.
  3. Pada menu dropdown, pilih Anggota atau Admin.

  4. Pilih Tambahkan.

Menambahkan perwakilan layanan atau grup keamanan dengan menggunakan PowerShell

Bagian berikut ini menyediakan sampel skrip PowerShell untuk menambahkan perwakilan layanan dan grup keamanan ke ruang kerja Power BI sebagai anggota.

Menambahkan perwakilan layanan sebagai anggota ruang kerja dengan menggunakan PowerShell

Skrip berikut menambahkan perwakilan layanan sebagai anggota ruang kerja. Sebelum Anda menjalankan skrip:

  • Ganti <service-principal-object-ID> dengan ID objek yang Anda rekam sebelumnya untuk perwakilan layanan baru Anda.
  • Ganti <workspace-name> dengan nama ruang kerja yang ingin Anda berikan akses perwakilan layanan.
# Sign in to Power BI.
Login-PowerBI

# Set up the service principal ID.
$SPObjectID = "<service-principal-object-ID>"

# Get the workspace.
$pbiWorkspace = Get-PowerBIWorkspace -Filter "name eq '<workspace-name>'"

# Add the service principal to the workspace.
Add-PowerBIWorkspaceUser -Id $($pbiWorkspace.Id) -AccessRight Member -PrincipalType App -Identifier $($SPObjectID)

Menambahkan grup keamanan sebagai anggota ruang kerja dengan menggunakan PowerShell

Skrip berikut menambahkan grup keamanan sebagai anggota ruang kerja. Sebelum Anda menjalankan skrip:

  • Ganti <security-group-object-ID> dengan ID objek yang Anda rekam sebelumnya untuk grup keamanan baru Anda.
  • Ganti <workspace-name> dengan nama ruang kerja yang ingin Anda beri akses kepada grup keamanan.
# Sign in to Power BI.
Login-PowerBI

# Set up the security group object ID.
$SGObjectID = "<security-group-object-ID>"

# Get the workspace.
$pbiWorkspace = Get-PowerBIWorkspace -Filter "name eq '<workspace-name>'"

# Add the security group to the workspace.
Add-PowerBIWorkspaceUser -Id $($pbiWorkspace.Id) -AccessRight Member -PrincipalType Group -Identifier $($SGObjectID)

Langkah 5 - Sematkan konten Anda

Anda dapat menyematkan konten Anda dalam aplikasi sampel, atau dalam aplikasi Anda sendiri.

Setelah konten Anda disematkan, Anda siap untuk pindah ke produksi.

Catatan

Untuk mengamankan konten Anda dengan menggunakan sertifikat, ikuti langkah-langkah yang dijelaskan dalam Menyematkan konten Power BI dengan perwakilan layanan dan sertifikat.

Pertimbangan dan batasan

  • Ruang Kerja saya tidak didukung saat menggunakan perwakilan layanan.
  • Kapasitas diperlukan saat pindah ke produksi.
  • Anda tidak dapat masuk ke portal Power BI dengan menggunakan perwakilan layanan.
  • Hak admin Power BI diperlukan untuk mengaktifkan perwakilan layanan di pengaturan pengembang dalam portal Admin Power BI.
  • Sematkan untuk aplikasi organisasi Anda tidak dapat menggunakan perwakilan layanan.
  • Manajemen aliran data tidak didukung.
  • Perwakilan layanan hanya mendukung beberapa API admin baca-saja. Untuk mengaktifkan dukungan perwakilan layanan untuk API admin baca-saja, Anda harus mengaktifkan pengaturan admin layanan Power BI di penyewa Anda. Untuk informasi selengkapnya, lihat Mengaktifkan autentikasi perwakilan layanan untuk API admin baca-saja.
  • Saat Anda menggunakan perwakilan layanan dengan sumber data Azure Analysis Services , perwakilan layanan itu sendiri harus memiliki izin instans Azure Analysis Services. Menggunakan grup keamanan yang berisi perwakilan layanan untuk tujuan ini tidak berfungsi.