Implementazione della sicurezza a livello di riga nei report impaginati incorporati

Si applica a:✅ Analisi incorporata di Power BI per i tuoi clienti (App-owns-data)

Questo articolo illustra come incorporare un report impaginato che usa RLS (sicurezza a livello di riga) nell'applicazione app owns data.

Nota

Questo articolo è rilevante solo per i clienti con dati di proprietà dell'app.

Per usare RLS per i report impaginati:

  1. Configurare l'ambiente per filtrare il report
  2. Filtrare i dati al livello del report o della query
  3. 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 sono creati con il motore di SQL Server Reporting Services e non con il motore di Power BI (Analysis Services), quindi il filtro RLS è 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.

Usa UserID come filtro a livello di report o query

È possibile usare UserId come filtro o in una query nell'origine dati.

Filtra i dati

  1. Nel riquadro sinistro della finestra Proprietà modello semantico, selezionare Filtro.

    Schermata del filtro di Power BI Report Builder.

  2. Nel menu a discesa Espressione selezionare il parametro che si vuole usare per filtrare i dati.

    Nello screenshot viene visualizzato il valore Color selezionato nel menu Espressione.

  3. Seleziona il pulsante di funzione Valore.

    Valore di Power BI Report Builder

  4. Nella finestra Espressione selezionare Campi predefiniti nell'elenco Categoria.

    Lo screenshot mostra la finestra Espressione, con Campi predefiniti selezionati per Categoria ed ExecutionTime selezionato per Elemento.

  5. Nell'elenco Elemento, selezionare UserID e fare clic su OK.

    UserID di Power BI Report Builder

  6. Nella finestra Proprietà modello semantico, verificare che l'espressione sia parametro selezionato = UserID e fare clic su OK.

    Proprietà del modello semantico di Power BI Report Builder

Utilizzo di una query

  1. Nella finestra Proprietà modello semantico, selezionare Parametridal riquadro di navigazione sinistro, quindi selezionare Aggiungi.

    Parametri di Power BI Report Builder

  2. Nel campo Nome parametro, immettere @UserID, e in Valore parametro, aggiungere [&UserID].

    Nome del parametro di Power BI Report Builder

  3. 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.

    Modificare query in Power BI Report Builder

Generare un token di incorporazione

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. Il service principal deve avere almeno le autorizzazioni di 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 per i report impaginati per embed for your customers. L'utente master è supportato per l'incorporamento per la tua organizzazione.
  • L'entità servizio deve disporre delle autorizzazioni dell'area di lavoro di almeno un membro o (non visualizzatore o collaboratore).

Generare un token di incorporamento