Incorporare un rapporto con autenticazione basata su token (SSO)

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

L'identità basata su token consente a un ISV di usare un token di accesso Microsoft Entra per passare l'identità di un cliente a un database SQL di Azure gestito nel tenant del cliente.

I clienti ISV che mantengono e gestiscono i dati nel database SQL di Azure possono proteggere i dati nel tenant durante l'integrazione con Power BI Embedded nell'app ISV.

Quando si genera il token di incorporamento, specificare l'identità dell'utente in Azure SQL passando il token di accesso Microsoft Entra dell'utente per il server SQL di Azure. Il token di accesso viene usato quindi per eseguire il pull solo dei dati rilevanti per l'utente da SQL di Azure, per la sessione specifica.

Disegno schematico che mostra l'ISV che passa l'identità effettiva al tenant SQL e il cliente che restituisce un token di incorporamento.

Importante

Limitazioni SSO di App-owns-data:

  • Negli scenari app-owns-data (autenticazione dell'entità servizio o dell'utente master), l'accesso Single Sign-On per le origini dati DirectQuery è supportato solo con database SQL di Azure.
  • Quando si genera un token di incorporazione con SSO, è necessario fornire un oggetto IdentityBlob per ogni origine dati con SSO abilitato. L'omissione di IdentityBlob causa l'esito negativo della generazione di token o dell'esecuzione di query.

Configurare l'identità basata su token

L'identità basata su token funziona solo per i modelli DirectQuery su una capacità connessa a un database SQL di Azure configurato per consentire l'autenticazione di Microsoft Entra. L'origine dati del modello semantico deve essere configurata per usare le credenziali OAuth2 degli utenti finali, per usare un'identità basata su token. Ulteriori informazioni sull'autenticazione di Microsoft Entra per il database SQL di Azure.

Prima di configurare l'identità basata su token, verificare:

  • L'origine dati DirectQuery è database SQL di Azure (l'unica origine dati SSO supportata per gli scenari app-owns-data).
  • Il database SQL di Azure è configurato per l'autenticazione Microsoft Entra.
  • Si dispone di un token di accesso utente di Microsoft Entra per il server SQL di Azure da passare come IdentityBlob.
  1. Nel portale di Power BI, selezionare Modello semantico > Altre opzioni (tre puntini) > Impostazioni > Credenziali origine dati > Modifica credenziali.

    Screenshot dell'opzione delle impostazioni del set di dati nel portale di Power BI.

  2. Selezionare la casella dell'opzione OAuth2.

    Screenshot della configurazione del server SQL di Azure.

Generare un token di identità

Per creare un token di accesso per Azure SQL, l'app deve avere il permesso delegato "Accesso al Database SQL e Data Warehouse di Azure" per l'API di database SQL di Azure nella configurazione di registrazione dell'app in Microsoft Entra nel portale di Azure.

Schermata delle impostazioni di configurazione per la registrazione dell'app Microsoft Entra nel portale di Azure. Autenticare e ottenere un token per l'utente dall'endpoint di Azure AD v2 per il seguente ambito: https://database.windows.net/.default

Per informazioni, vedere gli esempi di codice MSAL seguenti:

Generare token di incorporazione

Per incorporare un report con identità basata su token, generare un token di incorporamento contenente l'identità di base del token dell'utente ISV desiderato. Vedere gli esempi seguenti per la generazione di token di incorporamento per scenari diversi.

Note

Devi includere una voce con un valido per ogni sorgente dati Azure SQL con SSO abilitato. Se manca identityBlobun'origine dati abilitata per l'accesso Single Sign-On, la chiamata di generazione del token di incorporamento avrà esito negativo o l'esecuzione della query restituirà un errore.

{
  "datasets": [
    {
      "id": "66ba5010-xxxx-xxxx-xxxx-f2bf0125abeb",
    }
  ],
  "reports": [
    {
      "allowEdit": false,
      "id": "9e6da541-xxxx-xxxx-xxxx-7d9442827cce"
    }
  ],
  "datasourceIdentities": [
    {
      "identityBlob": "eyJ…",
      "datasources": [
        {
          "datasourceType": "Sql",
          "connectionDetails": {
            "server": "YourServerName.database.windows.net",
            "database": "YourDataBaseName"
          }
        }
      ]
    }
  ]
}

L'esempio seguente mostra un report di Power BI incorporato con SSO e RLS applicato al set di dati:

Screenshot di un report di Power BI incorporato con SSO e RLS applicato al set di dati.