Memperoleh token akses

Selesai

Saat Anda memperoleh token akses, yang selalu diperlukan aplikasi Anda untuk menyematkan konten Power BI, melibatkan memperoleh token Azure AD. Saat Anda menggunakan skenario Untuk pelanggan Anda, aplikasi menggunakan token Azure AD untuk menghasilkan token semat.

Untuk lebih jelasnya:

  • Token akses untuk skenario Untuk organisasi Anda adalah token Azure AD, yang berisi klaim yang digunakan aplikasi Anda untuk mengidentifikasi izin yang diberikan.
  • Token akses untuk skenario Untuk pelanggan Anda adalah token semat, yang mewakili fakta tentang konten Power BI dan bagaimana aplikasi Anda dapat mengaksesnya. Aplikasi Anda menghasilkan token semat dengan menggunakan operasi Power BI REST API, yang memerlukan token Azure AD.

Memperoleh token Azure AD

Gunakan Microsoft Authentication Library (MSAL) untuk mengembangkan logika aplikasi yang memperoleh token Azure AD dari platform identitas Microsoft. MSAL mendukung arsitektur dan platform aplikasi yang berbeda termasuk .NET, JavaScript, Java, Python, Android, dan iOS.

Tip

Saat mengembangkan aplikasi web ASP.NET Core, kami sarankan Anda menggunakan pustaka autentikasi Web Identitas Microsoft. Pustaka ini adalah sekumpulan paket yang dikenal sebagai Microsoft.Identity.Web. Anda dapat menginstalnya dari NuGet atau Visual Studio.

Ada berbagai teknik untuk memperoleh token Azure AD dengan menggunakan MSAL. Beberapa memerlukan interaksi pengguna melalui browser web, sementara yang lain tidak memerlukan interaksi pengguna apa pun. Secara umum, metode yang Anda pilih untuk memperoleh token Azure AD tergantung pada apakah aplikasi tersebut adalah aplikasi klien publik (seperti desktop atau aplikasi seluler) atau aplikasi klien rahasia (seperti aplikasi web). Skenario penyematan juga berdampak pada pilihan Anda.

Bukan niat unit ini untuk menggambarkan teknik yang memperoleh token Azure AD. Untuk informasi selengkapnya, lihat Memperoleh dan menyimpan token menggunakan Microsoft Authentication Library (MSAL).

Tip

Saat aplikasi sampel alat penyiapan Penyematan cocok dengan persyaratan aplikasi Anda, pertimbangkan untuk menyalin kode sampel untuk memperoleh token Azure AD.

Untuk memungkinkan aplikasi Anda memperoleh token Azure AD, file konfigurasinya harus berisi pengaturan berikut:

  • TenantId - Diperlukan hanya untuk perwakilan layanan. Ini adalah Azure AD TenantID Anda.
  • ClientId -Diperlukan. Ini adalah aplikasi Azure AD ApplicationID (ClientID) Anda.
  • ClientSecret atau ClientCertificate - Diperlukan hanya untuk perwakilan layanan.
  • PbiUsername - Diperlukan hanya untuk akun pengguna master.
  • PbiPassword - Diperlukan hanya untuk akun pengguna master.

Penting

Baik menggunakan sertifikat, rahasia klien, atau kredensial akun pengguna master, Anda harus mengambil langkah-langkah untuk melindunginya dari akses dan penggunaan yang tidak sah. Sebaiknya gunakan Azure Key Vault, yang melindungi kunci kriptografi, sertifikat, dan rahasia di cloud.

Memperoleh token tersemat

GenerateTokenRequestV2 Gunakan operasi REST API Microsoft Power BI untuk meminta token semat. Ada operasi terkait lainnya yang menghasilkan token semat untuk tipe konten Power BI lainnya. Semua operasi API memerlukan token Azure AD.

Tip

Saat mengembangkan aplikasi .NET, kami sarankan Anda menginstal paket Microsoft.PowerBI.Api . Anda dapat menginstalnya dari NuGet atau Visual Studio.

