Mengakses data BigQuery di Power BI dengan Federasi Identitas Karyawan dan Microsoft Entra

Panduan ini menunjukkan cara mengizinkan pengguna yang berada dalam grup Microsoft Entra mengakses data BigQuery di Power BI menggunakan Workforce Identity Federation.

Microsoft Entra adalah penyedia identitas (IdP). Klaim grup dari Microsoft Entra dipetakan ke Google Cloud. Grup diberi izin Identity and Access Management (IAM) untuk mengakses data BigQuery.

Panduan ini memberikan petunjuk untuk Power BI Desktop atau Web.

Sebelum memulai

  1. Pastikan Anda telah menyiapkan organisasi Google Cloud.
  2. After installing the Google Cloud CLI, configure the gcloud CLI to use your federated identity and then initialize it by running the following command:

    gcloud init
  3. Anda harus memiliki akses ke Microsoft Entra dan Microsoft Graph.
  4. Anda harus menyiapkan Power BI.

Peran yang diperlukan

Bagian ini menjelaskan peran yang diperlukan untuk administrator dan resource.

Peran untuk administrator

Untuk mendapatkan izin yang diperlukan guna mengonfigurasi Workforce Identity Federation, minta administrator untuk memberi Anda peran IAM IAM Workforce Pool Admin (roles/iam.workforcePoolAdmin) di organisasi. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Atau, peran dasar Pemilik IAM (roles/owner) juga mencakup izin untuk mengonfigurasi penggabungan identitas. Anda tidak boleh memberikan peran dasar dalam lingkungan produksi, tetapi Anda dapat memberikannya dalam lingkungan pengembangan atau pengujian.

Peran untuk identitas gabungan

Power BI mengirimkan parameter userProject selama pertukaran token. Oleh karena itu, Anda harus meminta administrator untuk memberikan peran Service Usage Consumer (roles/serviceusage.serviceUsageConsumer) ke identitas gabungan di project penagihan.

Untuk memberikan peran kepada grup identitas gabungan, jalankan perintah berikut:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="roles/serviceusage.serviceUsageConsumer" \
    --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"

Ganti kode berikut:

  • PROJECT_ID: project ID penagihan.
  • WORKFORCE_POOL_ID: ID kumpulan identitas tenaga kerja.
  • GROUP_ID: ID grup—misalnya, admin-group@example.com. Untuk melihat daftar ID utama umum, lihat ID utama.

Membuat workforce identity pool

Bagian ini menjelaskan cara membuat workforce identity pool. Anda akan membuat penyedia workforce identity pool nanti dalam panduan ini.

Konsol

Untuk membuat workforce identity pool, lakukan hal berikut:

  1. Di Konsol Google Cloud, buka halaman Workforce Identity Pool:

    Buka Workforce Identity Pools

  2. Klik Buat pool dan lakukan tindakan berikut:

    1. Di kolom Name, masukkan nama tampilan kumpulan. ID kumpulan otomatis diambil dari nama saat Anda mengetik, dan ditampilkan di kolom Nama. Anda dapat memperbarui ID pool dengan mengklik Edit di samping ID pool.

    2. Opsional: Di Deskripsi, masukkan deskripsi pool.

    3. Durasi sesi ditetapkan secara default. Untuk memasukkan durasi sesi khusus, klik Edit. Durasi sesi menentukan durasi validnya token akses Google Cloud, sesi login konsol (federasi), dan sesi login gcloud CLI dari workforce pool ini. Durasi harus lebih dari 15 menit (900 detik) dan kurang dari 12 jam (43200 detik). Jika durasi sesi tidak ditentukan, durasi default adalah durasi satu jam (3600 detik).

    4. Untuk mengaktifkan pool, pastikan Mengaktifkan Pool aktif.

    5. Untuk membuat workforce identity pool, klik Berikutnya.

gcloud

Untuk membuat workforce identity pool, jalankan perintah berikut:

gcloud iam workforce-pools create WORKFORCE_POOL_ID \
    --organization=ORGANIZATION_ID \
    --display-name="DISPLAY_NAME" \
    --description="DESCRIPTION" \
    --session-duration=SESSION_DURATION \
    --location=global

