Condividi tramite


Sicurezza a livello di riga (RLS) nel server di report di Power BI

L'impostazione della sicurezza a livello di riga con il server di report di Power BI può limitare l'accesso ai dati per determinati utenti. I filtri limitano l'accesso ai dati a livello di riga ed è possibile definire filtri all'interno dei ruoli. Se si usano le autorizzazioni predefinite nel server di report di Power BI, qualsiasi utente con autorizzazioni di pubblicazione o gestione contenuto per il report di Power BI può assegnare membri ai ruoli per il report.

È possibile configurare la sicurezza a livello di riga per i report importati in Power BI con Power BI Desktop. È anche possibile configurare la sicurezza a livello di riga nei report che usano DirectQuery, ad esempio SQL Server. Tenere presente che a la sicurezza a livello di riga non viene rispettata se la connessione di DirectQuery usa l'autenticazione integrata per i lettori del report. Per le connessioni dinamiche ad Analysis Services è possibile configurare la sicurezza a livello di riga nel modello locale. L'opzione di sicurezza non viene visualizzata per i set di dati di connessione dinamica.

Definire i ruoli e le regole in Power BI Desktop

È possibile definire i ruoli e le regole in Power BI Desktop. Con questo editor è possibile passare dall'interfaccia a discesa predefinita a un'interfaccia DAX e viceversa. Quando si esegue la pubblicazione in Power BI, verranno pubblicate anche le definizioni dei ruoli.

Per definire i ruoli di sicurezza:

  1. Importare dati nel report di Power BI Desktop o configurare una connessione DirectQuery.

    Nota

    Non è possibile definire i ruoli in Power BI Desktop per connessioni dinamiche di Analysis Services. È necessario eseguire questa operazione nel modello di Analysis Services.

  2. Dalla scheda Creazione di modelli selezionare Gestisci ruoli.

    Screenshot della scheda Creazione di modelli con l'opzione Gestisci ruoli evidenziata.

  3. Nella finestra Gestisci ruoli selezionare Nuovo per creare un nuovo ruolo.

    Screenshot della finestra Gestisci ruoli con il pulsante Crea nuovo ruolo evidenziato.

  4. In Ruoli specificare un nome per il ruolo e premere INVIO.

    Screenshot della finestra Gestisci ruoli con l'opzione Rinomina ruolo evidenziata.

    Nota

    Non è possibile definire un ruolo con una virgola, ad esempio London,ParisRole.

  5. In Seleziona tabelle selezionare la tabella a cui si vuole applicare un filtro di sicurezza a livello di riga.

  6. In Filtra dati usare l'editor predefinito per definire i ruoli. Le espressioni create restituiscono un valore true o false.

    Screenshot dell'editor predefinito della finestra Gestisci ruoli per la definizione della sicurezza a livello di riga.

    Nota

    Non tutti i filtri di sicurezza a livello di riga supportati in Power BI possono essere definiti usando l'editor predefinito. Tra le limitazioni sono incluse espressioni che attualmente possono essere definite solo tramite DAX, comprese le regole dinamiche, ad esempio username() o userprincipalname(). Per definire i ruoli usando questi filtri passare all'editor DAX.

  7. Facoltativamente, selezionare Passa all'editor DAX per passare all'uso dell'editor DAX per definire il ruolo. Le espressioni DAX restituiscono un valore true o false. Ad esempio: [Entity ID] = “Value”. L'editor DAX include il completamento automatico per le formule (IntelliSense). È possibile selezionare il segno di spunta sopra la casella dell'espressione per convalidare l'espressione e il pulsante X sopra la casella dell'espressione per ripristinare le modifiche.

    Screenshot della finestra Gestisci ruoli con un'espressione DAX di esempio evidenziata.

    Nota

    È possibile usare username() in questa espressione. Si noti che username() ha il formato DOMINIO\nomeutente in Power BI Desktop. Nel servizio Power BI e nel server di report di Power BI ha il formato del Nome entità utente (UPN) dell'utente stesso. Inoltre, in questa casella dell'espressione si usano le virgole per separare gli argomenti della funzione DAX anche se si usano impostazioni locali che in genere prevedono il separatore punto e virgola (ad esempio italiano o tedesco).

  8. È possibile tornare all'editor predefinito selezionando Passa all'editor predefinito. Tutte le modifiche apportate in entrambe le interfacce dell'editor vengono salvate in modo permanente passando da un'interfaccia all'altra, ove possibile. Quando nell'editor DAX si definisce un ruolo che non può essere definito nell'editor predefinito, se si tenta di passare all'editor predefinito verrà visualizzato un avviso che indica che il cambio di editor potrebbe causare la perdita di alcune informazioni. Per mantenere queste informazioni, selezionare Annulla e continuare a modificare questo ruolo solo nell'editor DAX.

    Screenshot della finestra di dialogo per confermare il passaggio all'editor predefinito.

    Nota

    In questa casella dell'espressione, usare le virgole per separare gli argomenti della funzione DAX anche se si usano impostazioni locali che in genere prevedono il separatore punto e virgola (ad esempio italiano o tedesco).

  9. Seleziona Salva.

