Generare un token di incorporamento

SI APPLICA A: L'app possiede dati di proprietà dell'utente

Generare token è un'API REST che consente di generare un token per incorporare un report di Power BI o un modello semantico in un'app Web o in un portale. Può generare un token per un singolo elemento o per più report o modelli semantici. Il token viene usato per autorizzare la richiesta al servizio Power BI.

L'API del token di generazione usa una singola identità (un utente master o un'entità servizio) per generare un token per un singolo utente, a seconda delle credenziali dell'utente nell'app (identità effettiva).

Dopo l'autenticazione, viene concesso l'accesso ai dati pertinenti.

Nota

Generare il token è l'API più recente, versione 2, che funziona sia per i report che per i modelli semantici e per uno o più elementi. È preferibile rispetto alle API legacy della versione 1. Per i dashboard e i riquadri, usare i dashboard V1 GenerateTokenInGroup e i riquadri GenerateTokenInGroup.

Protezione dei dati

Se si gestiscono i dati da più clienti, esistono due approcci principali per proteggere i dati: isolamento basato sull'area di lavoro e Isolamento basato sulla sicurezza a livello di riga. È possibile trovare un confronto dettagliato tra i profili dell'entità servizio e la sicurezza a livello di riga.

È consigliabile usare l'isolamento basato sull'area di lavoro con i profili, ma se si vuole usare l'approccio basato sulla sicurezza a livello di riga, vedere la sezione sicurezza a livello di riga alla fine di questo articolo.

Autorizzazioni e sicurezza dei token

Nelle API generate token la sezione GenerateTokenRequest descrive le autorizzazioni del token.

Livello di accesso

  • Usare il parametro allowEdit per concedere all'utente le autorizzazioni di visualizzazione o modifica.

  • Aggiungere l'ID dell'area di lavoro al token di incorporamento per consentire all'utente di creare nuovi report ( SaveAs o CreateNew) in tale area di lavoro.

Sicurezza a livello di riga

Con la sicurezza a livello di riga , l'identità usata può essere diversa dall'identità dell'entità servizio o dell'utente master usato per generare il token. Usando identità diverse, è possibile visualizzare le informazioni incorporate in base all'utente di destinazione. Ad esempio, nell'applicazione è possibile chiedere agli utenti di accedere e quindi visualizzare un report che contiene solo le informazioni sulle vendite se l'utente connesso è un dipendente delle vendite.

Se si usa la sicurezza a livello di riga, a volte è possibile escludere l'identità dell'utente (il parametro EffectiveIdentity ). Quando non si usa il parametro EffectiveIdentity , il token ha accesso all'intero database. Questo metodo può essere usato per concedere l'accesso a utenti come amministratori e manager, che dispongono dell'autorizzazione per visualizzare l'intero modello semantico. Tuttavia, non è possibile usare questo metodo in ogni scenario. La tabella seguente elenca i diversi tipi di sicurezza a livello di riga e mostra quale metodo di autenticazione può essere usato senza specificare l'identità di un utente.

La tabella mostra anche le considerazioni e le limitazioni applicabili a ogni tipo di sicurezza a livello di riga.

Tipo di sicurezza a livello di riga È possibile generare un token di incorporamento senza specificare l'ID utente effettivo? Considerazioni e limitazioni
Sicurezza a livello di riga cloud ✔ Utente master
✖ Entità servizio
RDL (report impaginati) ✖ Utente master
✔ Entità servizio
Non è possibile usare un utente master per generare un token di incorporamento per RDL.
Connessione dinamica locale di Analysis Services (AS) ✔ Utente master
✖ Entità servizio
L'utente che genera il token di incorporamento richiede anche una delle autorizzazioni seguenti:
  • Autorizzazioni di amministratore del gateway
  • Autorizzazione di rappresentazione dell'origine dati (ReadOverrideEffectiveIdentity)
  • Connessione dinamica di Azure ad Analysis Services (AS) ✔ Utente master
    ✖ Entità servizio
    L'identità dell'utente che genera il token di incorporamento non può essere sottoposta a override. I dati personalizzati possono essere usati per implementare la sicurezza a livello di riga dinamica o il filtro sicuro.

    Nota: l'entità servizio deve specificare il relativo ID oggetto come identità effettiva (nome utente della sicurezza a livello di riga).
    Single Sign-On (SSO) ✔ Utente master
    ✖ Entità servizio
    È possibile fornire un'identità esplicita (SSO) usando la proprietà del BLOB di identità in un oggetto Identity effettivo
    SSO e cloud RLS ✔ Utente master
    ✖ Entità servizio
    È necessario specificare quanto segue:
  • Identità esplicita (SSO) nella proprietà del BLOB di identità in un oggetto Identity effettivo
  • Identità effettiva (RLS) (nome utente)
  • Nota

    Le entità servizio devono sempre fornire le informazioni seguenti:

    • Identità per qualsiasi elemento con un modello semantico di sicurezza a livello di riga.
    • Per un modello semantico SSO, un'identità di sicurezza a livello di riga efficace con l'identità contestuale (SSO) definita.

    DirectQuery per modelli semantici di Power BI

    Per incorporare un report di Power BI con un modello semantico con una connessione Direct Query a un altro modello semantico di Power BI, eseguire le operazioni seguenti:

    Rinnovare i token prima della scadenza

    I token sono dotati di un limite di tempo. Ciò significa che, dopo aver incorporato un elemento di Power BI, si ha un periodo di tempo limitato per interagire con esso. Per offrire agli utenti un'esperienza continua, rinnovare (o aggiornare) il token prima della scadenza.

    Dashboard e riquadri

    Il token Generate funziona per i report e i modelli semantici. Per generare un token di incorporamento per un dashboard o un riquadro, usare le API GenerateTokenInGroup o Tiles GenerateTokenInGroup versione 1. Queste API generano token per un solo elemento alla volta. Non è possibile generare un token per più elementi.

    Per queste API:

    • Usare il parametro accessLevel per determinare il livello di accesso dell'utente.

      • Visualizza : concedere all'utente le autorizzazioni di visualizzazione.

      • Modifica : concedere all'utente le autorizzazioni di visualizzazione e modifica (si applica solo quando si genera un token di incorporamento per un report).

      • Crea : concedere all'utente le autorizzazioni per creare un nuovo report (si applica solo quando si genera un token di incorporamento per la creazione di un report). Per la creazione del report, è necessario specificare anche il parametro datasetId .

    • Usare il valore booleano allowSaveAs per consentire agli utenti di salvare il report come nuovo report. Questa impostazione è impostata su false per impostazione predefinita e si applica solo quando si genera un token di incorporamento per un report.

    Considerazioni e limitazioni

    • Per motivi di sicurezza, la durata del token di incorporamento viene impostata sulla durata rimanente del token Microsoft Entra usato per chiamare l'API GenerateToken . Pertanto, se si usa lo stesso token Microsoft Entra per generare diversi token di incorporamento, la durata dei token di incorporamento generati sarà più breve con ogni chiamata.

    • Se il modello semantico e l'elemento da incorporare si trovano in due aree di lavoro diverse, l'entità servizio o l'utente master devono essere almeno membri di entrambe le aree di lavoro.

    • Non è possibile creare un token di incorporamento per l'area di lavoro personale.