Pengesahan

Artikel ini menyediakan gambaran keseluruhan persediaan Microsoft Entra untuk memanggil API Power Platform. Untuk mengakses sumber yang tersedia melalui API Power Platform, anda mesti mendapatkan token pembawa daripada Microsoft Entra dan menghantarnya sebagai pengepala bersama-sama dengan setiap permintaan. Bergantung pada jenis identiti yang anda sokong (pengguna lwn prinsipal perkhidmatan) terdapat aliran yang berbeza untuk mendapatkan token pembawa ini, seperti yang diterangkan dalam artikel ini.

Untuk mendapatkan token pembawa dengan kebenaran yang betul, lengkapkan langkah berikut:

  1. Cipta pendaftaran permohonan dalam penyewa Microsoft Entra anda
  2. Konfigurasikan keizinan API
  3. Konfigurasikan platform dan ubah hala URI
  4. (Pilihan) Konfigurasikan sijil dan rahsia
  5. Minta token akses

Langkah 1. Buat pendaftaran aplikasi dalam penyewa anda Microsoft Entra

  1. Pergi ke portal Azure.
  2. Pilih Microsoft Entra ID di bahagian atas halaman. Kemudian pilih + Tambah>pendaftaran Apl.
  3. Isikan halaman Daftar permohonan :
    1. Nama — Berikan aplikasi nama yang boleh dikenali, seperti SDK Pentadbir Power Platform.
    2. Jenis akaun yang disokong — Pilih Penyewa tunggal sahaja - <nama> syarikat anda.
    3. Ubah hala URI — Langkau ini buat masa ini. Anda mengkonfigurasinya dalam Langkah 3.
  4. Pilih Daftar untuk membuat permohonan. Selepas pendaftaran selesai, perhatikan ID Aplikasi (klien) dan ID Direktori (penyewa) daripada halaman gambaran keseluruhan — anda memerlukan kedua-dua nilai kemudian.

Anda juga boleh mencipta pendaftaran dengan menggunakan Azure CLI:

az login

az ad app create --display-name "Power Platform Admin SDK" --sign-in-audience AzureADMyOrg

Perintah mengembalikan objek JSON. Perhatikan appId nilai — nilai ini ialah ID pelanggan anda.

Langkah 2. Konfigurasikan keizinan API

Dalam pendaftaran apl baharu anda, pergi ke tab Urus - Keizinan API . Di bawah bahagian Konfigurasikan keizinan , pilih Tambah Kebenaran. Dalam kotak dialog, pilih tab API yang digunakan oleh organisasi saya dan kemudian cari API Power Platform. Anda mungkin melihat beberapa entri dengan nama yang serupa dengan yang ini, jadi pastikan anda menggunakan entri dengan GUID 8578e004-a5c6-46e7-913e-12f58912df43.

Jika anda tidak melihat Power Platform API dipaparkan dalam senarai apabila mencari mengikut GUID, anda mungkin masih mempunyai capaian kepadanya tetapi keterlihatan tidak disegarkan. Untuk memaksa muat semula, jalankan skrip berikut:

#Install the Microsoft Graph PowerShell SDK module
Install-Module Microsoft.Graph -Scope CurrentUser -Repository PSGallery -Force

Connect-MgGraph
New-MgServicePrincipal -AppId 8578e004-a5c6-46e7-913e-12f58912df43 -DisplayName "Power Platform API"

Dari sini, pilih kebenaran yang anda perlukan. Keizinan ini dikumpulkan mengikut Ruang Nama. Dalam ruang nama, anda melihat jenis sumber dan tindakan, seperti AppManagement.ApplicationPackages.Read, yang memberikan keizinan baca untuk pakej aplikasi. Untuk maklumat lanjut, lihat artikel rujukan kebenaran .

Nota

API Power Platform menggunakan keizinan yang diwakilkan hanya pada masa ini. Untuk aplikasi yang dijalankan dengan konteks pengguna, minta keizinan yang diwakilkan dengan menggunakan parameter skop . Keizinan ini mewakilkan keistimewaan pengguna yang dilog masuk kepada aplikasi anda, supaya ia boleh bertindak sebagai pengguna apabila memanggil titik akhir API Power Platform.

