Märkus.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida sisse logida või kausta vahetada.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida kausta vahetada.
Kui kasutad Power Platformi hallatavat identiteeti, saavad Dataverse'i pluginad või plug-in paketid ühenduda Azure ressurssidega ilma mandaate haldamata. See artikkel kirjeldab soovitatud (versioon 2) seadistust, mis ehitab federated identity credential'i (FIC) sertifikaadi täieliku Distinguished Name (DN) räsi põhjal.
Märkus.
Kasuta Power Platformi hallatud identiteedi versiooni 2 kõigi uute ja olemasolevate pluginate jaoks. Kui hoiad pluginat, mis kasutab endiselt versiooni 1 (CN-põhist) formaati, vaata Seadista hallatud identiteet versioon 1. Olemasoleva plugina viimiseks versiooni 2 vaata Uuenda versioonile 2.
Miks versioon 2
Versioon 2 toodab fikseeritud pikkusega, ainult ASCII-põhise subjekti identifikaatori, nii et see töötab iga sertifikaadi nimega. Versioon 1 ebaõnnestub teatud sertifikaadinimede (CN) puhul:
-
CN-i mitte-ASCII märgid (näiteks aktsendiga tähed) →
AADSTS70050: The Federated Managed Identity path is not properly formatted. - Komad CN-is (näiteks
CN=Contoso, Inc.) → .AADSTS700213: No matching federated identity record found
Eeltingimused
- Azure'i tellimus, millel on ligipääs kasutaja määratud hallatava identiteedi (UAMI) või rakenduse registreerimise loomisele.
- Tööriistad pistikprogrammide või plug-in pakettide jaoks:
- Integreeritud arenduskeskkond (IDE), nagu Visual Studio, pluginate loomiseks
- Pluginate registreerimise tööriist
- SignTool.exe (allkirjastamistööriist) pluginate komplekti allkirjastamiseks
- Power Platform CLI
- Kehtiv sert lisandmooduli sõlme allkirjastamiseks.
Hallatava identiteedi häälestamine
- Looge uus rakenduse registreerimine või kasutaja määratud hallatav identiteet.
- Ehita, allkirjasta ja registreeri plugin.
- Seadista federated identity credential.
- Loo hallatud identiteedi kirje Dataverse'is.
- Anna ligipääs Azure ressursile.
- Kinnita integratsioon.
1. samm: Loo rakenduse registreerimine või kasutaja määratud hallatud identiteet
Loo kas kasutaja määratud hallatav identiteet või rakendus Microsoft Entra ID-s:
- Rakenduse identiteedi jaoks, mis on seotud pluginaga (et saaksid rakendada Azure poliitikaid), kasuta rakenduse registreerimist.
- Teenusepõhilise isiku jaoks looge kasutaja määratud hallatav identiteet.
Märkus.
Salvesta rakenduse (kliendi) ID ja üürniku ID — neid kasutad hilisemates sammudes.
2. samm: Loo, allkirjasta ja registreeri plugin
Loo plugin Visual Studio's. Kasuta üürniku ID-d esimesest etapist ja ulatust nagu
https://{OrgName}.crm*.dynamics.com/.default. Kasuta IManagedIdentityService'i , et taotleda tokenit:string AcquireToken(IEnumerable<string> scopes);Allkirjasta pistikprogramm oma sertifikaadiga.
Plug-in pakett (NuGet):
nuget sign YourPlugin.nupkg ` -CertificatePath MyCert.pfx ` -CertificatePassword "MyPassword" ` -Timestamper http://timestamp.digicert.comPlug-in komplekt (SignTool):
signtool sign /f MyCert.pfx /p MyPassword /t http://timestamp.digicert.com /fd SHA256 MyAssembly.dllRegistreeri pistikprogrammplugina registreerimistööriista abil.
Märkus.
Kasuta iseallkirjastatud sertifikaati ainult arenduseks või testimiseks. Ära kasuta tootmises iseallkirjastatud sertifikaate. Selle loomiseks vaata Genereeri iseallkirjastatud sertifikaat.
3. samm: Seadista föderatiivse identiteedi mandaat
Väljastaja —
https://login.microsoftonline.com/{tenantID}/v2.0Tüüp — Selge subjekti identifikaator
Subjekti identifikaator — kasuta oma sertifikaadi tüübi vormingut:
Usaldusväärse väljastaja sertifikaat (tootmine):
/eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/i/{issuerHash}/s/{subjectHash}Iseallkirjastatud sertifikaat (ainult arendustegevus):
/eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/h/{hash}
Lõigu viide
Segment Kirjeldus eid1Identiteediformaadi versioon c/pubPilvekood avaliku pilve, GCC ja esimese väljalaskejaama jaoks GCC-s t/{encodedTenantId}Üürniku ID. Vaata Hangi kodeeritud üürniku ID a/qzXoWDkuqUa3l6zM5mM0Rw/Ainult sisekasutus. Ära muuda n/pluginPlug-in komponent e/{environmentId}Keskkonna ID i/{issuerHash}s/{subjectHash}SHA-256 Base64URL räsi kogu väljastaja/subjekti DN-st. Vaata : arvuta emiteerija ja subjekträsid h/{hash}Sertifikaadi SHA-256 (ainult iseallkirjastatud)
Arvuta emiteerija ja subjekt-räsid
Võta kogu väljastaja SHA-256 räsi ja alluvad DN stringid, nagu need sertifikaadil ilmnevad, ning kodeeri igaüks URL-turvalise Base64-na. Hangi DN stringid järgmiste numbritega:
$cert = Get-PfxCertificate -FilePath "path\to\your.pfx"
Write-Host "Issuer: $($cert.Issuer)"
Write-Host "Subject: $($cert.Subject)"
Arvuta räsid (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"
Või C#-s:
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äljundiks on 43-tähemärgiline string, mis sisaldab ainult A-Z, a-z, 0-9, -, ja _.
Oluline
Kasuta täpselt seda DN-stringi, mida käitusaeg kasutab (.NET X509Certificate2.Issuer ja X509Certificate2.Subject omadused). Teistsuguse vormindatud DN ei sobi ja ebaõnnestub .AADSTS700213
Märkus.
Avaliku pilve väliste juurutuste puhul sea pilvepõhised väärtused. Vaata spetsialiseeritud Azure'i pilvekeskkonnad.
4. samm: Loo hallatud identiteedi kirje Dataverse'is
Saada HTTP POST päring REST-kliendi abil. Versiooni 2 jaoks seatud version .2
POST https://<<orgURL>>/api/data/v9.0/managedidentities
{
"applicationid": "<<appId>>",
"managedidentityid": "<<anyGuid>>",
"credentialsource": 2,
"subjectscope": 1,
"tenantid": "<<tenantId>>",
"version": 2
}
Seejärel seo plugina komplekt (või pakett) kirjega:
PATCH https://<<orgURL>>/api/data/v9.0/pluginassemblies(<<PluginAssemblyId>>)
{
"managedidentityid@odata.bind": "/managedidentities(<<ManagedIdentityGuid>>)"
}
Plug-in paketi jaoks kasuta pluginpackages(<<PluginPackageId>>) selle asemel.
5. samm: Anna ligipääs Azure'i ressursile
Anna rakendusele või kasutaja määratud hallatavale identiteedile ligipääs Azure'i ressursile, mida ta vajab, näiteks Azure Key Vault.
6. samm: Integratsiooni valideerimine
Käivita plugin ja veendu, et see omandab tokeni ning jõuab Azure'i ressursini ilma eraldi mandaadita.
Uuendamine versioonile 2
Kui sul on plugin versioonis 0 või versioonis 1, saad selle viia versiooni 2 ilma pluginat uuesti üles ehitamata või uuesti registreerimata.
Variant 1: Power Platform CLI
Märkus.
CLI-hallatavad identiteeditegusõnad ei tööta Linuxi-põhistel operatsioonisüsteemidel ega kasutaja määratud hallatava identiteedi (UAMI) puhul. Kui CLI ei tööta sinu sertifikaadi jaoks, kasuta varianti 2: Manuaal.
- Paigalda Power Platform CLI versioon 2.8.1 või uuem. Vaata Install Microsoft Power Platform CLI.
- Loo autentimisprofiil:
pac auth create - Vaata praegust versiooni:
pac managed-identity show-fic --environment <orgUrl> --component-type PluginAssembly --component-id <pluginAssemblyId> --version 2 - Uuendus:
pac managed-identity upgrade-version --environment <orgUrl> --component-type PluginAssembly --component-id <pluginAssemblyId> --target-version 2 --confirm - Käivita pistikprogramm, et valideerida.
Variant 2: Manuaalne
Arvuta versiooni 2 väljastaja ja subjektne räsi. Vaata : arvuta väljastaja ja subjektne räsi.
Lisa uus FIC versiooni 2 teemaidentifikaatori formaadiga (3. samm).
Uuenda hallatud identiteedi kirje versioonile 2:
PATCH https://<<orgURL>>/api/data/v9.0/managedidentities(<<ManagedIdentityId>>){ "version": 2 }Käivita pistikprogramm ja kontrolli, et tokeni hankimine õnnestub.
Eemalda vana versiooni 1 FIC.
Märkus.
Versioon 0 on aegunud. CLI tugi versiooni 2 FIC genereerimiseks on käimas.
Viide
Hangi kodeeritud üürniku ID
Kodeeritud üürniku ID on üürniku GUID, mis on baitideks teisendatud ja kodeeritud kui Base64URL (mitte tavaline Base64):
$tenantId = "<your-tenant-guid>"
$tenantGuid = [System.Guid]::Parse($tenantId)
$tenantBytes = $tenantGuid.ToByteArray()
$base64 = [System.Convert]::ToBase64String($tenantBytes)
$encodedTenantId = $base64.Replace('+', '-').Replace('/', '_').TrimEnd('=')
$encodedTenantId
Genereeri iseallkirjastatud sertifikaat
Ainult arenduseks või testimiseks:
$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
Arvuta iseallkirjastatud {hash} (SHA-256 üle .cer; vajadusel ekspordi esimesest .pfx ):
CertUtil -hashfile <CertificateFilePath> SHA256
$cert = Get-PfxCertificate -FilePath "path\to\your.pfx"
$cert.RawData | Set-Content -Encoding Byte -Path "extracted.cer"
Spetsialiseeritud Azure pilvekeskkonnad
Sea Audience, Issuer URL ja Subject prefiks selgelt, kui juurutad väljaspool avalikku pilve, GCC-d ja esimest väljalaskejaama GCC-s.
| Pilv | Sihtrühm | Väljaandja URL | Subjekti eesliide |
|---|---|---|---|
| GCC High ja DoD | api://AzureADTokenExchangeUSGov |
https://login.microsoftonline.us |
/eid1/c/usg |
| Kuukook (Hiina) | api://AzureADTokenExchangeChina |
https://login.partner.microsoftonline.cn |
/eid1/c/chn |
| USA kodanik (USNAT) | api://AzureADTokenExchangeUSNat |
https://login.microsoftonline.eaglex.ic.gov |
/eid1/c/uss |
| USA turvaline (USSec) | api://AzureADTokenExchangeUSSec |
https://login.microsoftonline.scloud |
/eid1/c/usn |
Märkus.
Publiku väärtus on täibilitlik. Avaliku pilve, GCC ja GCC esimese väljalaskejaama puhul on vaikimisi väärtused Audience api://AzureADTokenExchange, Issuer https://login.microsoftonline.com, Subject prefiks /eid1/c/pub.
Korduma kippuvad küsimused (KKK)
Kuidas lahendada AADSTS700213: Föderatsiooni identiteedikirjet ei leitud?
Käitusajal arvutatud subjekti identifikaator ei ühti ühegi rakenduse FIC-iga. Kontrollige järgmist.
- Sa seadistasid ja salvestasid FIC-i.
- Väljastaja ja subjekt vastavad 3 . sammu formaadile. Eeldatava vormingu leiate ka veavirnast.
- Kirje
version2ja FIC kasutab versiooni 2 räsi formaati. - Räsi arvutatakse jooksva aja DN-stringist (
X509Certificate2.Issuer/X509Certificate2.Subject). - Väljastaja on
https://login.microsoftonline.com/{tenantId}/v2.0ja sihtrühmapi://AzureADTokenExchangeon (tähetundlik).
Kuidas lahendada AADSTS70050: Federated Managed Identity tee ei ole korrektselt vormindatud?
Subjekti identifikaator sisaldab märke, mida identiteediteenuse pakkuja ei aktsepteeri — enamasti mitte-ASCII märgid sertifikaadi CN-s versiooni 1 all. Versioon 2 toodab ainult ASCII-põhise subjekti identifikaatori ja lahendab selle vea.
Kuidas lahendada tõrge "Power Platformiga ei saa ühendust võtta ega sellega ühendust luua"?
Selleks, et tagada Power Platformi lõpp-punktide kättesaadavus ja lubatud nimekirjas, vaata Power Platformi URL-e ja IP-aadresside vahemikke.