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 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.
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
- Apri il dataset in Power BI Desktop.
- Vai su Modeling → Manage Roles.
- Crea un nuovo ruolo e definisci la logica DAX, ad esempio:
[City] = USERPRINCIPALNAME() - 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.