Bagikan melalui


Menyiapkan identitas terkelola Power Platform untuk plug-in Dataverse atau paket plug-in

Identitas terkelola Power Platform memungkinkan plug-in Dataverse atau paket plug-in terhubung dengan sumber daya Azure untuk mendukung identitas terkelola tanpa perlu kredensial. Artikel ini membantu Anda menyiapkan identitas terkelola di lingkungan Power Platform Anda.

Prasyarat

  • Langganan Azure dengan akses untuk menyediakan identitas terkelola yang ditetapkan oleh pengguna (UAMI) atau pendaftaran aplikasi.
  • Alat untuk plug-in atau paket plug-in:
  • Sertifikat yang valid untuk menandatangani rakitan plug-in.

Menyiapkan identitas terkelola

Untuk mengonfigurasi identitas terkelola Power Platform untuk plug-in Dataverse atau paket plug-in, selesaikan langkah-langkah berikut.

  1. Buat pendaftaran aplikasi baru atau identitas terkelola yang ditetapkan pengguna.
  2. Konfigurasikan kredensial identitas federasi.
  3. Membuat dan mendaftarkan plug-in atau paket plug-in untuk Dataverse.
    Pastikan untuk membuat rakitan plug-in dan mendaftarkan plug-in atau paket plug-in.
  4. Buat rekaman identitas terkelola di Dataverse.
  5. Berikan akses ke sumber daya Azure ke aplikasi atau identitas terkelola yang ditetapkan pengguna (UAMI).
  6. Validasi integrasi plug-in.

Buat pendaftaran aplikasi baru atau identitas terkelola yang ditetapkan pengguna

Anda dapat membuat identitas terkelola yang ditetapkan pengguna atau aplikasi di Microsoft Entra ID berdasarkan skenario berikut.

  • Jika Anda ingin identitas aplikasi yang terkait dengan plug-in yang tersambung ke sumber daya Azure, seperti Azure Key Vault, gunakan pendaftaran aplikasi . Dengan identitas aplikasi, Anda dapat menerapkan kebijakan Azure pada plug-in yang mengakses sumber daya Azure.
  • Jika Anda ingin perwakilan layanan mengakses sumber daya Azure, seperti Azure Key Vault, Anda dapat menyediakan identitas terkelola yang ditetapkan pengguna.

Catatan

Pastikan untuk mencatat ID berikut karena Anda akan menggunakannya di langkah-langkah berikutnya.

  • ID Aplikasi (klien)
  • ID Penyewa

Konfigurasikan kredensial identitas federasi

Untuk mengonfigurasi identitas terkelola, buka identitas terkelola yang ditetapkan pengguna atau aplikasi Microsoft Entra ID di portal Azure yang Anda buat di bagian sebelumnya.

  1. Buka portal Azure.
  2. Navigasi ke Microsoft Entra ID.
  3. Pilih App registrations.
  4. Buka aplikasi yang Anda buat di Menyiapkan identitas terkelola.
  5. Cari Sertifikat & rahasia.
  6. Pilih tab Kredensial federasi dan pilih Tambahkan kredensial.
  7. Pilih penerbit sebagai penerbit lainnya.
  8. Masukkan informasi berikut:

Penerbit

Gunakan penerbit penyewa v2.0:

https://login.microsoftonline.com/{tenantID}/v2.0

Example

https://login.microsoftonline.com/5f8a1a9f-2e1a-415f-b10c-84c3736a21b9/v2.0

Tipe

Pilih Pengidentifikasi subjek eksplisit.

Identifikasi Subjek

Pilih format yang cocok dengan jenis sertifikat Anda:

  • Sertifikat swatanda tangan (hanya pengembangan):

    /eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/h/{hash}
    
  • Sertifikat penerbit tepercaya (disarankan untuk produksi):

    /eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/i/{issuer}/s/{certificateSubject}
    

Referensi segmen

