Share via


Autenticazione e autorizzazione con le raccolte di aree di lavoro di Power BI

Le raccolta di aree di lavoro di Power BI usano le chiavi e i token dell'app per l'autenticazione e l'autorizzazione, invece dell'autenticazione esplicita dell'utente finale. In questo modello è l'applicazione a gestire l'autenticazione e l'autorizzazione degli utenti finali. Se necessario, l'app crea e invia i token dell'app al servizio Microsoft per richiedere il rendering del report richiesto. Questo modello non richiede che l'applicazione usi Azure Active Directory per l'autenticazione e l'autorizzazione dell'utente, sebbene sia possibile.

Importante

Le raccolte di aree di lavoro di Power BI sono deprecate e sono disponibili fino a giugno 2018 o fino alla data specificata nel contratto. È consigliabile pianificare la migrazione a Power BI Embedded per evitare interruzioni nell'applicazione. Per informazioni su come eseguire la migrazione dei dati a Power BI Embedded, vedere Come eseguire la migrazione del contenuto delle raccolte di aree di lavoro di Power BI a Power BI Embedded.

Due modalità di autenticazione

Chiave : è possibile usare chiavi per tutte le chiamate API REST delle raccolte di aree di lavoro di Power BI. Per trovare le chiavi nel portale di Microsoft Azure, selezionare Tutte le impostazioni e quindi Chiavi di accesso. Gestire sempre la chiave come se fosse una password. Queste chiavi sono autorizzate a effettuare qualsiasi chiamata API REST su una raccolta specifica di aree di lavoro.

Per usare una chiave su una chiamata REST, aggiungere l'intestazione di autorizzazione seguente:

Authorization: AppKey {your key}

Token dell'app : i token dell'app vengono usati per tutte le richieste di incorporamento. Sono stati progettati per essere eseguiti sul lato client, quindi sono limitati a un singolo report ed è consigliabile impostare una scadenza.

I token dell'app sono token JSON Web (JWT, JSON Web Token) firmati da una delle chiavi dell'utente.

Il token dell'app può contenere le attestazioni seguenti:

Attestazione Descrizione
ver Versione del token dell'app. La versione corrente è 0.2.0.
Aud Destinatario previsto per il token. Per le raccolte di aree di lavoro di Power BI usare: https://analysis.windows.net/powerbi/api.
iss Stringa che indica l'applicazione che ha rilasciato il token.
type Tipo di token dell'app da creare. L'unico tipo attualmente supportato è embed.
wcn Nome della raccolta di aree di lavoro per cui viene emesso il token.
Wid ID dell'area di lavoro per cui viene emesso il token.
liberarsi ID del report per cui viene emesso il token.
nome utente (facoltativo) Usato con la sicurezza a livello di riga, username è una stringa che può semplificare l'identificazione dell'utente quando si applicano le regole di sicurezza a livello di riga.
roles (facoltativa) Stringa contenente i ruoli da selezionare quando si applicano le regole di sicurezza a livello di riga. Se si passa più di un ruolo, è consigliabile passarli come matrice di stringhe.
scp (facoltativo) Stringa contenente gli ambiti delle autorizzazioni. Se si passa più di un ruolo, è consigliabile passarli come matrice di stringhe.
exp (facoltativa) Indica l'ora di scadenza del token. Il valore deve essere passato come timestamp Unix.
nbf (facoltativa) Indica l'ora di inizio della validità del token. Il valore deve essere passato come timestamp Unix.

Un token di app di esempio ha questo aspetto:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXIiOiIwLjIuMCIsInR5cGUiOiJlbWJlZCIsIndjbiI6Ikd1eUluQUN1YmUiLCJ3aWQiOiJkNGZlMWViMS0yNzEwLTRhNDctODQ3Yy0xNzZhOTU0NWRhZDgiLCJyaWQiOiIyNWMwZDQwYi1kZTY1LTQxZDItOTMyYy0wZjE2ODc2ZTNiOWQiLCJzY3AiOiJSZXBvcnQuUmVhZCIsImlzcyI6IlBvd2VyQklTREsiLCJhdWQiOiJodHRwczovL2FuYWx5c2lzLndpbmRvd3MubmV0L3Bvd2VyYmkvYXBpIiwiZXhwIjoxNDg4NTAyNDM2LCJuYmYiOjE0ODg0OTg4MzZ9.v1znUaXMrD1AdMz6YjywhJQGY7MWjdCR3SmUSwWwIiI

Dopo la decodifica avrà un aspetto simile al seguente:

Header

{
    typ: "JWT",
    alg: "HS256:
}

Body