Pertimbangkan kode berikut yang menunjukkan cara menghasilkan token semat. Token berisi klaim untuk semua laporan dan himpunan data dari ruang kerja, dan memungkinkan pengguna aplikasi untuk membuat atau mengedit laporan. Secara khusus, ia melakukan hal berikut:

  1. Menyambungkan ke Power BI.
  2. Mendeklarasikan variabel bernama reportTokenRequests untuk menyimpan permintaan token laporan.
  3. Menghitung semua laporan di ruang kerja, membuat daftar objek (menggunakan kelas pembantu EmbeddedReport ). Setiap objek menjelaskan ID, nama, dan URL semat laporan. Aplikasi ini memerlukan ID laporan untuk menghasilkan token. Nama diperlukan untuk disajikan kepada pengguna di menu, dan URL semat diperlukan untuk menyematkan laporan. Kode menambahkan permintaan token laporan, memungkinkan pengeditan laporan, ke reportTokenRequests variabel .
  4. Mendeklarasikan variabel bernama datasetTokenRequests untuk menyimpan permintaan token himpunan data.
  5. Menghitung semua himpunan data di ruang kerja, membuat daftar objek (menggunakan kelas pembantu EmbeddedDataset ). Setiap objek menjelaskan ID, nama, dan URL semat himpunan data. Aplikasi ini memerlukan ID himpunan data untuk menghasilkan token. Nama mungkin diperlukan untuk menyajikannya kepada pengguna di menu, dan URL semat diperlukan untuk menyematkan himpunan data. Kode menambahkan permintaan token himpunan data ke datasetTokenRequests variabel .
  6. Menghasilkan permintaan token ruang kerja (diperlukan saat pengguna membuat laporan) yang ditambahkan ke workspaceRequests variabel .
  7. GenerateTokenRequestV2 Menggunakan metode untuk menggabungkan permintaan token laporan, permintaan token himpunan data, dan permintaan token ruang kerja.
  8. GenerateTokenAsync Menggunakan untuk menghasilkan token semat.
  9. Menyimpan token semat dalam variabel string.
// Connect to Power BI
var client = GetPowerBiClient();

// Get reports in the workspace
var reports = (await client.Reports.GetReportsInGroupAsync(_workspaceId)).Value;

var reportList = new List<EmbeddedReport>();
var reportTokenRequests = new List<GenerateTokenRequestV2Report>();

foreach (var report in reports)
{
    reportList.Add(new EmbeddedReport
    {
        Id = report.Id.ToString(),
        Name = report.Name,
        EmbedUrl = report.EmbedUrl
    });

    reportTokenRequests.Add(new GenerateTokenRequestV2Report(report.Id, allowEdit: true));
}

// Get datasets in the workspace
var datasets = (await client.Datasets.GetDatasetsInGroupAsync(_workspaceId)).Value;

var datasetList = new List<EmbeddedDataset>();
var datasetTokenRequests = new List<GenerateTokenRequestV2Dataset>();

foreach (var dataset in datasets)
{
    datasetList.Add(new EmbeddedDataset
    {
        Id = dataset.Id.ToString(),
        Name = dataset.Name,
        EmbedUrl = dataset.QnaEmbedURL
    });

    datasetTokenRequests.Add(new GenerateTokenRequestV2Dataset(dataset.Id));
}

// Generate token request for the workspace
var workspaceRequests = new GenerateTokenRequestV2TargetWorkspace[] {
    new GenerateTokenRequestV2TargetWorkspace(_workspaceId)
};

// Bundle token requests for reports, datasets, and the workspace
var tokenRequest = new GenerateTokenRequestV2(
    reports: reportTokenRequests,
    datasets: datasetTokenRequests,
    targetWorkspaces: workspaceRequests
);

// Generate the embed token
string embedToken = (await client.EmbedToken.GenerateTokenAsync(tokenRequest)).Token;

Aplikasi harus menghasilkan embedToken nilai variabel ke halaman HTML penyematan. Logika sisi klien kemudian dapat menggunakan token semat untuk menyematkan konten dalam div elemen.

Catatan

Untuk mempelajari cara menyematkan konten Power BI, bekerja melalui modul menyematkan konten Power BI .

Untuk memungkinkan aplikasi Anda memperoleh token semat, file konfigurasinya harus berisi detail tentang konten yang dapat disematkan. Ini dapat mencakup ReportID dan DatasetID tertentu, atau lebih umum GroupID ruang kerja yang berisi konten yang dapat disematkan.

Untuk informasi selengkapnya, lihat Sematkan Token - Hasilkan Token.

Menyegarkan token akses

Token akses memiliki waktu kedaluwarsa. Setelah dibuat, pengguna aplikasi memiliki waktu terbatas untuk berinteraksi dengan konten Power BI yang menggunakannya. Untuk memberi pengguna aplikasi Anda pengalaman berkelanjutan, aplikasi Anda harus me-refresh token akses sebelum kedaluwarsa dengan menggunakan API klien Power BI.

Catatan

Untuk mempelajari tentang API Klien, bekerja melalui modul Integrasikan konten dengan API klien Power BI .

Untuk informasi selengkapnya, lihat Merefresh token akses.

Menjelajahi sumber daya lain

Untuk mempelajari selengkapnya, watch Panduan Pengembang Power BI untuk Azure AD seri video Keamanan. Seri ini terdiri dari enam video yang mencakup teori mendalam. Ted Pattison, yang merupakan anggota Tim Penasihat Pelanggan (CAT) Power BI di Microsoft, memproduksi seri video ini.