Ganti kode berikut:

  • WORKFORCE_POOL_ID: ID yang Anda pilih untuk mewakili workforce pool Google Cloud Anda. Untuk mengetahui informasi tentang cara memformat ID, lihat bagian Parameter kueri dalam dokumentasi API.
  • ORGANIZATION_ID: ID organisasi numerik dari organisasi Google Cloud Anda.
  • DISPLAY_NAME: Opsional. Nama tampilan untuk kumpulan identitas tenaga kerja Anda.
  • DESCRIPTION: Opsional. Deskripsi kumpulan identitas tenaga kerja.
  • SESSION_DURATION: Opsional. Durasi sesi, yang menentukan durasi validnya token akses Google Cloud, sesi login konsol (federasi), dan sesi login gcloud CLI dari workforce pool ini. Durasi harus lebih dari 15 menit (900 detik) dan kurang dari 12 jam (43200 detik). Jika durasi sesi tidak disetel, maka durasi defaultnya adalah satu jam (3600 detik).

Mendaftarkan aplikasi Microsoft Entra baru

Bagian ini menunjukkan cara membuat aplikasi Microsoft Entra menggunakan portal Microsoft Azure.

  1. Mendaftarkan aplikasi Microsoft Entra baru.

  2. Di aplikasi Microsoft Entra yang Anda daftarkan, buat rahasia klien baru. Catat rahasia klien.

  3. Berikan izin API ke aplikasi Microsoft Entra Anda agar dapat mengakses informasi pengguna dan grup dari Active Directory. Untuk memberikan izin untuk Microsoft Graph API, lakukan hal berikut:

    1. Di aplikasi Anda, pilih API Permissions.
    2. Di Izin yang dikonfigurasi, klik Tambahkan izin.
    3. di dialog Request API permissions, pilih Microsoft Graph.
    4. Pilih Application permissions.
    5. Pada dialog Select Permissions, lakukan hal berikut:
      1. Di kolom penelusuran, masukkan User.ReadBasic.All.
      2. Klik User.ReadBasic.All.
      3. Klik Tambahkan izin.
    6. di dialog Request API permissions, pilih Microsoft Graph.
    7. Pilih Application permissions.
    8. Pada dialog Select Permissions, lakukan hal berikut:
      1. Di kolom penelusuran, masukkan GroupMember.Read.All.
      2. Klik GroupMember.Read.All.
      3. Klik Tambahkan izin.
    9. Di Izin yang dikonfigurasi, klik Berikan izin admin untuk (nama domain).
    10. Saat Anda diminta untuk mengonfirmasi, klik Ya.
  4. Untuk mengakses nilai yang diperlukan guna mengonfigurasi penyedia workforce pool nanti dalam panduan ini, lakukan hal berikut:

    1. Buka halaman Ringkasan aplikasi Microsoft Entra.
    2. Klik Endpoint.
    3. Perhatikan nilai berikut:

      • Client ID: ID aplikasi Microsoft Entra yang Anda daftarkan sebelumnya dalam panduan ini.
      • Rahasia Klien: rahasia klien yang Anda buat sebelumnya dalam panduan ini.
      • Tenant ID: ID tenant aplikasi Microsoft Entra yang Anda daftarkan sebelumnya dalam panduan ini.
      • URI Penerbit: URI dokumen metadata OpenID Connect, tanpa menyertakan /.well-known/openid-configuration. Misalnya, jika URL dokumen metadata OpenID Connect adalah https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configuration, URI Penerbitnya adalah https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.

Membuat penyedia workforce identity pool

Untuk membuat penyedia, jalankan perintah berikut:

gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \
    --workforce-pool=WORKFORCE_POOL_ID \
    --location=global \
    --display-name=DISPLAY_NAME \
    --issuer-uri=ISSUER_URI \
    --client-id=https://analysis.windows.net/powerbi/connector/GoogleBigQuery \
    --attribute-mapping=ATTRIBUTE_MAPPING \
    --web-sso-response-type=id-token \
    --web-sso-assertion-claims-behavior=only-id-token-claims \
    --extra-attributes-issuer-uri=APP_ISSUER_URI \
    --extra-attributes-client-id=APP_CLIENT_ID \
    --extra-attributes-client-secret-value=APP_CLIENT_SECRET \
    --extra-attributes-type=azure-ad-groups-mail \
    --extra-attributes-filter=FILTER