Untuk identiti prinsipal perkhidmatan, jangan gunakan keizinan aplikasi. Sebaliknya, selepas anda mencipta pendaftaran apl anda, peruntukkan peranan RBAC untuk memberikan keizinan skop (seperti Penyumbang atau Pembaca). Untuk maklumat lanjut, lihat Tutorial: Tugaskan peranan RBAC kepada prinsipal perkhidmatan.

Selepas anda menambah keizinan yang diperlukan pada aplikasi, pilih Berikan persetujuan pentadbir untuk melengkapkan persediaan. Dengan memberikan persetujuan pentadbir, anda membenarkan keizinan untuk semua pengguna dalam penyewa supaya mereka tidak digesa dengan dialog persetujuan interaktif pada kali pertama mereka menggunakan aplikasi anda. Jika anda lebih suka persetujuan interaktif bagi setiap pengguna, ikut platform identiti Microsoft dan aliran kod kebenaran OAuth 2.0.

Anda juga boleh memberikan persetujuan pentadbir dengan menggunakan Azure CLI:

# Replace <app-id> with your application (client) ID
az ad app permission admin-consent --id <app-id>

Langkah 3. Konfigurasikan platform dan ubah hala URI

SDK, skrip PowerShell dan aplikasi desktop yang mengesahkan bagi pihak pengguna memerlukan URI ubah hala supaya Microsoft Entra boleh mengembalikan token kembali kepada aplikasi anda selepas pengesahan.

  1. Dalam pendaftaran apl anda, pergi ke Urus - Pengesahan.

  2. Pilih Tambah URI Ubah Hala, kemudian pilih Aplikasi mudah alih dan desktop.

  3. Pilih URI ubah hala terbina dalam berikut:

    https://login.microsoftonline.com/common/oauth2/nativeclient

  4. Pilih Konfigurasikan untuk menyimpan.

Anda juga boleh menambah URI ubah hala dengan menggunakan Azure CLI:

# Replace <app-id> with your application (client) ID
az ad app update --id <app-id> --public-client-redirect-uris https://login.microsoftonline.com/common/oauth2/nativeclient

Tetapan pelanggan awam

Di bawah bahagian Tetapan lanjutan pada tab Pengesahan yang sama, terdapat togol Benarkan aliran klien awam . Tetapkan togol ini kepada Ya hanya jika anda bercadang untuk menggunakan aliran Kelayakan Kata Laluan Pemilik Sumber (ROPC), yang menghantar nama pengguna dan kata laluan terus dalam isi permintaan token.

Aliran ini tidak berfungsi untuk akaun yang mempunyai pengesahan berbilang faktor didayakan. Untuk aliran kod penyemak imbas atau peranti interaktif, anda tidak perlu mendayakan tetapan ini.

Langkah 4. (Pilihan) Konfigurasikan sijil dan rahsia

Jika apl anda memerlukan sumber membaca dan menulis sebagai dirinya sendiri, juga dikenali sebagai prinsipal perkhidmatan, terdapat dua cara untuk mengesahkan. Untuk menggunakan sijil, pergi ke Urus - Sijil dan rahsia. Di bawah bahagian Sijil , muat naik sijil x509 yang boleh anda gunakan untuk mengesahkan.

Cara lain adalah dengan menggunakan bahagian Rahsia untuk menjana rahsia klien. Simpan rahsia di lokasi selamat untuk digunakan dengan keperluan automasi anda. Opsyen sijil atau rahsia membolehkan anda mengesahkan dengan Microsoft Entra dan menerima token untuk klien ini, yang anda sampaikan sama ada kepada API REST atau cmdlet PowerShell.

Langkah 5. Minta token capaian

Anda boleh mendapatkan token pembawa akses dalam dua cara: satu cara adalah untuk nama pengguna dan kata laluan, dan cara lain adalah untuk prinsipal perkhidmatan.

Aliran nama pengguna dan kata laluan

Pastikan anda membaca bahagian pelanggan awam. Kemudian, hantar permintaan POST melalui HTTP ke Microsoft Entra ID dengan muatan nama pengguna dan kata laluan.

Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&username={USER_EMAIL_ADDRESS}&password={PASSWORD}&grant_type=password

Contoh sebelumnya mengandungi ruang letak yang boleh anda ambil daripada aplikasi klien anda dalam Microsoft Entra ID. Anda menerima respons yang boleh anda gunakan untuk membuat panggilan berikutnya ke API Power Platform.

