Sikkerhet på objektnivå
GJELDER FOR: Appen eier data Brukeren eier data
Denne artikkelen forklarer hvordan du bygger inn Power BI-innhold som bruker OLS i et Power BI App eier data (innebygging for kundene) scenario.
I dette scenarioet har ISV en tabell med sensitive data og metadata som de ønsker å skjule for rapportkundene.
Hvis du vil ha mer informasjon om OLS, kan du gå til sikkerhet på objektnivå (OLS).
Forutsetning
Denne artikkelen forutsetter at du har en rapport som bruker OLS, og at du vil bygge den inn i en app. Hvis du vil opprette en rapport som bruker OLS, kan du se Sikkerhet på objektnivå (OLS).
Rapporten kan bygges ved hjelp av følgende modeller:
- Sky-OLS
- Direkte tilkoblet rapport til Azure Analysis Services med OLS-roller
- Direktetilkoblet rapport til SQL Server Analysis Services med OLS-roller
Bygge inn en rapport som bruker sikkerhet på objektnivå
Prosessen med å generere innebyggingstokener for elementer som bruker OLS, er den samme som for statisk RLS. Du trenger rollen og brukernavnet.
Hvis rapporten du vil bygge inn, bruker ett av følgende scenarioer, må du kanskje utføre noen ekstra trinn:
- Generering av SKY-OLS-token
- GENERERING AV SQL Server Analysis Services (SSAS)-token
- Generering av Microsoft Entra ID-token
Følgende eksempel viser hvordan du genererer et token for å skjule en tabell med sensitiv informasjon ved hjelp av OLS:
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;
}
Hensyn og begrensninger
Se begrensninger for OLS-modeller.
Relatert innhold
Sikkerhet på objektnivå i Azure Analysis Services
Har du flere spørsmål? Prøv å spørre Power BI-fellesskap.