Creazione di un'applicazione entità servizio mediante PowerShell

Spesso l'autenticazione tramite nome utente e password non è l'ideale, soprattutto con l'avvento dell'autenticazione a più fattori. In questi casi, è preferibile l'autenticazione dell'entità servizio (o del flusso di credenziali client). Questa operazione può essere eseguita registrando una nuova applicazione dell'entità servizio nel tuo tenant di Microsoft Entra e quindi registrando la stessa applicazione con Power Platform.

Registrazione di un'applicazione di gestione amministrativa

Innanzitutto, l'applicazione client deve essere registrata nel tenant di Microsoft Entra. A questo proposito, vedi l'articolo Autenticazione per le API di Power Platform poiché per PowerShell è necessaria la stessa configurazione dell'applicazione.

Dopo che l'applicazione client è stata registrata in Microsoft Entra ID, deve anche essere registrata con Microsoft Power Platform. Oggi non c'è modo di farlo tramite l'interfaccia di amministrazione di Power Platform, ma deve essere effettuato a livello di programmazione tramite l'API di Power Platform o PowerShell per gli amministratori di Power Platform. Un'entità servizio non può registrarsi da sola: per impostazione predefinita, l'applicazione deve essere registrata da un contesto di nome utente e password di amministratore. Ciò garantisce che l'applicazione venga creata da qualcuno che è un amministratore per il tenant.

Per registrare una nuova applicazione di gestione, utilizza il seguente script:

$appId = "CLIENT_ID_FROM_AZURE_APP"

# Login interactively with a tenant administrator for Power Platform
Add-PowerAppsAccount -Endpoint prod -TenantID $tenantId 

# Register a new application, this gives the SPN / client application same permissions as a tenant admin
New-PowerAppManagementApp -ApplicationId $appId

Effettuare richieste come entità servizio

Ora che è stata effettuata la registrazione con Microsoft Power Platform, puoi eseguire l'autenticazione come l'entità servizio stessa. Utilizza il seguente script per eseguire una query per l'elenco degli ambienti:

$appId = "CLIENT_ID_FROM_AZURE_APP"
$secret = "SECRET_FROM_AZURE_APP"
$tenantId = "TENANT_ID_FROM_AZURE_APP"

Add-PowerAppsAccount -Endpoint prod -TenantID $tenantId -ApplicationId $appId -ClientSecret $secret -Verbose
Get-AdminPowerAppEnvironment

Limitazioni delle entità di servizio

Attualmente, l'autenticazione dell'entità servizio funziona per la gestione dell'ambiente, le impostazioni del tenant e la gestione di Power Apps. I cmdlet relativi a Flow sono supportati per l'autenticazione dell'entità servizio in situazioni in cui non è richiesta una licenza, poiché non è possibile assegnare licenze alle identità dell'entità servizio in Microsoft Entra ID.

Le applicazioni dell'entità servizio sono trattate in Power Platform in modo simile a come lo sono gli utenti normali con il ruolo Amministratore di Power Platform assegnato. Non è possibile assegnare ruoli e autorizzazioni granulari per limitarne le capacità. All'applicazione non viene assegnato alcun ruolo speciale in Microsoft Entra ID, poiché questo è il modo in cui i servizi della piattaforma trattano le richieste effettuate dalle entità servizio.