{
  "token_type": "Bearer",
  "scope": "https://api.powerplatform.com/AppManagement.ApplicationPackages.Install https://api.powerplatform.com/AppManagement.ApplicationPackages.Read https://api.powerplatform.com/.default",
  "expires_in": 4747,
  "ext_expires_in": 4747,
  "access_token": "eyJ0eXAiOiJKV1QiLCJu..."
}

Gunakan nilai access_token dalam panggilan berikutnya kepada API Power Platform dengan pengepala HTTP Pengesahan.

Aliran prinsipal perkhidmatan

Pastikan anda membaca bahagian Konfigurasikan sijil dan rahsia . Kemudian, hantar permintaan POST melalui HTTP ke Microsoft Entra ID dengan muatan rahsia pelanggan. Kaedah pengesahan ini sering dirujuk sebagai pengesahan prinsipal perkhidmatan.

Penting

Sebelum menggunakan pengesahan prinsipal perkhidmatan, lengkapkan Langkah 1-4 lebih awal dalam artikel ini untuk mencipta dan mengkonfigurasi pendaftaran aplikasi anda dengan sijil atau rahsia klien. Kemudian berikan prinsipal perkhidmatan peranan RBAC untuk mengawal tahap aksesnya. Untuk mengetahui lebih lanjut, lihat Tutorial: Tugaskan peranan RBAC kepada prinsipal perkhidmatan.

Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&client_secret={SECRET_FROM_AZURE_CLIENT_APP}&grant_type=client_credentials

Contoh sebelumnya mengandungi ruang letak yang boleh anda ambil daripada aplikasi klien anda dalam Microsoft Entra ID. Anda menerima respons yang boleh anda gunakan untuk membuat panggilan berikutnya ke API Power Platform.

{
  "token_type": "Bearer",
  "expires_in": 3599,
  "ext_expires_in": 3599,
  "access_token": "eyJ0eXAiOiJKV1..."
}

Gunakan nilai access_token dalam panggilan berikutnya kepada API Power Platform dengan pengepala HTTP Pengesahan. Kebenaran berkesan prinsipal perkhidmatan ditentukan oleh peranan RBAC yang diberikan kepadanya. Untuk mengetahui cara memperuntukkan peranan, lihat Tutorial: Tugaskan peranan RBAC kepada prinsipal perkhidmatan.

Permulaan pantas dengan Azure CLI

Skrip berikut mencipta pendaftaran apl hujung ke hujung. Jalankan setiap arahan mengikut urutan dan gantikan nilai ruang letak dengan nilai anda sendiri.

# Sign in to Azure CLI
az login

# Create the app registration (single tenant)
az ad app create --display-name "Power Platform Admin SDK" --sign-in-audience AzureADMyOrg

# Save the app ID from the output, then create a service principal for it
az ad sp create --id <app-id>

# Add a delegated permission (example: AppManagement.ApplicationPackages.Read)
# The --api value is the Power Platform API app ID.
# The --api-permissions value is the permission ID and type (Scope = delegated).
# Repeat this command for each permission you need. See the Permission reference for IDs.
az ad app permission add --id <app-id> \
  --api 8578e004-a5c6-46e7-913e-12f58912df43 \
  --api-permissions <permission-id>=Scope

# Grant admin consent so users aren't prompted individually
az ad app permission admin-consent --id <app-id>

# Add the native client redirect URI for interactive auth
az ad app update --id <app-id> \
  --public-client-redirect-uris https://login.microsoftonline.com/common/oauth2/nativeclient

Selepas menjalankan arahan ini, anda boleh menggunakan pendaftaran apl anda dengan SDK, PowerShell atau panggilan REST langsung. Untuk mencari ID keizinan bagi --api-permissions parameter, lihat rujukan keizinan.

Menyelesaikan masalah biasa

Ralat ini berlaku apabila pentadbir tidak bersetuju dengan keizinan API pada pendaftaran apl anda. Pergi ke Pendaftaran> apl > anda dan pilih Berikan kebenaran pentadbir.

Sebagai alternatif, jalankan:

az ad app permission admin-consent --id <app-id>

Ralat "Pengguna tidak ditugaskan kepada peranan untuk aplikasi"

