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

Panduan ini menunjukkan cara mengizinkan pengguna yang berada di 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. Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI by running the following command:

    gcloud init

    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Biaya

Workforce Identity Federation tersedia sebagai fitur tanpa biaya. Namun, audit logging mendetail Workforce Identity Federation menggunakan Cloud Logging. Untuk mempelajari harga Logging, lihat harga Google Cloud Observability.

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 mengirim parameter userProject selama pertukaran token. Oleh karena itu, Anda harus meminta administrator untuk memberikan peran Service Usage Consumer (roles/serviceusage.serviceUsageConsumer) kepada 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: ID project penagihan.
  • WORKFORCE_POOL_ID: ID kumpulan identitas tenaga kerja.
  • GROUP_ID: ID grup—misalnya, admin-group@altostrat.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.

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 organisasi Anda Google Cloud untuk workforce identity pool. Workforce identity pool tersedia di semua project dan folder dalam organisasi.
  • DISPLAY_NAME: Opsional. Nama tampilan untuk kumpulan identitas tenaga kerja Anda.
  • DESCRIPTION: Opsional. Deskripsi workforce identity pool.
  • SESSION_DURATION: Opsional. Durasi sesi menentukan durasi validnya token akses Google Cloud , sesi login konsol (federasi), dan sesi login gcloud CLI dari workforce pool ini. Durasi sesi default adalah satu jam (3600 detik). Nilai durasi sesi harus antara 15 menit (900 detik) dan 12 jam (43200 detik).

Konsol

Untuk membuat workforce identity pool, lakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman Workforce Identity Pools:

    Buka Workforce Identity Pools

  2. Pilih organisasi untuk workforce identity pool Anda. Kumpulan identitas tenaga kerja tersedia di semua project dan folder dalam organisasi.

  3. Klik Buat pool dan lakukan tindakan berikut:

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

    2. Opsional: Di Deskripsi, masukkan deskripsi pool.

    3. Untuk membuat workforce identity pool, klik Berikutnya.

Durasi sesi workforce identity pool secara default adalah satu jam (3600 detik). Durasi sesi menentukan durasi validnya token akses Google Cloud , konsol (federasi), dan sesi login gcloud CLI dari workforce pool ini. Setelah membuat kumpulan, Anda dapat memperbarui kumpulan untuk menetapkan durasi sesi kustom. Durasi sesi harus dari 15 menit (900 detik) hingga 12 jam (43200 detik).

Mendaftarkan aplikasi Microsoft Entra baru

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

  1. Daftarkan 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 aplikasi tersebut 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. Dalam dialog Request API permissions, pilih Microsoft Graph.
    4. Pilih Izin aplikasi.
    5. Dalam dialog Pilih Izin, lakukan hal berikut:
      1. Di kolom penelusuran, masukkan User.ReadBasic.All.
      2. Klik User.ReadBasic.All.
      3. Klik Tambahkan izin.
    6. Dalam dialog Request API permissions, pilih Microsoft Graph.
    7. Pilih Izin aplikasi.
    8. Dalam dialog Pilih Izin, 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 Beri izin admin untuk (nama domain).
    10. Saat Anda diminta untuk mengonfirmasi, klik Ya.
  4. Untuk mengakses nilai yang Anda butuhkan untuk mengonfigurasi penyedia workforce pool nanti dalam panduan ini, lakukan hal berikut:

    1. Buka halaman Overview 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 /.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, maka 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=EXTRA_GROUPS_TYPE \
    --extra-attributes-filter=EXTRA_FILTER \
    --detailed-audit-logging

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, 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 atributGoogle Cloud —misalnya: google.groups=assertion.groups, google.subject=assertion.sub. Grup tersebut akan diberi akses ke data BigQuery nanti dalam panduan ini.

    Untuk mengetahui informasi selengkapnya, lihat Pemetaan atribut.

  • APP_ISSUER_URI: URI penerbit aplikasi Microsoft Entra yang Anda catat sebelumnya.

  • APP_CLIENT_ID: ID klien penerbit yang Anda catat sebelumnya.

  • APP_CLIENT_SECRET: rahasia klien penerbit yang Anda catat sebelumnya.

  • EXTRA_GROUPS_TYPE: jenis ID grup, yang dapat berupa salah satu dari berikut ini:

    • azure-ad-groups-mail: Alamat email grup diambil dari IdP—misalnya: admin-group@altostrat.com.

    • azure-ad-groups-id: UUID yang merepresentasikan grup diambil dari IdP—misalnya: abcdefgh-0123-0123-abcdef.

  • EXTRA_FILTER: filter yang digunakan untuk meminta agar pernyataan tertentu diteruskan dari IdP. Dengan menentukan --extra-attributes-type=azure-ad-groups-mail, --extra-attributes-filter filter untuk klaim grup pengguna yang diteruskan dari IdP. Secara default, semua grup yang terkait dengan pengguna akan diambil. Grup yang digunakan harus diaktifkan untuk email dan keamanan. Untuk mempelajari lebih lanjut, lihat Menggunakan parameter kueri $search.

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

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

  • Pencatatan log audit mendetail Workforce Identity Federation mencatat informasi yang diterima dari IdP Anda ke Logging. Logging audit mendetail dapat membantu Anda memecahkan masalah konfigurasi penyedia pool identitas tenaga kerja. Untuk mempelajari cara memecahkan masalah error pemetaan atribut dengan logging audit mendetail, lihat Error pemetaan atribut umum. Untuk mempelajari harga Logging, lihat harga Google Cloud Observability.

    Untuk menonaktifkan logging audit mendetail untuk penyedia workforce identity pool, hapus tanda --detailed-audit-logging saat Anda menjalankan gcloud iam workforce-pools providers create. Untuk menonaktifkan logging audit mendetail, Anda juga dapat memperbarui penyedia.

Membuat kebijakan IAM

Di bagian ini, Anda akan membuat kebijakan izin IAM yang memberikan peran BigQuery Data Viewer (roles/bigquery.dataViewer) kepada grup yang dipetakan di project tempat data BigQuery Anda disimpan. Kebijakan ini memungkinkan semua identitas yang ada dalam grup melihat data 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: ID grup, yang bergantung pada nilai --extra-attributes-type yang digunakan untuk membuat penyedia workforce identity pool, sebagai berikut:

    • azure-ad-groups-mail: ID grup adalah alamat email—misalnya: admin-group@altostrat.com

    • azure-ad-groups-id: ID grup adalah UUID untuk grup—contohnya: abcdefgh-0123-0123-abcdef

Mengakses data BigQuery dari Power BI Desktop

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

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

    • ID project penagihan: ID project penagihan.
    • URI Audiens: URI Google Cloud , 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.

  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 Power BI Web

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 wajib diisi berikut:

    • ID Project Penagihan: project penagihan Google Cloud

    • URI Audiens: URI audiens, 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 berikutnya