Nota
Capaian ke halaman ini memerlukan kebenaran. Anda boleh cuba mendaftar masuk atau menukar direktori.
Capaian ke halaman ini memerlukan kebenaran. Anda boleh cuba menukar direktori.
Apabila anda menggunakan identiti terurus Power Platform, pemalam Dataverse atau pakej pemalam boleh menyambung ke sumber Azure tanpa mengurus kelayakan. Artikel ini menerangkan persediaan yang disyorkan (versi 2), yang membina kelayakan identiti bersekutu (FIC) daripada cincang Nama Terhormat (DN) penuh sijil.
Nota
Gunakan identiti terurus Power Platform versi 2 untuk semua pemalam baharu dan sedia ada. Jika anda mengekalkan pemalam yang masih menggunakan format versi 1 (berasaskan CN), lihat Sediakan identiti terurus versi 1. Untuk mengalihkan pemalam sedia ada kepada versi 2, lihat Naik taraf kepada versi 2.
Mengapa versi 2
Versi 2 menghasilkan pengecam subjek ASCII sahaja panjang tetap, jadi ia berfungsi dengan mana-mana nama sijil. Versi 1 gagal pada nama sijil tertentu (CN):
-
Aksara bukan ASCII dalam CN (contohnya, huruf beraksen) →
AADSTS70050: The Federated Managed Identity path is not properly formatted. -
Koma dalam CN (contohnya,
CN=Contoso, Inc.) →AADSTS700213: No matching federated identity record found.
Prasyarat
- Langganan Azure dengan capaian untuk memperuntukkan identiti terurus yang ditugaskan pengguna (UAMI) atau pendaftaran aplikasi.
- Alat untuk pemalam atau pakej pemalam:
- Persekitaran Pembangunan Bersepadu (IDE), seperti Visual Studio, untuk membina pemalam
- Alat pendaftaran pemalam
- SignTool.exe (Alat Tanda) untuk menandatangani pemasangan pemalam
- CLI Platform Kuasa
- Sijil yang sah untuk menandatangani pemasangan pemalam.
Sediakan identiti terurus
- Cipta pendaftaran apl baharu atau identiti terurus yang diperuntukkan pengguna.
- Bina, tandatangan, dan daftarkan pemalam.
- Konfigurasikan kelayakan identiti bersekutu.
- Cipta rekod identiti terurus dalam Dataverse.
- Berikan capaian kepada sumber Azure.
- Sahkan penyepaduan.
Langkah 1: Cipta pendaftaran apl atau identiti terurus yang ditetapkan oleh pengguna
Cipta sama ada identiti terurus yang ditugaskan oleh pengguna atau aplikasi dalam Microsoft Entra ID:
- Untuk identiti aplikasi yang dikaitkan dengan pemalam (supaya anda boleh menggunakan dasar Azure), gunakan pendaftaran aplikasi.
- Untuk prinsipal perkhidmatan, peruntukkan identiti terurus yang ditugaskan pengguna.
Nota
Tangkap ID Aplikasi (klien) dan ID Penyewa — anda menggunakannya dalam langkah kemudian.
Langkah 2: Bina, tandatangani dan daftarkan pemalam
Cipta pemalam dalam Visual Studio. Gunakan ID penyewa daripada langkah 1 dan skop seperti
https://{OrgName}.crm*.dynamics.com/.default. Gunakan IManagedIdentityService untuk meminta token:string AcquireToken(IEnumerable<string> scopes);Tandatangani pemalam dengan sijil anda.
Pakej pemalam (NuGet):
nuget sign YourPlugin.nupkg ` -CertificatePath MyCert.pfx ` -CertificatePassword "MyPassword" ` -Timestamper http://timestamp.digicert.comPerhimpunan pemalam (SignTool):
signtool sign /f MyCert.pfx /p MyPassword /t http://timestamp.digicert.com /fd SHA256 MyAssembly.dll
Nota
Gunakan sijil yang ditandatangani sendiri hanya untuk pembangunan atau ujian. Jangan gunakan sijil yang ditandatangani sendiri dalam pengeluaran. Untuk menciptanya, lihat Jana sijil yang ditandatangani sendiri.
Langkah 3: Konfigurasikan kelayakan identiti bersekutu
Dalam
Penerbit —
https://login.microsoftonline.com/{tenantID}/v2.0Jenis — Pengecam subjek eksplisit
Pengecam subjek — gunakan format untuk jenis sijil anda:
Sijil penerbit yang dipercayai (pengeluaran):
/eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/i/{issuerHash}/s/{subjectHash}Sijil yang ditandatangani sendiri (pembangunan sahaja):
/eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/h/{hash}
Rujukan segmen
Segmen Perihalan eid1Versi format identiti c/pubKod awan untuk awan awam, GCC dan stesen keluaran pertama dalam GCC t/{encodedTenantId}ID Penyewa. Lihat Dapatkan ID penyewa yang dikodkan a/qzXoWDkuqUa3l6zM5mM0Rw/Kegunaan dalaman sahaja. Jangan ubah suai n/pluginKomponen pemalam e/{environmentId}ID Persekitaran i/{issuerHash}s/{subjectHash}SHA-256 Base64URL hash bagi DN penerbit/subjek penuh. Lihat Mengira cincang pengeluar dan subjek h/{hash}SHA-256 sijil (ditandatangani sendiri sahaja)
Mengira hash penerbit dan subjek
Ambil cincang SHA-256 bagi penerbit penuh dan rentetan DN subjek apabila ia muncul pada sijil, dan kodkan setiap satu sebagai Base64 selamat URL. Dapatkan rentetan DN dengan:
$cert = Get-PfxCertificate -FilePath "path\to\your.pfx"
Write-Host "Issuer: $($cert.Issuer)"
Write-Host "Subject: $($cert.Subject)"
Kira cincang (PowerShell):
function Get-Sha256Base64Url {
param([string]$InputString)
$bytes = [System.Text.Encoding]::UTF8.GetBytes($InputString)
$sha256 = [System.Security.Cryptography.SHA256]::Create()
$hash = $sha256.ComputeHash($bytes)
$base64 = [Convert]::ToBase64String($hash)
return $base64.Replace('+', '-').Replace('/', '_').TrimEnd('=')
}
$issuerHash = Get-Sha256Base64Url -InputString "<full issuer DN string>"
$subjectHash = Get-Sha256Base64Url -InputString "<full subject DN string>"
Write-Host "Issuer Hash: $issuerHash"
Write-Host "Subject Hash: $subjectHash"
Atau dalam C#:
using System.Security.Cryptography;
using System.Text;
static string ComputeSha256Base64Url(string input)
{
using var sha256 = SHA256.Create();
byte[] hashBytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(input));
return Convert.ToBase64String(hashBytes)
.Replace('+', '-')
.Replace('/', '_')
.TrimEnd('=');
}
Output ialah rentetan 43 aksara yang mengandungi hanya A-Z, a-z, 0-9, -, dan _.
Penting
Gunakan rentetan DN tepat yang digunakan oleh masa jalan (.NET X509Certificate2.Issuer dan X509Certificate2.Subject sifat). DN yang diformatkan berbeza tidak akan sepadan dan gagal dengan AADSTS700213.
Nota
Untuk penggunaan di luar awan awam, tetapkan nilai khusus awan. Lihat Persekitaran awan Azure khusus.
Langkah 4: Buat rekod identiti terurus dalam Dataverse
Hantar permintaan HTTP POST dengan menggunakan klien REST. Untuk versi 2, tetapkan version kepada 2.
POST https://<<orgURL>>/api/data/v9.0/managedidentities
{
"applicationid": "<<appId>>",
"managedidentityid": "<<anyGuid>>",
"credentialsource": 2,
"subjectscope": 1,
"tenantid": "<<tenantId>>",
"version": 2
}
Kemudian, ikat pemasangan pemalam (atau pakej) ke rekod:
PATCH https://<<orgURL>>/api/data/v9.0/pluginassemblies(<<PluginAssemblyId>>)
{
"managedidentityid@odata.bind": "/managedidentities(<<ManagedIdentityGuid>>)"
}
Untuk pakej pemalam, gunakan pluginpackages(<<PluginPackageId>>) sebaliknya.
Langkah 5: Berikan capaian kepada sumber Azure
Berikan aplikasi atau akses identiti terurus yang ditugaskan pengguna kepada sumber Azure yang diperlukannya, seperti Azure Key Vault.
Langkah 6: Sahkan penyepaduan
Mencetuskan pemalam dan sahkan ia memperoleh token dan mencapai sumber Azure tanpa kelayakan berasingan.
Naik taraf kepada versi 2
Jika anda mempunyai pemalam pada versi 0 atau versi 1, anda boleh memindahkannya ke versi 2 tanpa membina semula atau mendaftarkan semula pemalam.
Pilihan 1: CLI Platform Kuasa
Nota
Kata kerja identiti terurus CLI tidak berfungsi pada sistem pengendalian berasaskan Linux atau dengan identiti terurus (UAMI) yang diberikan pengguna. Jika CLI tidak berfungsi untuk sijil anda, gunakan Pilihan 2: Manual.
- Pasang Power Platform CLI versi 2.8.1 atau lebih baru. Lihat Pasang Microsoft Power Platform CLI.
- Cipta profil pengesahan:
pac auth create - Semak versi semasa:
pac managed-identity show-fic --environment <orgUrl> --component-type PluginAssembly --component-id <pluginAssemblyId> --version 2 - Menaik taraf:
pac managed-identity upgrade-version --environment <orgUrl> --component-type PluginAssembly --component-id <pluginAssemblyId> --target-version 2 --confirm - Picu pemalam untuk mengesahkan.
Pilihan 2: Manual
Kira penerbit versi 2 dan cincang subjek. Lihat Mengira cincang penerbit dan subjek.
Tambah FIC baharu dengan format pengecam subjek versi 2 (Langkah 3).
Kemas kini rekod identiti terurus kepada versi 2:
PATCH https://<<orgURL>>/api/data/v9.0/managedidentities(<<ManagedIdentityId>>){ "version": 2 }Mencetuskan pemalam dan sahkan pemerolehan token berjaya.
Alih keluar FIC versi lama 1.
Nota
Versi 0 ditamatkan. Sokongan CLI untuk menjana FIC versi 2 sedang dijalankan.
Rujukan
Dapatkan ID penyewa yang dikodkan
ID penyewa yang dikodkan ialah GUID penyewa yang ditukar kepada bait dan dikodkan sebagai Base64URL (bukan Base64 standard):
$tenantId = "<your-tenant-guid>"
$tenantGuid = [System.Guid]::Parse($tenantId)
$tenantBytes = $tenantGuid.ToByteArray()
$base64 = [System.Convert]::ToBase64String($tenantBytes)
$encodedTenantId = $base64.Replace('+', '-').Replace('/', '_').TrimEnd('=')
$encodedTenantId
Jana sijil yang ditandatangani sendiri
Untuk pembangunan atau ujian sahaja:
$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
Kira yang ditandatangani {hash} sendiri (SHA-256 di atas ; .cereksport dari yang .pfx pertama jika perlu):
CertUtil -hashfile <CertificateFilePath> SHA256
$cert = Get-PfxCertificate -FilePath "path\to\your.pfx"
$cert.RawData | Set-Content -Encoding Byte -Path "extracted.cer"
Persekitaran awan Azure khusus
Tetapkan awalan Khalayak,URL Pengeluar dan Subjek secara eksplisit apabila menggunakan di luar awan awam, GCC dan stesen keluaran pertama dalam GCC.
| Awan | Hadirin | URL Pengeluar | Awalan subjek |
|---|---|---|---|
| GCC Tinggi & DoD | api://AzureADTokenExchangeUSGov |
https://login.microsoftonline.us |
/eid1/c/usg |
| Kuih Bulan (China) | api://AzureADTokenExchangeChina |
https://login.partner.microsoftonline.cn |
/eid1/c/chn |
| Kebangsaan AS (USNAT) | api://AzureADTokenExchangeUSNat |
https://login.microsoftonline.eaglex.ic.gov |
/eid1/c/uss |
| Selamat AS (USSec) | api://AzureADTokenExchangeUSSec |
https://login.microsoftonline.scloud |
/eid1/c/usn |
Nota
Nilai Khalayak adalah sensitif huruf besar. Untuk awan awam, GCC dan stesen keluaran pertama dalam GCC, lalai ialah Khalayak api://AzureADTokenExchange, Pengeluar https://login.microsoftonline.com, awalan /eid1/c/pubsubjek .
Soalan lazim
Bagaimanakah cara saya menyelesaikan AADSTS700213: Tiada rekod identiti bersekutu yang sepadan ditemui?
Pengecam subjek yang dikira pada masa jalan tidak sepadan dengan mana-mana FIC pada apl. Semak bahawa:
- Anda mengkonfigurasi dan menyimpan FIC.
- Penerbit dan subjek sepadan dengan format dalam Langkah 3. Anda juga boleh mencari format yang dijangkakan dalam timbunan ralat.
- Rekodnya
versionialah2dan FIC menggunakan format cincang versi 2. - Cincang dikira daripada rentetan DN masa jalan (
X509Certificate2.Issuer/X509Certificate2.Subject). - Penerbit adalah
https://login.microsoftonline.com/{tenantId}/v2.0dan penonton adalahapi://AzureADTokenExchange(sensitif huruf besar).
Bagaimanakah cara saya menyelesaikan AADSTS70050: Laluan Identiti Terurus Bersekutu tidak diformatkan dengan betul?
Pengecam subjek mengandungi aksara yang tidak diterima oleh pembekal identiti — selalunya aksara bukan ASCII dalam sijil CN di bawah versi 1. Versi 2 menghasilkan pengecam subjek ASCII sahaja dan menyelesaikan ralat ini.
Bagaimanakah cara saya menyelesaikan ralat "Tidak dapat mencapai atau menyambung ke Power Platform"?
Untuk memastikan titik akhir Power Platform boleh dicapai dan disenaraikan kebenaran, lihat URL Power Platform dan julat alamat IP.