Ralat ini bermakna aplikasi perusahaan yang dikaitkan dengan pendaftaran apl anda mempunyai tugasan pengguna diperlukan ditetapkan kepada Ya. Apabila seting ini didayakan, hanya pengguna atau kumpulan yang ditugaskan secara eksplisit kepada aplikasi boleh mendaftar masuk. Untuk membetulkan ralat ini, ambil salah satu tindakan berikut:

  • Pergi keaplikasi>Microsoft Entra ID> Enterprise > anda dan tetapkan Tugasan diperlukan kepada Tidak.
  • Tambah pengguna atau kumpulan keselamatan yang berkaitan di bawah Pengguna dan kumpulan.

Dasar capaian bersyarat menyekat akses

Jika organisasi anda menggunakan dasar capaian bersyarat, mereka mungkin menyekat pemerolehan token untuk pendaftaran apl anda. Punca biasa termasuk keperluan pematuhan peranti, sekatan lokasi atau dasar berasaskan risiko. Bekerjasama dengan pentadbir Microsoft Entra anda untuk sama ada mengecualikan pendaftaran aplikasi anda daripada dasar atau memastikan klien memenuhi keperluan dasar.

"Power Platform API" tidak ditemui dalam pemilih API

Jika mencari API Power Platform mengikut nama atau GUID dalam dialog keizinan API tidak mengembalikan hasil, prinsipal perkhidmatan tidak dicipta dalam penyewa anda. Ikut langkah muat semula paksa dalam Langkah 2 untuk menciptanya.

Sahkan dengan SDK Power Platform dan PowerShell

Contoh berikut menunjukkan cara mengesahkan dan membuat contoh panggilan API dengan menggunakan setiap SDK dan PowerShell. Sebelum menjalankan contoh ini, lengkapkan Langkah 1-3 lebih awal dalam artikel ini untuk mencipta dan mengkonfigurasi pendaftaran apl anda.

Pengesahan interaktif (pengguna yang diwakilkan)

Pengesahan interaktif membuka tetingkap penyemak imbas untuk pengguna log masuk. Aliran ini berfungsi paling baik untuk skrip pembangun, alatan pentadbir dan sebarang senario di mana pengguna hadir.

# Sign in interactively (opens a browser)
Connect-AzAccount

# Get an access token for the Power Platform API
$token = Get-AzAccessToken -ResourceUrl "https://api.powerplatform.com"

# Call the List Environments endpoint as an example
$headers = @{ Authorization = "Bearer $($token.Token)" }
$environments = Invoke-RestMethod -Uri "https://api.powerplatform.com/environmentmanagement/environments?api-version=2024-10-01" -Headers $headers
$environments.value | Format-Table name, properties.displayName

Pelanggan sulit (prinsipal perkhidmatan)

Pengesahan klien sulit menggunakan rahsia atau sijil pelanggan dan tidak memerlukan interaksi pengguna. Aliran pengesahan ini adalah yang terbaik untuk perkhidmatan latar belakang, saluran paip dan automasi.

Penting

Sebelum menggunakan pengesahan prinsipal perkhidmatan, lengkapkan Langkah 1-4 di atas untuk mencipta dan mengkonfigurasi pendaftaran aplikasi anda dengan sijil atau rahsia klien. Kemudian berikan prinsipal perkhidmatan peranan RBAC untuk mengawal tahap aksesnya. Untuk maklumat lanjut, lihat Tutorial: Tugaskan peranan RBAC kepada prinsipal perkhidmatan.

$tenantId = "YOUR_TENANT_ID"
$clientId = "YOUR_CLIENT_ID"
$clientSecret = "YOUR_CLIENT_SECRET"

# Request a token using client credentials
$body = @{
    client_id     = $clientId
    scope         = "https://api.powerplatform.com/.default"
    client_secret = $clientSecret
    grant_type    = "client_credentials"
}
$tokenResponse = Invoke-RestMethod -Method Post `
    -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" `
    -ContentType "application/x-www-form-urlencoded" `
    -Body $body

# Call the List Environments endpoint as an example
$headers = @{ Authorization = "Bearer $($tokenResponse.access_token)" }
$environments = Invoke-RestMethod -Uri "https://api.powerplatform.com/environmentmanagement/environments?api-version=2024-10-01" -Headers $headers
$environments.value | Format-Table name, properties.displayName

Tutorial: Tugaskan peranan RBAC kepada pengetua perkhidmatan
Kawalan capaian berasaskan peranan untuk pusat pentadbiran Power Platform
Rujukan kebenaran