Segmen Description
eid1 Versi format identitas
c/pub Kode cloud untuk cloud publik, Government Community Cloud (GCC), dan stasiun rilis pertama di GCC.
t/{encodedTenantId} ID Penyewa
a/qzXoWDkuqUa3l6zM5mM0Rw/ Hanya penggunaan internal. Jangan ubah.
n/plugin Komponen plugin
e/{environmentId} ID Lingkungan
h/{hash} SERTIFIKAT SHA-256 (hanya ditandatangani sendiri)
i/{issuer}
s/{certificateSubject}
Detail penerbit tepercaya

Membuat sertifikat yang ditandatangani sendiri

Setiap plug-in harus memiliki identitas yang dapat diverifikasi, dan sertifikat penandatanganan bertindak sebagai sidik jari unik plug-in. Kode berikut adalah sampel cuplikan PowerShell yang dapat Anda gunakan untuk membuat sertifikat yang ditandatangani sendiri untuk skenario pengembangan atau pengujian. Sebagai referensi, Anda dapat mengikuti dari contoh 3.

 $params = @{
     Type = 'Custom'
     Subject = 'E=admin@contoso.com,CN=Contoso'
     TextExtension = @(
         '2.5.29.37={text}1.3.6.1.5.5.7.3.4',
         '2.5.29.17={text}email=admin@contoso.com' )
     KeyAlgorithm = 'RSA'
     KeyLength = 2048
     SmimeCapabilities = $true
     CertStoreLocation = 'Cert:\CurrentUser\My'
 }
 New-SelfSignedCertificate @params

Catatan

Pengodean untuk {encodedTenantId}

  1. Konversikan GUID → Hex.
  2. Konversi Hex → Base64URL (bukan Base64 standar).

Hash yang ditandatangani sendiri

  • Komputasi SHA-256 melalui .cer. Jika Anda memiliki .pfx, ekspor .cer terlebih dahulu:
    CertUtil -hashfile <CertificateFilePath> SHA256
    
    $cert = Get-PfxCertificate -FilePath "path	o\your.pfx"
    $cert.RawData | Set-Content -Encoding Byte -Path "extracted.cer"
    

Layanan cloud Azure khusus

Atur Audiens, URL Penerbit, dan Awalan subjek secara eksplisit saat melakukan penyebaran di luar cloud publik, GCC, dan stasiun rilis pertama di GCC:

Cloud Audiens URL Pengeluar Sertifikat Awalan subjek
GCC High dan DoD api://AzureADTokenExchangeUSGov https://login.microsoftonline.us /eid1/c/usg
Mooncake (Tiongkok) api://AzureADTokenExchangeChina https://login.partner.microsoftonline.cn /eid1/c/chn
Nasional AS (USNAT) api://AzureADTokenExchangeUSNat https://login.microsoftonline.eaglex.ic.gov /eid1/c/uss
US Secure (USSec) api://AzureADTokenExchangeUSSec https://login.microsoftonline.scloud /eid1/c/usn

Catatan

Nilai Audiens bersifat sensitif huruf besar/kecil dan harus sama persis.
Untuk cloud publik, GCC, dan stasiun rilis pertama di GCC (dan cloud non-daftar lainnya), defaultnya adalah:
Pemirsa api://AzureADTokenExchange, Penerbit https://login.microsoftonline.com, Awalan subjek /eid1/c/pub.

Membuat dan mendaftarkan plug-in Dataverse atau paket plug-in

Buat rakitan Plug-in

Pengemasan dan penandatanganan

Menandatangani paket plug-in