Non è possibile assegnare gli utenti a un ruolo in Power BI Desktop. È necessario assegnarli nel servizio Power BI. È possibile abilitare la sicurezza dinamica in Power BI Desktop usando le funzioni DAX username() o userprincipalname() e configurando le relazioni appropriate.

Filtro incrociato bidirezionale

Per impostazione predefinita, i filtri per la sicurezza a livello di riga usano i filtri unidirezionali, indipendentemente dal fatto che le relazioni siano impostate come unidirezionali o bidirezionali. È possibile abilitare manualmente il filtro incrociato bidirezionale con la sicurezza a livello di riga.

  • Selezionare la relazione e selezionare la casella di controllo Applica filtro di sicurezza in entrambe le direzioni.

    Applica filtro di sicurezza

Selezionare questa casella di controllo quando si implementa la sicurezza a livello di riga dinamica basata sul nome utente o sull'ID di accesso.

Per altre informazioni, vedere Filtro incrociato bidirezionale con DirectQuery in Power BI Desktop e il whitepaper tecnico Securing the Tabular BI Semantic Model (Protezione del modello semantico tabulare di BI).

Convalidare i ruoli in Power BI Desktop

Dopo aver creato i ruoli è possibile testare i risultati corrispondenti all'interno di Power BI Desktop.

  1. Nella scheda Creazione di modelli selezionare Visualizza come.

    Screenshot della scheda Creazione di modelli con l'opzione Visualizza come evidenziata.

    Verrà aperta la finestra Visualizza come ruoli in cui sono visualizzati i ruoli creati.

    Screenshot della finestra Visualizza come ruoli con l'opzione Nessuno selezionata.

  2. Selezionare un ruolo creato. Scegliere quindi OK per applicare tale ruolo.

    Il report esegue il rendering dei dati pertinenti a tale ruolo.

  3. È anche possibile selezionare Altro utente e indicare un determinato utente.

    Screenshot della finestra Visualizza come ruoli in cui è stato immesso un utente di esempio.

    È consigliabile specificare il nome dell'entità utente (UPN), che verrà usato dal servizio Power BI e dal server di report di Power BI.

    All'interno di Power BI Desktop l'opzione Altro utente visualizza risultati diversi solo se si usa la sicurezza dinamica basata sulle espressioni DAX. In questo caso, è necessario includere sia il nome utente sia il ruolo.

  4. Seleziona OK.

    Il rendering del report viene eseguito in base a ciò che i filtri di sicurezza a livello di riga consentono all'utente di visualizzare.

    Nota

    La funzionalità Visualizza come ruoli non funziona per i modelli DirectQuery con accesso Single Sign-On (SSO) abilitato.

Aggiungere membri ai ruoli

Dopo aver salvato il report nel server di Report di Power BI è possibile gestire la sicurezza e aggiungere o rimuovere membri nel server. L'opzione per la sicurezza a livello di riga è disponibile (e non disattivata) solo per gli utenti con autorizzazioni editore o gestione contenuto.

Se il report non dispone dei ruoli necessari, aprirlo in Power BI Desktop, aggiungere o modificare i ruoli, quindi salvarlo nuovamente nel server di Report di Power BI.

  1. In Power BI Desktop salvare il report nel server di report di Power BI. È necessario usare la versione Power BI Desktop per Server di report di Power BI.

  2. Nel servizio Report di Power BI selezionare i puntini di sospensione (...) accanto al report.

  3. Selezionare Gestisci>Sicurezza a livello di riga.

    Gestire la sicurezza a livello di riga

    Nella pagina Sicurezza a livello di riga è possibile aggiungere membri a un ruolo creato in Power BI Desktop.

  4. Per aggiungere un membro selezionare Aggiungi membro.

  5. Immettere l'utente o il gruppo nella casella di testo con il formato nome utente (DOMINIO\Utente) e selezionare i ruoli da assegnare. Il membro deve essere interno all'organizzazione.

    Aggiungere un membro a un ruolo

    A seconda della configurazione di Active Directory, è possibile che sia supportata l'immissione del Nome entità utente in questo campo. In tal caso il server di report visualizza il nome utente corrispondente nell'elenco.

  6. Fare clic su OK per applicare l'impostazione.

  7. Per rimuovere membri selezionare la casella accanto ai relativi nomi e selezionare Elimina. È possibile eliminare più membri alla volta.

    Eliminare membri

