Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Når du bruker administrert identitet for Power Platform, kan dataverse plugin-moduler eller plugin-modulpakker koble til Azure ressurser uten å administrere legitimasjon. Denne artikkelen beskriver det anbefalte (versjon 2) -oppsettet, som bygger legitimasjonen for organisasjonsbasert identitet (FIC) fra en hash-kode for sertifikatets fullstendige unike navn (DN).
Notat
Bruk Power Platform-administrert identitet versjon 2 for alle nye og eksisterende plugin-moduler. Hvis du opprettholder et programtillegg som fremdeles bruker versjon 1 -formatet (CN-basert), kan du se Konfigurere administrert identitet versjon 1. Hvis du vil flytte en eksisterende plugin-modul til versjon 2, kan du se Oppgradere til versjon 2.
Hvorfor versjon 2
Versjon 2 produserer en fast, ASCII-bare emneidentifikator, slik at den fungerer med et hvilket som helst sertifikatnavn. Versjon 1 mislykkes på bestemte sertifikatnavn (CN-er):
-
Ikke-ASCII-tegn i CN (for eksempel uthevede bokstaver) →
AADSTS70050: The Federated Managed Identity path is not properly formatted. -
Komma i CN (for eksempel
CN=Contoso, Inc.) →AADSTS700213: No matching federated identity record found.
Forutsetninger
- Et Azure abonnement med tilgang til klargjøring av brukertilordnet administrert identitet (UAMI) eller programregistrering.
- Verktøy for plugin-moduler eller programtilleggspakker:
- Integrert utviklingsmiljø (IDE), som Visual Studio, for å bygge plugin-modul
- Verktøy for registrering av programtillegg
- SignTool.exe (signeringsverktøy) for å signere programtilleggssamlingen
- Power Platform CLI
- Et gyldig sertifikat for å signere plugin-modulsamlingen.
Konfigurer administrert identitet
- Opprett en ny appregistrering eller brukertildelt administrert identitet.
- Bygg, logg på og registrer plugin-modulen.
- Konfigurer legitimasjonen for organisasjonsbasert identitet.
- Opprett den administrerte identitetsposten i Dataverse.
- Gi tilgang til Azure ressursen.
- Valider integreringen.
Trinn 1: Opprette en appregistrering eller brukertilordnet administrert identitet
Opprett enten en brukertilordet administrert identitet eller et program i Microsoft Entra ID:
- Bruk programregistrering for en appidentitet som er knyttet til plugin-modulen (slik at du kan bruke Azure policyer).
- For en tjenestehovedkonto klargjør du en brukertilordnet administrert identitet.
Notat
Registrere program-ID ogleier-ID – du bruker dem i senere trinn.
Trinn 2: Bygge, signere og registrere plugin-modulen
Opprett et tillegg i Visual Studio. Bruk leier-ID-en fra trinn 1 og et område som
https://{OrgName}.crm*.dynamics.com/.default. Bruk IManagedIdentityService til å be om et token:string AcquireToken(IEnumerable<string> scopes);Logg på plugin-modulen med sertifikatet.
Programtilleggspakke (NuGet):
nuget sign YourPlugin.nupkg ` -CertificatePath MyCert.pfx ` -CertificatePassword "MyPassword" ` -Timestamper http://timestamp.digicert.comPlugin-modulsamling (SignTool):
signtool sign /f MyCert.pfx /p MyPassword /t http://timestamp.digicert.com /fd SHA256 MyAssembly.dllRegistrer plugin-modulen ved hjelp av registreringsverktøyet for programtillegg.
Notat
Bruk et selvsignert sertifikat bare for utvikling eller testing. Ikke bruk selvsignerte sertifikater i produksjon. Hvis du vil opprette et, kan du se Generere et selvsignert sertifikat.
Trinn 3: Konfigurere legitimasjonen for organisasjonsbasert identitet
Åpne appen eller den brukertilordnede administrerte identiteten (UAMI) i Azure-portalen, gå til Sertifikater og hemmeligheter> iorganisasjonslegitimasjonen>Legg til legitimasjon, og velg Annen utsteder. Skriv deretter inn:
Utsteder —
https://login.microsoftonline.com/{tenantID}/v2.0Type — Eksplisitt subjektidentifikator
Emneidentifikator – bruk formatet for sertifikattypen:
Tillitsverdig utstedersertifikat (produksjon):
/eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/i/{issuerHash}/s/{subjectHash}Selvsignert sertifikat (bare utvikling):
/eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/h/{hash}
Segmentreferanse
Segment Beskrivelse eid1Identitetsformatversjon c/pubSkykode for offentlig sky, GCC og første utgivelsesstasjon i GCC t/{encodedTenantId}Leietaker-ID. Se Få den kodede leier-ID-en a/qzXoWDkuqUa3l6zM5mM0Rw/Bare intern bruk. Ikke endre n/pluginPlugin-komponent e/{environmentId}Miljø-ID i/{issuerHash}s/{subjectHash}SHA-256 Base64URL-hash av den fullstendige utsteder-/subjekt-DN-en. Se Beregne utstederen og emne-hash-kodene h/{hash}SHA-256 av sertifikatet (bare selvsignert)
Beregne utstederen og emne-hash-kodene
Ta SHA-256-hash-koden for den fullstendige utstederen og emne-DN-strengene slik de vises på sertifikatet, og kode hver av dem som url-safe Base64. Hent DN-strengene med:
$cert = Get-PfxCertificate -FilePath "path\to\your.pfx"
Write-Host "Issuer: $($cert.Issuer)"
Write-Host "Subject: $($cert.Subject)"
Beregne hash-kodene (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"
Eller i 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('=');
}
Utdataene er en streng på 43 tegn som bare A-Zinneholder , , a-z0-9, -og _.
Viktig!
Bruk den nøyaktige DN-strengen kjøretiden bruker (.NET X509Certificate2.Issuer og X509Certificate2.Subject egenskaper). En annen formatert DN samsvarer ikke med og mislykkes med AADSTS700213.
Notat
Angi skyspesifikke verdier for distribusjoner utenfor offentlig sky. Se spesialiserte Azure skymiljøer.
Trinn 4: Opprette den administrerte identitetsposten i Datavers
Send en HTTP POST-forespørsel ved hjelp av en REST-klient. For versjon 2, satt version til 2.
POST https://<<orgURL>>/api/data/v9.0/managedidentities
{
"applicationid": "<<appId>>",
"managedidentityid": "<<anyGuid>>",
"credentialsource": 2,
"subjectscope": 1,
"tenantid": "<<tenantId>>",
"version": 2
}
Deretter knytter du tilleggsmodulen (eller pakken) til posten:
PATCH https://<<orgURL>>/api/data/v9.0/pluginassemblies(<<PluginAssemblyId>>)
{
"managedidentityid@odata.bind": "/managedidentities(<<ManagedIdentityGuid>>)"
}
Bruk i stedet for en plugin-modulpakke pluginpackages(<<PluginPackageId>>) .
Trinn 5: Gi tilgang til den Azure ressursen
Gi programmet eller den brukertilordnede administrerte identiteten tilgang til Azure ressursen den trenger, for eksempel Azure Key Vault.
Trinn 6: Valider integreringen
Utløs plugin-modulen og bekreft at den henter et token og når Azure ressursen uten egen legitimasjon.
Oppgrader til versjon 2
Hvis du har en plugin-modul på versjon 0 eller versjon 1, kan du flytte den til versjon 2 uten å gjenoppbygge eller registrere plugin-modulen på nytt.
Alternativ 1: Power Platform CLI
Notat
Verbene for cli-administrert identitet fungerer ikke på Linux-baserte operativsystemer eller med brukertilordnet administrert identitet (UAMI). Hvis CLI ikke fungerer for sertifikatet, kan du bruke alternativ 2: Manuell.
- Installer Power Platform CLI versjon 2.8.1 eller nyere. Se Installer Microsoft Power Platform CLI.
- Opprett en godkjenningsprofil:
pac auth create - Kontroller gjeldende versjon:
pac managed-identity show-fic --environment <orgUrl> --component-type PluginAssembly --component-id <pluginAssemblyId> --version 2 - Oppgradere:
pac managed-identity upgrade-version --environment <orgUrl> --component-type PluginAssembly --component-id <pluginAssemblyId> --target-version 2 --confirm - Utløs plugin-modulen for å validere.
Alternativ 2: Manuell
Beregne versjon 2-utstederen og emne-hash-kodene. Se Beregne utsteder og emne-hash-koder.
Legg til en ny FIC med identifikatorformatet versjon 2 (trinn 3).
Oppdater den administrerte identitetsposten til versjon 2:
PATCH https://<<orgURL>>/api/data/v9.0/managedidentities(<<ManagedIdentityId>>){ "version": 2 }Utløs plugin-modulen, og kontroller at tokenoppkjøpet lykkes.
Fjern den gamle FIC-versjonen 1.
Notat
Versjon 0 er avskrevet. CLI-støtte for generering av FIC-versjonen pågår.
Referanse
Hent den kodede tenant-ID-en
Den kodede leier-ID-en er leier-GUID-en konvertert til byte og kodet som Base64URL (ikke standard Base64):
$tenantId = "<your-tenant-guid>"
$tenantGuid = [System.Guid]::Parse($tenantId)
$tenantBytes = $tenantGuid.ToByteArray()
$base64 = [System.Convert]::ToBase64String($tenantBytes)
$encodedTenantId = $base64.Replace('+', '-').Replace('/', '_').TrimEnd('=')
$encodedTenantId
Generer et selvsignert sertifikat
Bare for utvikling eller testing:
$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
Beregne den selvsignerte {hash} (SHA-256 over .cer; eksporter fra en .pfx første om nødvendig):
CertUtil -hashfile <CertificateFilePath> SHA256
$cert = Get-PfxCertificate -FilePath "path\to\your.pfx"
$cert.RawData | Set-Content -Encoding Byte -Path "extracted.cer"
Spesialiserte Azure-skymiljøer
Angi nettadresse formålgruppe, utsteder og emneprefiks eksplisitt når du distribuerer utenfor offentlig sky, GCC og første utgivelsesstasjon i GCC.
| Sky | Målgruppe | URL-adresse for utsteder | Emneprefiks |
|---|---|---|---|
| GCC High og DoD | api://AzureADTokenExchangeUSGov |
https://login.microsoftonline.us |
/eid1/c/usg |
| Mooncake (Kina) | api://AzureADTokenExchangeChina |
https://login.partner.microsoftonline.cn |
/eid1/c/chn |
| US National (USNAT) | api://AzureADTokenExchangeUSNat |
https://login.microsoftonline.eaglex.ic.gov |
/eid1/c/uss |
| US Secure (USSec) | api://AzureADTokenExchangeUSSec |
https://login.microsoftonline.scloud |
/eid1/c/usn |
Notat
Verdien Målgruppe skiller mellom små og store bokstaver. For offentlig sky, GCC og første utgivelsesstasjon i GCC er standardene Målgruppe api://AzureADTokenExchange, Utsteder https://login.microsoftonline.com, Emneprefiks /eid1/c/pub.
Vanlige spørsmål
Hvordan løser jeg AADSTS700213: Finner ingen samsvarende oppføring for føderert identitet?
Emneidentifikatoren som beregnes ved kjøretid, samsvarer ikke med FIC i appen. Kontroller at:
- Du konfigurerte og lagret FIC.
- Utstederen og emnet samsvarer med formatet i trinn 3. Du kan også finne det forventede formatet i feilstakken.
- Posten
versioner2og FIC bruker hash-formatet versjon 2. - Hash-koden beregnes fra kjøretidens DN-streng (
X509Certificate2.Issuer/X509Certificate2.Subject). - Utstederen er
https://login.microsoftonline.com/{tenantId}/v2.0og målgruppen erapi://AzureADTokenExchange(skiller mellom store og små bokstaver).
Hvordan løser jeg AADSTS70050: Banen for federert administrert identitet er ikke riktig formatert?
Emneidentifikatoren inneholder tegn som identitetsleverandøren ikke godtar – oftest ikke-ASCII-tegn i sertifikatet CN under versjon 1. Versjon 2 produserer en ASCII-bare emneidentifikator og løser denne feilen.
Hvordan løser jeg feilen «Kan ikke nå eller koble til Power Platform»
Hvis du vil sikre at Power Platform-endepunkter kan nås og tillates, kan du se Nettadresser og IP-adresseområder for Power Platform.