Condividi tramite


Configurare l'identità gestita di Power Platform per i plug-in Dataverse o i pacchetti plug-in

L'identità gestita di Power Platform consente ai plug-in dataverse o ai pacchetti plug-in di connettersi con le risorse di Azure per supportare l'identità gestita senza la necessità di credenziali. Questo articolo ti aiuta a configurare l'identità gestita negli ambienti Power Platform.

Prerequisiti

  • Una sottoscrizione Azure con accesso al provisioning dell'identità gestita assegnata dall'utente (UAMI) o alla registrazione dell'applicazione.
  • Strumenti per plug-in o pacchetti di plug-in:
  • Certificato valido per firmare l'assembly plug-in.

Configurare l'identità gestita

Per configurare l'identità gestita di Power Platform per i plug-in dataverse o i pacchetti plug-in, completare la procedura seguente.

  1. Creare una nuova registrazione dell'app o una nuova identità gestita assegnata dall'utente.
  2. Configurare le credenziali di identità federate.
  3. Creare e registrare plug-in per il Dataverse o pacchetti plug-in.
    Assicurarsi di compilare l'assembly del plug-in e di registrare il plug-in o il pacchetto di plug-in.
  4. Creare un record di identità gestito in Dataverse.
  5. Concedere l'accesso alle risorse di Azure all'applicazione o all'identità gestita assegnata dall'utente.Grant access to the Azure resources to the application or user-assigned managed identity (UAMI).
  6. Convalida l'integrazione del plug-in.

Creare una nuova registrazione dell'app o una nuova identità gestita assegnata dall'utente

È possibile creare un'identità gestita assegnata dall'utente o un'applicazione in Microsoft Entra ID in base agli scenari seguenti.

  • Se si vuole un'identità dell'app associata al plug-in che si connette alle risorse di Azure, ad esempio Azure Key Vault, usare la registrazione dell'applicazione. Con l'identità dell'app, puoi applicare i criteri Azure al plug-in che accede alle risorse Azure.
  • Se desideri un'entità servizio per accedere alle risorse di Azure, ad esempio Azure Key Vault, puoi effettuare il provisioning dell'identità gestita assegnata dall'utente.

Nota

Assicurarsi di acquisire gli ID seguenti, perché vengono usati nei passaggi successivi.

  • ID applicazione (cliente)
  • ID tenant

Configurare le credenziali di identità federate

Per configurare l'identità gestita, apri l'applicazione Microsoft Entra ID o l'identità gestita assegnata dall'utente nel portale Azure come creato nella sezione precedente.

  1. Vai al portale di Azure.
  2. Passa a Microsoft Entra ID.
  3. Selezionare Registrazioni app.
  4. Apri l'app che hai creato in Configura l'identità gestita.
  5. Passa a Certificati e segreti.
  6. Selezionare la scheda Credenziali federate e selezionare Aggiungi credenziali.
  7. Seleziona Emittente come Altro emittente.
  8. Immetti le informazioni seguenti:

Emittente

Usa l'emittente v2.0 del tenant:

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

Example

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

TIPO

Scegliere Identificatore dell'oggetto esplicito.

Identificatore del soggetto

Scegliere il formato corrispondente al tipo di certificato:

  • Certificato autofirmato (solo sviluppo):

    /eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/h/{hash}
    
  • Certificato dell'autorità emittente attendibile (consigliato per la produzione):

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

Riferimento al segmento

Segmento Description
eid1 Versione del formato di identità
c/pub Codice cloud per cloud pubblico, Government Community Cloud (GCC) e prima stazione di rilascio in GCC.
t/{encodedTenantId} ID tenant
a/qzXoWDkuqUa3l6zM5mM0Rw/ Solo per uso interno. Non modificare.
n/plug-in Componente plug-in
e/{environmentId} ID ambiente
h/{hash} SHA-256 del certificato (solo autofirmato)
i/{issuer}
s/{certificateSubject}
Dettagli degli emittenti attendibili

Generare un certificato autofirmato

Ogni plug-in deve avere un'identità verificabile e il certificato di firma funge da impronta digitale univoca del plug-in. Il codice seguente è un frammento di esempio di PowerShell che è possibile usare per generare un certificato autofirmato per scenari di sviluppo o test. Per riferimento, è possibile seguire l'esempio 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

Nota

Codifica per {encodedTenantId}

  1. Convertire GUID → hex.
  2. Convert Hex → Base64URL (non Standard Base64).