username() e userprincipalname()

È possibile usare le funzioni DAX username() o userprincipalname() nel set di dati. Queste funzioni possono essere usate all'interno di espressioni in Power BI Desktop. Quando si pubblica il modello, il server di report di Power BI usa queste funzioni.

In Power BI Desktop username() restituisce un utente nel formato DOMINIO\Utente, mentre userprincipalname() restituisce un utente nel formato user@contoso.com.

Nel server di report di Power BI sia username() sia userprincipalname() restituiscono il Nome entità utente (UPN), che è simile a un indirizzo di posta elettronica.

Se si usa l'autenticazione personalizzata nel server di report di Power BI, viene restituito il formato del nome utente che è stato configurato per gli utenti.

Considerazioni e limitazioni

Di seguito sono riportate le limitazioni correnti per la sicurezza a livello di riga nei modelli Power BI.

Gli utenti con report che usavano la funzione DAX username() noteranno un comportamento nuovo per cui viene restituito il Nome dell'entità utente (UPN), SALVO quando si usa DirectQuery con la sicurezza integrata. Poiché la sicurezza a livello di riga (RLS) non viene rispettata in tale scenario, il comportamento resta invariato.

È possibile definire la sicurezza a livello di riga solo per i set di dati creati con Power BI Desktop. Per abilitare la sicurezza a livello di riga per i set di dati creati con Excel, prima di tutto è necessario convertire i file in file di Power BI Desktop (con estensione pbix). Altre informazioni sulla conversione di file di Excel.

Sono supportate solo le connessioni Estrai, Trasforma, Carica (ETL) e DirectQuery che usano le credenziali archiviate. Le connessioni dinamiche ad Analysis Services e le connessioni DirectQuery che usano l'autenticazione integrata vengono gestite nell'origine dati sottostante.

Se si usa la sicurezza integrata con DirectQuery, gli utenti potrebbero notare quanto segue:

  • La sicurezza a livello di riga è disabilitata e vengono restituiti tutti i dati.
  • Gli utenti non possono aggiornare le proprie assegnazioni di ruolo e ricevono un errore nella pagina di gestione della sicurezza a livello di riga.
  • Per la funzione DAX username si continua a ricevere il nome utente come DOMINIO\UTENTE.

Gli autori di report non hanno accesso alla visualizzazione dei dati del report nel server di report di Power BI, fino a quando non si assegnano i ruoli necessari dopo il caricamento del report.

Le assegnazioni di ruolo tramite appartenenze a gruppi sono supportate solo quando il server di report di Power BI è configurato per l'esecuzione con l'autenticazione NTLM o Kerberos. I server in esecuzione con autenticazione personalizzata o autenticazione di base di Windows richiedono che gli utenti vengano assegnati in modo esplicito ai ruoli.

Domande frequenti

È possibile creare questi ruoli per le origini dati di Analysis Services?

È possibile se i dati sono stati importati in Power BI Desktop. Se si usa una connessione dinamica, non è possibile configurare la sicurezza a livello di riga all'interno del servizio Power BI. La sicurezza a livello di riga viene definita all'interno del modello di Analysis Services in locale.

È possibile usare la sicurezza a livello di riga per limitare le colonne o le misure accessibili agli utenti?

No. Se un utente può accedere a una riga specifica di dati, può visualizzare tutte le colonne di dati per tale riga.

La sicurezza a livello di riga consente di nascondere i dati dettagliati ma di concedere l'accesso al riepilogo dati negli oggetti visivi?

No. È possibile proteggere singole righe di dati, ma gli utenti possono visualizzare sempre sia i dettagli sia il riepilogo dati.

È possibile aggiungere nuovi ruoli in Power BI Desktop se sono già presenti ruoli esistenti e membri assegnati?

Sì, se sono già presenti ruoli definiti e membri assegnati nel server di report di Power BI è possibile creare ruoli aggiuntivi e ripubblicare il report senza alcun effetto sulle assegnazioni correnti.

Altre domande? Contattare la community di Power BI