Condividi tramite


Generare un token di incorporamento

SI APPLICA A: I dati sono di proprietà dell'app I dati sono di proprietà dell'utente

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

L'API di generazione del token usa una singola identità (un utente master o un'entità servizio) per generare un token per un singolo utente, in base alle credenziali dell'utente nell'app (identità valida).

Dopo aver eseguito l'autenticazione, è possibile accedere ai dati rilevanti.

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 GenerateTokenInGroup V1 e i riquadri GenerateTokenInGroup.

Protezione dei dati

Se si gestiscono 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 relativa alla sicurezza a livello di riga alla fine di questo articolo.

Autorizzazioni dei token e sicurezza

La sezione GenerateTokenRequest delle API di generazione di token descrive le autorizzazioni per i 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 Sicurezza a livello di riga, l’identità usata può essere diversa dall’identità servizio o dall'utente master usati per generare il token. Usando varie identità, è possibile visualizzare le informazioni incorporate in base all'utente di destinazione. Nell'applicazione è ad esempio possibile chiedere agli utenti di eseguire l'accesso e di visualizzare un report che contiene solo le informazioni sulle vendite se l'utente connesso è un dipendente responsabile delle vendite.

Se si usa la funzionalità Sicurezza a livello di riga, a volte è possibile tralasciare l'identità dell'utente, vale a dire 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 ad alcuni utenti, ad esempio amministratori e responsabili, che dispongono dell’autorizzazione per visualizzare l'intero modello semantico. Questo metodo non è tuttavia possibile in ogni scenario. La tabella seguente elenca i diversi tipi di sicurezza a livello di riga e il metodo di autenticazione che è possibile usare senza specificare l'identità di un utente.

La tabella contiene 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 valido? 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 ad Analysis Services (AS) locale ✔ Utente master
✖ Entità servizio
Per l'utente che genera il token di incorporamento è necessaria anche una delle autorizzazioni seguenti:
  • Autorizzazioni di amministratore del gateway
  • Autorizzazione per rappresentare l'origine dati (ReadOverrideEffectiveIdentity)
  • Connessione dinamica ad Azure 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 protetto.

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

    L'entità servizio deve sempre specificare le informazioni seguenti:

    • Un'identità per qualsiasi elemento con un modello semantico per la 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 Genera funziona per i report e i modelli semantici. Per generare un token di incorporamento per un dashboard o un riquadro, usare GenerateTokenInGroup di versione 1 o le API dei riquadri GenerateTokenInGroup. 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: concede all'utente le autorizzazioni di visualizzazione.

      • Modifica: concede all'utente le autorizzazioni di visualizzazione e modifica. Si applica solo quando viene generato un token di incorporamento per un report.

      • Crea: concede all'utente le autorizzazioni di creazione di un nuovo report. Si applica solo quando viene generato un token di incorporamento per la creazione di un report. Per la creazione di 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 falso 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.