Hash con firma automatica

  • Calcolare SHA-256 nel .cer. Se si dispone di un file con estensione pfx, esportare prima un .cer :
    CertUtil -hashfile <CertificateFilePath> SHA256
    
    $cert = Get-PfxCertificate -FilePath "path	o\your.pfx"
    $cert.RawData | Set-Content -Encoding Byte -Path "extracted.cer"
    

Ambienti cloud di Azure specializzati

Impostare il prefisso Audience, Issuer URL e Subject in modo esplicito quando si distribuisce all'esterno del cloud pubblico, GCC e prima stazione di rilascio in GCC:

Cloud Partecipanti URL dell'emittente Prefisso soggetto
GCC High & DoD api://AzureADTokenExchangeUSGov https://login.microsoftonline.us /eid1/c/usg
Mooncake (Cina) 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

Nota

Il valore Audience fa distinzione tra maiuscole e minuscole e deve corrispondere esattamente.
Per il cloud pubblico, GCC e la prima stazione di rilascio in GCC (e altri cloud non elencati), le impostazioni predefinite sono:
Pubblico api://AzureADTokenExchange, Emittente https://login.microsoftonline.com, Prefisso soggetto /eid1/c/pub.

Creare e registrare plug-in o pacchetti plug-in Dataverse

Creare assembly di plug-in

Creazione di pacchetti e firma

Firma di un pacchetto plug-in

Se stai creando un pacchetto di plug-in, utilizza l'interfaccia della riga di comando NuGet Sign per generare un pacchetto da un file con estensione .nuspec o .csproj. Dopo aver generato il pacchetto, firmarlo con il certificato.

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

Firma di un assembly del plug-in

Se stai registrando un plug-in (assembly), firma la DLL con un certificato usando SignTool.exe (strumento di firma).

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

Facoltativamente, è possibile aggiungere timestamp specificando l'URL di un server timestamp conforme a RFC 3161.

Nota

Usare un certificato autofirmato solo a scopo di sviluppo o test. Non usare certificati autofirmato negli ambienti di produzione.

Registrare il plug-in

Creare record di identità gestita in Dataverse

Per effettuare il provisioning di un record di identità gestito in Dataverse, seguire questa procedura.

  1. Creare un'identità gestita inviando una richiesta HTTP POST con un client REST ,ad esempio Insonnia. Usare un URL e il corpo della richiesta nel formato seguente.

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

    Assicurati di sostituire orgURL con l'URL dell'organizzazione.

  2. Assicurarsi che l'origine credenziali sia impostata su 2 nel payload, l'ambito soggetto sia impostato su 1 per gli scenari specifici dell'ambiente e che la versione sia impostata su 1 nel payload.

    Payload di esempio

    {
      "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. Aggiornare il pacchetto plug-in o il record di assembly plug-in inviando una richiesta HTTP PATCH per associarlo all'identità gestita creata nel passaggio 1.

    Assembly plug-in

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

    Pacchetto plug-in

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

    Payload di esempio

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

    Assicurarsi di sostituire orgURL, PluginAssemblyId (o PluginPackageId) e ManagedIdentityGuid con i valori.

Concedere l'accesso alle risorse Azure all'identità gestita assegnata dall'utente o all'applicazione

Se è necessario concedere l'accesso a un ID applicazione per accedere alle risorse di Azure, ad esempio Azure Key Vault, concedere l'accesso all'applicazione o all'identità gestita assegnata dall'utente a tale risorsa.

Convalida l'integrazione del plug-in

Verifica che il plug-in sia in grado di richiedere in modo sicuro l'accesso alle risorse Azure che supportano l'identità gestita, eliminando la necessità di credenziali separate.

Domande frequenti

Come si risolve questo errore?

Se ricevi il seguente errore:
Errore: un problema di configurazione impedisce l'autenticazione.
AADSTS700213: nessun record di identità federato corrispondente trovato

Completare i passaggi seguenti per risolvere il problema:

  1. Verificare che il FIC sia configurato e salvato correttamente.

  2. Verificare che l'emittente/soggetto corrisponda al formato specificato in precedenza.

    È anche possibile trovare il formato previsto nello stack di errori.

Come si risolve l'errore "Impossibile raggiungere o connettersi a Power Platform"?

Fare riferimento a URL e intervalli di indirizzi IP di Power Platform per garantire che gli endpoint di Power Platform siano raggiungibili e in lista consentita.