Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Keď používate spravovanú identitu Power Platform, Dataverse plug-iny alebo balíky plug-in môžu byť pripojené k Azure zdrojom bez správy prihlasovacích údajov. Tento článok popisuje odporúčané ( verzia 2) nastavenie, ktoré vytvára federované identifikačné prihlasovacie údaje (FIC) z hashu plného Distinguished Name (DN) certifikátu.
Poznámka
Použite Power Platform managed identity verziu 2 pre všetky nové aj existujúce plug-iny. Ak udržiavate plug-in, ktorý stále používa formát verzie 1 (založený na CN), pozrite si Nastaviť spravovanú identitu verzie 1. Ak chcete presunúť existujúci plugin na verziu 2, pozrite si Upgrade na verziu 2.
Prečo verzia 2
Verzia 2 vytvára identifikátor subjektu s pevnou dĺžkou, iba ASCII, takže funguje s akýmkoľvek názvom certifikátu. Verzia 1 zlyháva na niektorých názvoch certifikátov (CN):
-
Ne-ASCII znaky v CN (napríklad prízvučné písmená) →
AADSTS70050: The Federated Managed Identity path is not properly formatted. -
Čiarky v CN (napríklad
CN=Contoso, Inc.) →AADSTS700213: No matching federated identity record found.
Požiadavky
- Predplatné Azure s prístupom na poskytovanie spravovanej identity priradenej používateľom (UAMI) alebo registrácie aplikácií.
- Nástroje pre plug-iny alebo balíčky plug-inov:
- Integrované vývojové prostredie (IDE), podobne ako Visual Studio, na tvorbu plug-inu
- Nástroj na registráciu pluginov
- SignTool.exe (nástroj na podpisovanie) na podpísanie zostavy doplnku
- Power Platform Rozhranie príkazového riadka
- Platný certifikát na podpísanie zostavy doplnku.
Nastavenie spravovanej identity
- Vytvorte novú registráciu aplikácie alebo spravovanú identitu priradenú používateľom.
- Postavte, podpíšte a zaregistrujte plug-in.
- Nakonfigurujte federované identifikačné prihlasovacie údaje.
- Vytvorte spravovaný identitný záznam v Dataverse.
- Udeliť prístup k Azure zdroju.
- Overte integráciu.
Krok 1: Vytvorte registráciu aplikácie alebo spravovanú identitu priradenú používateľom
Vytvorte buď spravovanú identitu priradenú používateľom, alebo aplikáciu v Microsoft Entra ID:
- Pre identitu aplikácie spojenú s plug-inom (aby ste mohli aplikovať Azure politiky) použite registráciu aplikácií.
- Pre princíp služby zabezpečte spravovanú identitu priradenú používateľom.
Poznámka
Zachyťte ID aplikácie (klienta) a ID nájomcu — použijete ich v neskorších krokoch.
Krok 2: Zostavte, podpíšte a zaregistrujte plug-in
Vytvorte si plugin vo Visual Studio. Použite tenant ID z kroku 1 a rozsah ako
https://{OrgName}.crm*.dynamics.com/.default. Použite IManagedIdentityService na požiadanie o token:string AcquireToken(IEnumerable<string> scopes);Podpíšte plug-in svojím certifikátom.
Balík plug-in (NuGet):
nuget sign YourPlugin.nupkg ` -CertificatePath MyCert.pfx ` -CertificatePassword "MyPassword" ` -Timestamper http://timestamp.digicert.comZostava plug-in (SignTool):
signtool sign /f MyCert.pfx /p MyPassword /t http://timestamp.digicert.com /fd SHA256 MyAssembly.dllZaregistrujte plug-in pomocou nástroja na registráciu plug-inov.
Poznámka
Používajte samopodpísaný certifikát len na vývoj alebo testovanie. Nepoužívajte samopodpísané certifikáty v produkcii. Na vytvorenie si pozrite Vygenerovať samopodpísaný certifikát.
Krok 3: Nastavte federované identifikačné prihlasovacie údaje
V
Vydavateľ —
https://login.microsoftonline.com/{tenantID}/v2.0Typ — Explicitný identifikátor subjektu
Identifikátor predmetu — použite formát pre typ vášho certifikátu:
Certifikát dôveryhodného vydavateľa (produkcia):
/eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/i/{issuerHash}/s/{subjectHash}Certifikát s vlastným podpisom (len vývoj):
/eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/h/{hash}
Odkaz na segment
Segment Description eid1Verzia formátu identity c/pubCloudový kód pre verejný cloud, GCC a prvú vydaciu stanicu v GCC t/{encodedTenantId}Identifikácia nájomníka. Pozri Získanie zakódovaného identifikátora nájomcu a/qzXoWDkuqUa3l6zM5mM0Rw/Iba interné použitie. Neupravuj n/pluginKomponent plug-in e/{environmentId}ID prostredia i/{issuerHash}s/{subjectHash}SHA-256 Base64URL hash celého DN vydavateľa/subjektu. Pozri Vypočítaj hashe vydavateľa a subjektu h/{hash}SHA-256 certifikátu (len s vlastným podpisom)
Vypočítajte hashe emitenta a subjektu
Vezmite SHA-256 hash celého DN reťazca vydavateľa a subjektu, ako sa objavujú na certifikáte, a zakódujte každý ako URL bezpečný Base64. Získajte DN reťazce s:
$cert = Get-PfxCertificate -FilePath "path\to\your.pfx"
Write-Host "Issuer: $($cert.Issuer)"
Write-Host "Subject: $($cert.Subject)"
Vypočítajte hashe (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"
Alebo v 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('=');
}
Výstupom je 43-znakový reťazec obsahujúci iba A-Z, a-z, 0-9, -, a ._
Dôležité
Použite presne ten DN reťazec, ktorý runtime používa (.NET X509Certificate2.Issuer a X509Certificate2.Subject vlastnosti). Inak formátovaný DN sa nezhoduje a zlyhá s AADSTS700213.
Poznámka
Pri nasadeniach mimo verejného cloudu nastavte hodnoty špecifické pre cloud. Pozri Špecializované Azure cloudové prostredia.
Krok 4: Vytvorte spravovaný záznam identity v Dataverse
Pošlite HTTP POST požiadavku pomocou REST klienta. Pre verziu 2 nastavte version na 2.
POST https://<<orgURL>>/api/data/v9.0/managedidentities
{
"applicationid": "<<appId>>",
"managedidentityid": "<<anyGuid>>",
"credentialsource": 2,
"subjectscope": 1,
"tenantid": "<<tenantId>>",
"version": 2
}
Potom pripojme plug-in zostavu (alebo balenie) k záznamu:
PATCH https://<<orgURL>>/api/data/v9.0/pluginassemblies(<<PluginAssemblyId>>)
{
"managedidentityid@odata.bind": "/managedidentities(<<ManagedIdentityGuid>>)"
}
Pre balík plug-in použite pluginpackages(<<PluginPackageId>>) namiesto toho.
Krok 5: Udeliť prístup k zdroju Azure
Udeľte aplikácii alebo používateľom priradenej spravovanej identite prístup k Azure zdroju, ktorý potrebuje, napríklad Azure Key Vault.
Krok 6: Overte integráciu
Spustite plugin a overte, že získa token a dostane sa k Azure zdroju bez samostatných prihlasovacích údajov.
Aktualizácia na verziu 2
Ak máte plugin vo verzii 0 alebo 1, môžete ho presunúť na verziu 2 bez toho, aby ste museli plug-in znovu zostavovať alebo registrovať.
Možnosť 1: CLI Power Platform
Poznámka
CLI spravované identitné slovesá nefungujú na operačných systémoch založených na Linuxe ani s používateľom priradenou spravovanou identitou (UAMI). Ak CLI nefunguje pre váš certifikát, použite možnosť 2: Manuálne.
- Nainštalujte Power Platform CLI verziu 2.8.1 alebo novšiu. Pozri Inštalácia Microsoft Power Platform CLI.
- Vytvorte autentifikačný profil:
pac auth create - Skontrolujte aktuálnu verziu:
pac managed-identity show-fic --environment <orgUrl> --component-type PluginAssembly --component-id <pluginAssemblyId> --version 2 - Vylepšenie:
pac managed-identity upgrade-version --environment <orgUrl> --component-type PluginAssembly --component-id <pluginAssemblyId> --target-version 2 --confirm - Spustite plug-in na overenie.
Možnosť 2: Manuál
Vypočítajte hashy vydavateľa a subjektu verzie 2. Pozri Vypočítaj hashe vydavateľa a subjektu.
Pridajte nový FIC s formátom identifikátora subjektu verzie 2 (Krok 3).
Aktualizujte spravovaný záznam identity na verziu 2:
PATCH https://<<orgURL>>/api/data/v9.0/managedidentities(<<ManagedIdentityId>>){ "version": 2 }Spustiť plug-in a overiť, či získanie tokenu bolo úspešné.
Odstráňte starú verziu 1 FIC.
Poznámka
Verzia 0 je zastaraná. Podpora CLI pre generovanie FIC verzie 2 je v procese.
Referencia
Získajte zakódované ID nájomcu
Zakódované ID tenanta je GUID tenanta prevedené na bajty a zakódované ako Base64URL (nie štandardný Base64):
$tenantId = "<your-tenant-guid>"
$tenantGuid = [System.Guid]::Parse($tenantId)
$tenantBytes = $tenantGuid.ToByteArray()
$base64 = [System.Convert]::ToBase64String($tenantBytes)
$encodedTenantId = $base64.Replace('+', '-').Replace('/', '_').TrimEnd('=')
$encodedTenantId
Vygenerujte samopodpísaný certifikát
Len na vývoj alebo testovanie:
$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
Vypočítajte samopodpísané {hash} (SHA-256 cez ; .cerexportujte z prvého písmena .pfx , ak je to potrebné):
CertUtil -hashfile <CertificateFilePath> SHA256
$cert = Get-PfxCertificate -FilePath "path\to\your.pfx"
$cert.RawData | Set-Content -Encoding Byte -Path "extracted.cer"
Špecializované cloudové prostredia Azure
Pri nasadzovaní mimo verejného cloudu, GCC a prvej vydanej stanice v GCC nastavte explicitne predponu Audience,Issuer URL a Subject prefix .
| Cloud | Publikum | URL adresa vydavateľa | Predpona predmetu |
|---|---|---|---|
| GCC High & DoD | api://AzureADTokenExchangeUSGov |
https://login.microsoftonline.us |
/eid1/c/usg |
| Mooncake (Čína) | api://AzureADTokenExchangeChina |
https://login.partner.microsoftonline.cn |
/eid1/c/chn |
| Štátny príslušník USA (USNAT) | api://AzureADTokenExchangeUSNat |
https://login.microsoftonline.eaglex.ic.gov |
/eid1/c/uss |
| Zabezpečené v USA (USSec) | api://AzureADTokenExchangeUSSec |
https://login.microsoftonline.scloud |
/eid1/c/usn |
Poznámka
Hodnota pre publikum závisí od veľkých písmen. Pre verejný cloud, GCC a stanicu prvého vydania v GCC sú predvolené hodnoty Publikum api://AzureADTokenExchange, Vydavateľ, https://login.microsoftonline.comPrefix /eid1/c/pubsubjektu.
Často kladené otázky (FAQ)
Ako vyriešim AADSTS700213: Nenašiel sa žiadny zhodný federovaný identifikačný záznam?
Identifikátor subjektu vypočítaný za behu nezodpovedá žiadnemu FIC v aplikácii. Skontrolujte, či:
- Nastavili ste a uložili FIC.
- Vydavateľ a subjekt zodpovedajú formátu v kroku 3. Očakávaný formát nájdete aj v zásobníku chýb.
- Záznam
versionje2a FIC používa hash formát verzie 2. - Hash sa vypočíta z reťazca DN v runtime ().
X509Certificate2.Issuer/X509Certificate2.Subject - Vydavateľ je a
https://login.microsoftonline.com/{tenantId}/v2.0publikumapi://AzureADTokenExchangeje (citlivé na veľké písmená).
Ako vyriešim AADSTS70050: Cesta Federated Managed Identity nie je správne naformátovaná?
Identifikátor subjektu obsahuje znaky, ktoré poskytovateľ identity neakceptuje — najčastejšie ne-ASCII znaky v certifikáte CN pod verziou 1. Verzia 2 vytvorí identifikátor subjektu iba v ASCII a túto chybu odstráni.
Ako vyriešim chybu "Nie je možné sa pripojiť k Power Platform alebo sa k nej pripojiť"?
Aby ste zabezpečili, že koncové body Power Platform sú dostupné a povolené, pozrite si Power Platform URL adresy a rozsahy IP adries.