Implementazione della sicurezza a livello di riga nei report impaginati incorporati
SI APPLICA A: L'app possiede dati di proprietà dell'utente
Questo articolo illustra come incorporare un report impaginato che usa RLS (sicurezza a livello di riga) nell'applicazione dati di proprietà dell'app.
Nota
Questo articolo è rilevante solo per i clienti con dati di proprietà dell'app.
Per usare la sicurezza a livello di riga per i report impaginati:
- Configurare l'ambiente per filtrare il report
- Filtrare i dati a livello di report o di query
- Passare il parametro configurato tramite un token di incorporamento
Prerequisiti
Questo articolo presuppone che si sappia incorporare un report impaginato di Power BI. Illustra come generare il token di incorporamento in modo che il report mostri solo ciò a cui l'utente ha l'autorizzazione per accedere.
I report impaginati vengono creati usando il motore di SQL Server Reporting Services e non il motore di Power BI (Analysis Services), quindi il filtro della sicurezza a livello di riga viene configurato in Power BI Report Builder.
Configurare l'ambiente
Per applicare la sicurezza a livello di riga a un report impaginato di Power BI, usare il campo predefinito UserID per assegnare un parametro. Questo parametro viene usato per filtrare o eseguire query sui dati.
Passare quindi l'ID utente all'API Embed Token - Generate Token (Token di incorporamento - Generare token) per ottenere il token di incorporamento.
Usare UserID come filtro a livello di report o di query
È possibile usare UserId come filtro o in una query nell'origine dati.
Filtra i dati
Nel riquadro sinistro della finestra Proprietà modello semantico, selezionare Filtro.
Nel menu a discesa Espressione selezionare il parametro che si vuole usare per filtrare i dati.
Seleziona il pulsante di funzione Valore.
Nella finestra Espressione selezionare Campi predefiniti nell'elenco Categoria.
Nell'elenco Elemento, selezionare UserID e fare clic su OK.
Nella finestra Proprietà modello semantico, verificare che l'espressione sia parametro selezionato = UserID e fare clic su OK.
Uso di una query
Nella finestra Proprietà modello semantico, selezionare Parametridal riquadro di navigazione sinistro, quindi selezionare Aggiungi.
Nel campo Nome parametro, immettere @UserID, e in Valore parametro, aggiungere [&UserID].
Nel riquadro sinistro, selezionare Query, in Query aggiungere il parametro UserID nell’ambito della query, poi fare clic su OK.
Nota
Nello screenshot seguente viene usato come esempio il parametro Color (WHEREFinalTable.Color = @UserID)). Se necessario, è possibile creare una query più complessa.
Generare un token di incorporamento
Quando si incorpora un report impaginato per i clienti, si usa l'API Reports GenerateTokenInGroup per ottenere il token di incorporamento. Questo token può essere usato anche per filtrare alcuni dati dal report impaginato.
È possibile generare un token esclusivamente usando un'entità servizio. Non è possibile generare un token come utente master. L'entità servizio deve avere almeno le autorizzazioni membro per l'area di lavoro nel servizio Power BI. (Se l'entità servizio è un collaboratore o un visualizzatore, non è in grado di generare un token.)
Per generare un token, assegnare al username
campo le informazioni da mostrare. Ad esempio, in un report impaginato con un parametro color, se si immette verde nel campo username
, il token di incorporamento limiterà i dati incorporati in modo da visualizzare solo i dati che hanno il valore verde nella colonna del colore.
{
"reports": [
{
"id": "8d57615e-cfed-4d60-bd21-7dc05727193c"
}
],
"identities": [
{
"username": "green",
"reports": [
"8d57615e-cfed-4d60-bd21-7dc05727193c"
]
}
]
}
Nota
Se si genera un token di incorporamento senza specificare un ID utente, verrà usato l'ID oggetto dell'entità servizio.
Considerazioni e limitazioni
- L'utente master non è supportato con i report impaginati per l'l'incorporamento per i clienti. L'utente master è supportato per l'incorporamento per l'organizzazione .
- L'entità servizio deve disporre delle autorizzazioni dell'area di lavoro di almeno un membro o (non visualizzatore o collaboratore).