Ganti kode berikut:

  • WORKFORCE_PROVIDER_ID: ID penyedia unik. Awalan gcp- dicadangkan dan tidak dapat digunakan dalam ID penyedia.
  • WORKFORCE_POOL_ID: ID workforce identity pool yang akan dihubungkan dengan IdP Anda.
  • DISPLAY_NAME: nama tampilan opsional yang mudah digunakan untuk penyedia.
  • ISSUER_URI: nilai uri penerbit, yang diformat sebagai, https://sts.windows.net/TENANT_ID. Ganti TENANT_ID dengan ID tenant yang Anda catat sebelumnya.
  • ATTRIBUTE_MAPPING: pemetaan grup dan, secara opsional, atribut lain dari klaim Microsoft Entra ke atribut Google Cloud—misalnya: google.groups=assertion.groups, google.subject=assertion.sub. Grup ini akan diberikan akses ke data BigQuery nanti dalam panduan ini.
  • APP_ISSUER_URI: URI penerbit aplikasi Microsoft Entra yang Anda catat sebelumnya.
  • APP_CLIENT_ID: client ID penerbit yang Anda catat sebelumnya.
  • APP_CLIENT_SECRET: secret klien penerbit yang Anda catat sebelumnya.
  • FILTER: filter yang digunakan untuk meminta pernyataan tertentu yang diteruskan dari IdP. Dengan menentukan --extra-attributes-type=azure-ad-groups-mail, --extra-attributes-filter akan memfilter klaim grup pengguna yang diteruskan dari IdP. Secara default, semua grup yang terkait dengan pengguna akan diambil. Grup yang digunakan harus mengaktifkan email dan keamanan. Untuk mempelajari lebih lanjut, lihat Menggunakan parameter kueri $search. Maksimum 100 grup dapat diambil.

    Contoh berikut memfilter grup yang dikaitkan dengan alamat email pengguna yang diawali dengan gcp:

    --extra-attributes-filter='"mail:gcp"'
    Contoh berikut memfilter grup yang dikaitkan dengan pengguna yang memiliki alamat email yang dimulai dengan gcp dan displayName yang berisi example:
    --extra-attributes-filter='"mail:gcp" AND "displayName:example"'

Membuat kebijakan IAM

Di bagian ini, Anda akan membuat kebijakan izin IAM yang memberikan peran BigQuery Data Viewer (roles/bigquery.dataViewer) ke grup yang dipetakan di project tempat data BigQuery Anda disimpan. Kebijakan ini memungkinkan semua identitas yang ada dalam data tampilan grup dari tabel dan tampilan BigQuery yang disimpan dalam project.

Untuk membuat kebijakan, jalankan perintah berikut:

gcloud projects add-iam-policy-binding BIGQUERY_PROJECT_ID \
    --role="roles/bigquery.dataViewer" \
    --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"

Ganti kode berikut:

  • BIGQUERY_PROJECT_ID: project ID tempat data dan metadata BigQuery Anda disimpan
  • WORKFORCE_POOL_ID: ID workforce identity pool
  • GROUP_ID: grup—misalnya, admin-group@example.com

Mengakses data BigQuery dari Power BI Desktop

Untuk mengakses data BigQuery dari Power BI Desktop, lakukan hal berikut:

  1. Buka Power BI.
  2. Klik Get Data.
  3. Klik Database.
  4. Dalam daftar database, pilih Google BigQuery (Microsoft Entra ID) (Beta).
  5. Klik Connect.
  6. Isi kolom yang wajib diisi berikut:

    • Billing project ID: ID project penagihan.
    • Audience URI: URI Google Cloud, yang diformat sebagai berikut:

      //iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
      

      Ganti kode berikut:

      • WORKFORCE_POOL_ID: ID workforce identity pool.

      • WORKFORCE_PROVIDER_ID: ID penyedia kumpulan identitas tenaga kerja.

  7. Klik Ok.

  8. Klik Berikutnya.

  9. Klik Pilih data.

Jika Anda diminta untuk login, gunakan identitas Microsoft Entra yang merupakan anggota grup.

Anda kini dapat menggunakan data dari BigQuery di Power BI Desktop.

Mengakses data BigQuery dari Web Power BI

Untuk mengakses data BigQuery dari Power BI Web, lakukan hal berikut:

  1. Buka Power BI Web.

  2. Klik Power query untuk menambahkan sumber data baru.

  3. Klik Dapatkan data.

  4. Dalam daftar, temukan dan pilih Google BigQuery (Microsoft Entra ID) (Beta).

  5. Isi kolom yang wajib diisi berikut:

    • Billing Project ID: project penagihan Google Cloud

    • Audience URI: URI audiens, yang diformat sebagai berikut:

      //iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
      

      Ganti kode berikut:

      • WORKFORCE_POOL_ID: ID workforce identity pool

      • WORKFORCE_PROVIDER_ID: ID penyedia workforce identity pool

  6. Klik Connection Credentials > Authentication kind.

  7. Pilih Akun organisasi.

  8. Klik Login.

  9. Klik Berikutnya.

  10. Klik Pilih data.

Anda kini dapat menggunakan data dari BigQuery di Power BI Web.

Langkah selanjutnya