{
  "ver": "0.2.0",
  "wcn": "SupportDemo",
  "wid": "ca675b19-6c3c-4003-8808-1c7ddc6bd809",
  "rid": "96241f0f-abae-4ea9-a065-93b428eddb17",
  "iss": "PowerBISDK",
  "aud": "https://analysis.windows.net/powerbi/api",
  "exp": 1360047056,
  "nbf": 1360043456
}

All'interno degli SDK sono disponibili metodi che semplificano la creazione di token di app. Ad esempio, per .NET è possibile esaminare la classe Microsoft.PowerBI.Security.PowerBIToken e i metodi CreateReportEmbedToken.

Per l'SDK di .NET, è possibile fare riferimento ad Ambiti.

Ambiti

Quando si usano token di incorporamento, può essere opportuno limitare l'uso delle risorse a cui si concede l'accesso. Per questo motivo, è possibile generare un token con autorizzazioni con ambito.

Di seguito sono riportati gli ambiti disponibili per le raccolte di aree di lavoro di Power BI.

Scope Descrizione
Dataset.Read Concede l'autorizzazione per leggere il set di dati specificato.
Dataset.Write Concede l'autorizzazione per scrivere il set di dati specificato.
Dataset.ReadWrite Concede l'autorizzazione per leggere e scrivere nel set di dati specificato.
Report.Read Concede l'autorizzazione per visualizzare il report specificato.
Report.ReadWrite Concede l'autorizzazione per visualizzare e modificare il report specificato.
Workspace.Report.Create Concede l'autorizzazione per creare un nuovo report nell'area di lavoro specificata.
Workspace.Report.Copy Concede l'autorizzazione per clonare un report esistente nell'area di lavoro specificata.

È possibile specificare più ambiti mediante uno spazio tra gli ambiti come nel caso seguente.

string scopes = "Dataset.Read Workspace.Report.Create";

Attestazioni e ambiti necessari

scp: {scopesClaim} scopesClaim può essere una stringa o una matrice di stringhe, che annota le autorizzazioni concesse nelle risorse dell'area di lavoro (Report, Dataset, e così via)

Un token decodificato, con ambiti definiti, sarebbe simile al seguente:

Header

{
    typ: "JWT",
    alg: "HS256:
}

Body

{
  "ver": "0.2.0",
  "wcn": "SupportDemo",
  "wid": "ca675b19-6c3c-4003-8808-1c7ddc6bd809",
  "rid": "96241f0f-abae-4ea9-a065-93b428eddb17",
  "scp": "Report.Read",
  "iss": "PowerBISDK",
  "aud": "https://analysis.windows.net/powerbi/api",
  "exp": 1360047056,
  "nbf": 1360043456
}

Operazioni e ambiti

Operazione Risorsa di destinazione Autorizzazioni del token
Creare (in memoria) un nuovo report basato su un set di dati. Set di dati Dataset.Read
Creare (in memoria) un nuovo report basato su un set di dati e salvarlo. Set di dati * Dataset.Read
* Workspace.Report.Create
Visualizzare ed esplorare/modificare (in memoria) un report esistente. Report.Read implica Dataset.Read. Report.Read non consente il salvataggio delle modifiche. Report Report.Read
Modificare e salvare un report esistente. Report Report.ReadWrite
Salvare una copia di un report (Salva con nome). Report * Report.Read
* Workspace.Report.Copy

Funzionamento del flusso

  1. È necessario copiare le chiavi API nell'applicazione. È possibile ottenere le chiavi nel portale di Azure.

    Dove trovare le chiavi API nel portale di Azure

  2. Il token esegue l'asserzione di un'attestazione e ha una scadenza.

    Flusso di token di app - Il token esegue l'asserzione di un'attestazione

  3. Con le chiavi di accesso API si accede al token.

    Flusso di token di app - Il token viene firmato

  4. L'utente richiede di visualizzare un report.

    Flusso di token di app - L'utente richiede di visualizzare un report

  5. Il token viene convalidato con chiavi di accesso API.

    Flusso di token di app - Il token viene convalidato

  6. Le raccolte di aree di lavoro di Power BI inviano un report all'utente.

    Flusso di token di app - Il servizio invia un report all'utente

Dopo l'invio di un report all'utente dalle raccolte di aree di lavoro di Power BI, l'utente può visualizzare il report nell'app personalizzata. Ad esempio, se è stato importato l'esempio Analyzing Sales Data PBIX, l'app Web di esempio sarà simile alla seguente:

Esempio di report incorporato in un'applicazione

Vedere anche

CreateReportEmbedToken
Esempio introduttivo delle raccolte di aree di lavoro di Power BI
Scenari comuni delle raccolte di aree di lavoro di Microsoft Power BI
Introduzione alle raccolte di aree di lavoro di Microsoft Power BI
Repository Git PowerBI-CSharp

Altre domande? Provare la community di Power BI