Jika Anda membuat paket plug-in, gunakan NuGet Sign CLI untuk menghasilkan paket dari file .nuspec atau .csproj. Setelah membuat paket, tanda tangani dengan sertifikat Anda.

 nuget sign YourPlugin.nupkg `
   -CertificatePath MyCert.pfx `
   -CertificatePassword "MyPassword" `
   -Timestamper http://timestamp.digicert.com

Menandatangani rakitan plug-in

Jika Anda mendaftarkan plug-in (assembly), tanda tangani DLL dengan sertifikat dengan menggunakan SignTool.exe (Sign Tool).

signtool sign /f MyCert.pfx /p MyPassword /t http://timestamp.digicert.com /fd SHA256 MyAssembly.dll

Anda dapat secara opsional menambahkan tanda waktu dengan menyediakan URL server tanda waktu yang mematuhi RFC 3161.

Catatan

Gunakan sertifikat yang ditandatangani sendiri hanya untuk tujuan pengembangan atau pengujian. Jangan gunakan sertifikat yang ditandatangani sendiri di lingkungan produksi.

Mendaftarkan plug-in

Buat rekaman identitas terkelola di Dataverse

Untuk menyediakan catatan identitas terkelola di Dataverse, selesaikan langkah-langkah berikut.

  1. Buat identitas terkelola dengan mengirim permintaan HTTP POST dengan klien REST (seperti Insomnia). Gunakan URL dan isi permintaan dalam format berikut.

    POST https://<<orgURL>>/api/data/v9.0/managedidentities
    

    Pastikan untuk mengganti orgURL dengan URL organisasi.

  2. Pastikan credentialsource diatur ke 2 dalam payload, cakupan subjek diatur ke 1 untuk skenario khusus lingkungan, dan versi diatur ke 1 dalam payload.

    Sampel payload

    {
      "applicationid": "<<appId>>", //Application Id, or ClientId, or User Managed Identity
      "managedidentityid": "<<anyGuid>>",
      "credentialsource": 2, // Managed client
      "subjectscope": 1, //Environment Scope
      "tenantid": "<<tenantId>>", //Entra Tenant Id
      "version": 1
    }
    
  3. Perbarui paket plug-in atau rekaman rakitan plug-in Anda dengan mengeluarkan permintaan PATCH HTTP untuk mengaitkannya dengan identitas terkelola yang dibuat di langkah 1.

    Rakitan plug-in

    PATCH https://<<orgURL>>/api/data/v9.0/pluginassemblies(<<PluginAssemblyId>>)
    

    Paket plug-in

    PATCH https://<<orgURL>>/api/data/v9.0/pluginpackages(<<PluginPackageId>>)
    

    Sampel payload

    {
      "managedidentityid@odata.bind": "/managedidentities(<<ManagedIdentityGuid>>)"
    }
    

    Pastikan untuk mengganti orgURL, PluginAssemblyId (atau PluginPackageId), dan ManagedIdentityGuid dengan nilai Anda.

Memberikan akses ke sumber daya Azure ke aplikasi atau identitas terkelola yang ditetapkan pengguna

Jika Anda perlu memberikan akses ke ID aplikasi untuk mengakses sumber daya Azure, seperti Azure Key Vault, berikan akses ke aplikasi atau identitas terkelola yang ditetapkan pengguna ke sumber daya tersebut.

Validasi integrasi plug-in

Verifikasi bahwa plug-in Anda dapat meminta akses dengan aman ke sumber daya Azure yang mendukung identitas terkelola, menghilangkan kebutuhan akan kredensial terpisah.

Pertanyaan Umum

Bagaimana cara menangani kesalahan ini?

Jika Anda menerima kesalahan berikut:
Mendapatkan Kesalahan – Masalah konfigurasi mencegah autentikasi.
AADSTS700213: Tidak ditemukan catatan identitas federasi yang cocok

Selesaikan langkah-langkah berikut untuk mengatasi masalah ini:

  1. Pastikan FIC dikonfigurasi dan disimpan dengan benar.

  2. Verifikasi bahwa penerbit/subjek cocok dengan format yang ditentukan sebelumnya.

    Anda juga dapat menemukan format yang diharapkan dalam tumpukan kesalahan.

Bagaimana cara mengatasi kesalahan "Tidak dapat menjangkau atau menyambungkan ke Power Platform"?

Lihat URL Power Platform dan rentang alamat IP guna memastikan titik akhir Power Platform dapat dijangkau dan masuk dalam daftar izin.