Eseguire la migrazione di applicazioni multi-cliente al modello di profili dell'entità servizio
Questo articolo descrive come ottenere una migliore scalabilità eseguendo la migrazione delle app multi-cliente di analisi incorporata di Power BI al modello di profili dell'entità servizio.
I profili dell'entità servizio semplificano la gestione dei contenuti dell'organizzazione in Power BI e consente di usare le capacità in modo più efficiente.
Nota
Questo articolo è rivolto alle organizzazioni che hanno già un'app che supporta più clienti da un singolo tenant di Power BI.
Non tutte le app traggono vantaggio dal modello di entità servizio. Ad esempio, le app seguenti non devono eseguire la migrazione:
- App di piccole dimensioni che mantengono un'entità servizio con un numero ridotto di oggetti.
- App che usano un'entità servizio multipla per cliente
Prerequisiti
È importante documentarsi sui profili delle entità servizio prima di avviare la migrazione.
È necessario eseguire anche i passaggi seguenti:
- Configurare l'entità servizio seguendo i primi tre passaggi della procedura Incorporare il contenuto di Power BI con l'entità servizio.
- Da un account amministratore tenant di Power BI abilitare la creazione di profili nel tenant.
Eseguire la migrazione ai profili di entità servizio
La migrazione ai profili dell'entità servizio prevede i passaggi seguenti:
- Creare profili, un profilo per cliente.
- Organizzare le aree di lavoro.
- Modificare il codice dell'applicazione in modo che si possano usare i profili.
- Testare l'applicazione con il modello di profili.
- Pulire le autorizzazioni ridondanti.
Crea profili (obbligatorio)
Usare l'API REST Profili con l'entità servizio creata per creare un profilo per ogni cliente.
È consigliabile salvare un mapping di ogni ID cliente dati con l'ID profilo corrispondente nel database. Questo mapping sarà necessario in un secondo momento per effettuare chiamate API con il profilo tenant.
Organizzare le aree di lavoro
Il modo più semplice per gestire i dati consiste nel gestire un'area di lavoro per cliente. Se l'app usa già questo modello, non è necessario creare nuove aree di lavoro. Tuttavia, è comunque necessario fornire a ogni profilo l'accesso amministratore all'area di lavoro corrispondente usando l'API Aggiungi utente gruppo.
Se non si ha un'area di lavoro per cliente, usare il profilo corrispondente per chiamare l'API Crea utente gruppo per creare una nuova area di lavoro per ogni cliente.
Organizzare gli elementi in aree di lavoro
A questo punto dovrebbero essere disponibili un profilo e un'area di lavoro per ogni cliente. Se sono state create nuove aree di lavoro nel passaggio precedente, è necessario importare elementi (ad esempio report e modelli semantici) in queste aree di lavoro. I modelli semantici importati dipendono dalla soluzione corrente:
Se l'app usa un modello semantico a parte per ogni cliente, la progettazione del modello semantico può funzionare così come è.
Se l'app usa un modello semantico con sicurezza a livello di riga per fornire dati diversi a clienti diversi, è possibile ottenere una migliore scalabilità creando un modello semantico separato per ogni cliente e usando i profili come descritto in questo articolo.
Dopo aver superato le limitazioni di scalabilità usando profili e origini dati separate, è possibile separare ulteriormente i dati usando la sicurezza a livello di riga con i profili.
- Se ci si basa sulla sicurezza a livello di riga dinamica, il nome del profilo verrà restituito nella funzione DAX
UserName()
. - Se si usa la sicurezza a livello di riga statica e si sostituiscono i ruoli durante la generazione del token di incorporamento, è possibile continuare a eseguire questa operazione.
- Se ci si basa sulla sicurezza a livello di riga dinamica, il nome del profilo verrà restituito nella funzione DAX
Una volta pronti gli elementi, importarli nelle aree di lavoro pertinenti. Per automatizzare il processo, è consigliabile usare l'API di importazione.
Modificare i codici dell'applicazione in modo che si possano usare i profili
Dopo aver ottenuto profili con accesso amministratore alle aree di lavoro pertinenti e un database con mapping che mostra il profilo che rappresenta il cliente, è possibile apportare le modifiche di codice necessarie. È consigliabile mantenere due flussi di codice affiancati ed esporre gradualmente il flusso di codice dei profili ai clienti.
Apportare le modifiche di codice seguenti:
Modifica del codice di autorizzazione
- Se si usa un utente master nell'app Microsoft Entra ID, modificare il codice di acquisizione del token. Leggere Incorporare con l'entità servizio per ricevere informazioni sulla creazione di un token Microsoft Entra solo app.
- Se si usa un'entità servizio e ne è stata creata una nuova per i profili, modificare il codice in modo da usare l'ID dell'entità servizio e i segreti corretti.
Modifica del codice di gestione
Alcune app dispongono di codice di gestione che automatizza l'onboarding di un nuovo cliente al momento della registrazione. Spesso, il codice di gestione usa le API REST di Power BI per creare aree di lavoro e importare contenuto. La maggior parte di questo codice deve rimanere invariata, ma potrebbe essere necessario adattare i dettagli seguenti:
- Ogni volta che si crea un nuovo tenant del cliente, creare un nuovo profilo di servizio come creatore e amministratore dell'area di lavoro per tale tenant.
- Se si decide di riorganizzare il contenuto di Power BI, modificare il codice in modo che rifletta le modifiche.
Modifica del codice del token di incorporamento
Sostituire il chiamante API. Assicurarsi che un profilo chiami l'API GenerateToken perché nel modello di profili solo il profilo specifico ha accesso al contenuto del cliente.
Convalida
È consigliabile testare attentamente l'app prima di spostarla nel modello di profili. I report possono essere caricati anche se sono presenti bug nel codice dell'applicazione SaaS perché non sono state eliminate le autorizzazioni precedenti per le aree di lavoro.
Eseguire la pulizia dopo la migrazione
Dopo aver completato la migrazione e aver convalidato i risultati, rimuovere ciò che non è più necessario.
- Pulire il codice: è possibile disabilitare i percorsi di codice precedenti per assicurarsi di eseguire solo nuovo codice che si basa sui profili.
- Pulire le aree di lavoro e le autorizzazioni in Power BI: se sono state create nuove aree di lavoro, è possibile eliminare le aree di lavoro precedenti che non sono più in uso. Se sono state riutilizzate le stesse aree di lavoro, è possibile eliminare le autorizzazioni meno recenti (ad esempio le autorizzazioni utente master) nell'area di lavoro.
Contenuto correlato
Gestire profili di entità servizio
Altre domande? Contattare la community di Power BI