Power BI: Sicurezza e Row-Level Security (RLS)

Autenticazione, autorizzazioni e controllo granulare dei dati in Power BI per l’ecosistema Microsoft Power Platform.

Introduzione alla sicurezza in Power BI

Power BI rappresenta uno dei componenti chiave della Microsoft Power Platform e svolge un ruolo fondamentale nella visualizzazione e nell’analisi dei dati. Tuttavia, come ogni piattaforma di analytics, la sicurezza è un aspetto critico. La protezione dei dati, la gestione delle identità e il controllo dell’accesso sono essenziali per garantire che le informazioni vengano mostrate solo alle persone autorizzate.

La sicurezza in Power BI si basa su più livelli: autenticazione (tramite Azure Active Directory), autorizzazione (ruoli e permessi), e controllo granulare dei dati tramite Row-Level Security (RLS). Inoltre, in ambienti enterprise, è possibile integrare Power BI con Dataverse e Active Directory per ottenere un modello di sicurezza coerente e centralizzato.

Autenticazione: OAuth 2.0 tramite Azure AD
Autorizzazione: Ruoli e permessi su dataset e workspace
RLS: Filtraggio dei dati basato sull’utente

Autenticazione e accesso

Il processo di autenticazione in Power BI utilizza il protocollo OAuth 2.0 e si basa su Azure Active Directory (AAD). Ogni utente o applicazione che accede ai dataset o alle API di Power BI deve essere registrato in AAD e autorizzato per l’uso del servizio. L’endpoint di autenticazione tipico per Power BI è https://analysis.windows.net/powerbi/api.

Per le applicazioni esterne, è possibile registrare un’applicazione in Azure AD e ottenere un token di accesso. Questo approccio consente anche di implementare autenticazione con certificato X.509 al posto del client secret, aumentando il livello di sicurezza.

Autenticazione interna ed esterna

  • Utenti interni: autenticati tramite Azure AD con MFA e Conditional Access.
  • Utenti esterni: autenticati tramite Azure AD B2B o B2C, con restrizioni definite dal tenant.
  • Service accounts: utilizzate per l’accesso non interattivo, con policy di sicurezza dedicate e senza MFA.

Puoi approfondire la gestione delle identità su Microsoft Learn - Azure Active Directory.

Autorizzazioni e modelli di sicurezza

Power BI utilizza un sistema di autorizzazione basato su ruoli per controllare chi può visualizzare, modificare o pubblicare contenuti. Le autorizzazioni vengono gestite a livello di workspace, dataset, report e dashboard.

Tipologie di autorizzazione

  • Nessuna autorizzazione: tutti gli utenti vedono gli stessi dati, soluzione adatta per report pubblici.
  • Autorizzazione statica: dataset configurati con credenziali che filtrano i dati in modo predefinito.
  • Row-Level Security (RLS): ruoli e filtri DAX che limitano i dati visibili in base all’utente.
  • Autorizzazione Dataverse: disponibile con dataset DirectQuery, che eredita i permessi dall’ambiente Dataverse.

Il modello di autorizzazione Dataverse è particolarmente potente perché consente a Power BI di visualizzare solo i dati che l’utente può già vedere in Dataverse, mantenendo la coerenza dei permessi tra Power Apps e Power BI.

Modello di Sicurezza Power BI Azure Active Directory Power BI Service Dataverse / Dataset
Figura: Integrazione tra Azure AD, Power BI e Dataverse per la sicurezza

Row-Level Security (RLS)

La Row-Level Security (RLS) è una funzionalità avanzata di Power BI che consente di limitare i dati visibili a ciascun utente in base a filtri definiti con espressioni DAX. È particolarmente utile per organizzazioni che gestiscono dati multi-region o multi-divisione, dove è necessario che ogni ruolo veda solo i propri record.

Configurazione di RLS

  1. Apri il dataset in Power BI Desktop.
  2. Vai su Modeling → Manage Roles.
  3. Crea un nuovo ruolo e definisci la logica DAX, ad esempio:
    [City] = USERPRINCIPALNAME()
  4. Pubblica il dataset nel servizio Power BI e assegna gli utenti ai ruoli definiti.

Un esempio pratico: il ruolo “Seattle” filtra tutte le entità di tipo Account e Contact dove il campo città è uguale a "Seattle".

È possibile consultare la documentazione ufficiale su Power BI Security per ulteriori dettagli.

RLS vs DirectQuery Security

  • RLS: definito nel dataset Power BI, gestito tramite DAX e ruoli utente.
  • DirectQuery Security: eredita i permessi dal sistema sottostante (Dataverse, SQL, etc.).
  • Combinazione: possibile applicare RLS aggiuntivo su dataset DirectQuery per filtri personalizzati.

Domande frequenti su Power BI e RLS

Chi gestisce i ruoli di Row-Level Security in Power BI?

I ruoli RLS vengono creati dai proprietari del dataset in Power BI Desktop e gestiti nel servizio Power BI. Solo gli amministratori o i dataset owner possono modificare i ruoli o assegnare utenti.

È possibile usare RLS con DirectQuery?

Sì, ma con alcune limitazioni. Quando si utilizza DirectQuery con Dataverse o SQL Server, è possibile applicare la sicurezza dell’origine dati e propagare le credenziali dell’utente per un controllo coerente.

Qual è la differenza tra RLS e sicurezza Dataverse?

RLS è implementata a livello di dataset Power BI tramite DAX, mentre la sicurezza Dataverse è basata su ruoli e record-level access. Quando si utilizza DirectQuery, Power BI può ereditare le regole Dataverse, mantenendo la coerenza tra i due sistemi.

Approfondisci la sicurezza nella Power Platform

Esplora come Power BI, Dataverse e Power Pages implementano modelli di sicurezza integrati per ambienti aziendali complessi. Impara a combinare RLS, DirectQuery e i controlli di Azure AD per garantire una protezione completa dei dati.