Condividi tramite


Sicurezza a livello di oggetto

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

Questo articolo illustra come incorporare il contenuto di Power BI che usa la sicurezza a livello di oggetto in uno scenario I dati sono di proprietà dell'app (incorporamento per i clienti) di Power BI.

In questo scenario, il fornitore di software indipendente ha una tabella con dati sensibili e metadati che vuole nascondere ai clienti del report.

Per altre informazioni sulla sicurezza a livello di oggetto, vedere Sicurezza a livello di oggetto (OLS).

Prerequisiti

Questo articolo presuppone che si disponga di un report che usa la sicurezza a livello di oggetto e che si vuole incorporarlo in un'app. Per creare un report che usa OLS, vedere Sicurezza a livello di oggetto (OLS).

Il report può essere compilato usando uno dei modelli seguenti:

Incorporare un report che usa la sicurezza a livello di oggetto

Il processo di generazione di token di incorporamento per gli elementi che usano la sicurezza a livello di oggetto è uguale a quello per la sicurezza a livello di riga statica. Sono necessari il ruolo e il nome utente.

Se il report da incorporare usa uno degli scenari seguenti, potrebbe essere necessario eseguire alcuni passaggi aggiuntivi:

L'esempio seguente illustra come generare un token per nascondere una tabella con informazioni riservate tramite la sicurezza a livello di oggetto:

public EmbedToken GetEmbedToken(Guid reportId, IList<Guid> datasetIds, [Optional] Guid targetWorkspaceId)
    {
        PowerBIClient pbiClient = this.GetPowerBIClient();

       // Defines the user identity and roles.
        var olsIdentity = new EffectiveIdentity(
            username: "All",
            roles: new List<string>{ "SensitiveTableOLS" }, // Role created to hide a table that has sensitive information
            datasets: new List<string>{ datasetId.ToString()}
        );
       
        // Create a request for getting an embed token for the OLS identity defined above
        var tokenRequest = new GenerateTokenRequestV2(
            reports: new List<GenerateTokenRequestV2Report>() { new GenerateTokenRequestV2Report(reportId) },
            datasets: datasetIds.Select(datasetId => new GenerateTokenRequestV2Dataset(datasetId.ToString())).ToList(),
            targetWorkspaces: targetWorkspaceId != Guid.Empty ? new List<GenerateTokenRequestV2TargetWorkspace>() { new GenerateTokenRequestV2TargetWorkspace(targetWorkspaceId) } : null,
            identities: new List<EffectiveIdentity> { olsIdentity }
        );

        // Generate an embed token
        var embedToken = pbiClient.EmbedToken.GenerateToken(tokenRequest);

        return embedToken;
    }

Considerazioni e limitazioni

Vedere le restrizioni per i modelli di sicurezza a livello di oggetto.

Sicurezza a livello di oggetto in Azure Analysis Services

Altre domande? Provare a rivolgersi alla Community di Power BI.