Effectieve identiteit instellen

Voltooid

Wanneer u een insluittoken genereert, kunt u een effectieve identiteit instellen wanneer u werkt met het scenario Voor uw klanten .

Uw app-logica maakt eerst een lijst met een of meer effectiveidentity objecten. Elk object kan de volgende parameters bevatten.

  • Datasets: (Vereist) Een lijst met gegevensset-ID's.

  • Username: (Optioneel) Voor intern gehoste modellen is het een tekstwaarde die moet worden geretourneerd door de USERNAME functie of USERPRINCIPALNAME . Voor extern gehoste modellen is dit de gebruikersnaam om verbinding te maken met het model.

  • Roles: (Optioneel) Lijst met rolnamen.

  • CustomData: (Optioneel) Een tekstwaarde die door de CUSTOMDATA functie moet worden geretourneerd.

  • IdentityBlob: (Optioneel) Een Azure AD toegangstoken dat wordt gebruikt voor identiteit op basis van tokens met een DirectQuery-verbinding met een Microsoft Azure SQL Database. Hiermee kunt u gegevensmachtigingen afdwingen zonder gegevensmodel-RLS. Dit onderwerp wordt verderop in deze les beschreven.

U kunt een lijst met gegevenssets doorgeven omdat het insluittoken wordt gebruikt voor het insluiten van veel Power BI-artefacten die verbinding maken met verschillende gegevenssets of omdat een dashboard bestaat uit tegels die verbinding maken met meerdere gegevenssets. Wanneer een lijst met meerdere rollen wordt doorgegeven, worden alle rollen tegelijkertijd afgedwongen, wat betekent dat de gebruiker de samenvoeging kan bekijken van de gegevens die de rollen verlenen.

In het volgende voorbeeld wordt een lijst gemaakt die één effectiveidentity object bevat. De gebruikersnaam van de huidige app-gebruiker, de rol Regio en de eerste (en misschien alleen) gegevensset die in de werkruimte is gevonden, worden doorgegeven:

// Create effective identity for the first dataset
var datasetId = datasets[0].Id.ToString();
var effectiveIdentities = new List<EffectiveIdentity>() {
	new EffectiveIdentity(
		username: userProfile.Username,
		roles: new List<string> {"Region"},
		datasets: new List<string> {datasetId})
};

Als u vervolgens een insluittoken wilt genereren, geeft de app de lijst door aan de identities parameter van de GenerateTokenRequestV2 methode. Andere methoden genereren insluittokens, elk zodat u een lijst met effectieve identiteiten kunt doorgeven.

// Bundle token requests for the reports, datasets, and the workspace
var tokenRequest = new GenerateTokenRequestV2(
    reports: reportTokenRequests,
    datasets: datasetTokenRequests,
    targetWorkspaces: workspaceRequests,
    identities: effectiveIdentities
) ;

In de volgende onderwerpen vindt u meer informatie over het instellen van een effectieve identiteit voor elk type Power BI-gegevensset.

Effectieve identiteit instellen voor intern gehoste importtabellen

Houd rekening met de volgende parameters wanneer u een effectieve identiteit doorgeeft om verbinding te maken met een intern gehost model met importtabellen:

  • Er moet ten minste één rol worden gedefinieerd in het model.

  • De gebruikersnaam moet worden doorgegeven, maar het hoeft geen echte gebruikersnaam te zijn. De waarde die wordt doorgegeven, wordt geretourneerd door de USERNAME functie of USERPRINCIPALNAME .

  • Ten minste één rol moet worden gedefinieerd door de effectieve identiteit.

Effectieve identiteit instellen voor intern gehoste DirectQuery-tabellen

Als u een effectieve identiteit wilt instellen voor intern gehoste DirectQuery-tabellen, gebruikt u dezelfde richtlijnen voor intern gehoste importtabellen.

Daarnaast kunt u identiteit op basis van tokens gebruiken. Met identiteit op basis van tokens kunt u de effectieve identiteit voor een insluittoken opgeven met behulp van een Azure AD toegangstoken, maar alleen wanneer de bron een Azure SQL Database is. Wanneer u het insluittoken genereert, geeft uw app het toegangstoken door aan de IdentityBlob parameter. In dit geval hoeft u geen waarde door te geven aan de username parameter.

Voor het gebruik van identiteit op basis van tokens moet de eigenaar van de gegevensset de gegevensbron instellen voor het gebruik van de OAuth2-referenties van de eindgebruikers. Op deze manier gebruikt Power BI de gebruikersnaam van de effectieve identiteit om verbinding te maken met de gegevensbron. Dit betekent dat de database RLS kan afdwingen in plaats van het gegevensmodel.

Zie Beveiligingsfuncties in Power BI Embedded voor meer informatie over identiteit op basis van tokens.

Effectieve identiteit instellen voor Azure Analysis Services

Als u een effectieve identiteit wilt instellen bij het gebruik van een Azure Analysis Services-model, moet u ervoor zorgen dat de insluitidentiteit (service-principal of hoofdgebruikersaccount) ten minste leesmachtigingen voor het model heeft.

Wanneer er geen effectieve identiteit wordt doorgegeven en het insluitend identiteitsaccount een Analysis Services-beheerder is, kunnen alle app-gebruikers alle modelgegevens bekijken. Wanneer het ingesloten identiteitsaccount geen Analysis Services-beheerder is, wordt de zichtbaarheid van gegevens beperkt door de toegewezen rollen van dat account.

Notitie

Wanneer u een service-principal gebruikt met een Azure Analysis Services model, moet de service-principal machtigingen voor Azure Analysis Services exemplaar hebben. Het gebruik van een beveiligingsgroep die de service-principal voor dit doel bevat, werkt niet.

Houd rekening met de volgende parameters wanneer u een effectieve identiteit doorgeeft om te werken met een Azure Analysis Services-model:

  • Er moet ten minste één rol worden gedefinieerd in het model.

  • De gebruikersnaam moet een hoofdgebruikersaccount (UPN-indeling) of een service-principal (ObjectID) zijn.

  • Wanneer er geen rollen deel uitmaken van de effectieve identiteit, worden rollen toegepast die zijn toegewezen aan het effectieve identiteitsaccount.

  • De USERNAME functie retourneert de gebruikersnaam van de effectieve identiteit.

Effectieve identiteit instellen voor SQL Server Analysis Services

Als u een effectieve identiteit wilt instellen bij het gebruik van een SQL Server Analysis Services-model, moet u ervoor zorgen dat de referenties voor de gatewaygegevensbron zijn ingesteld als Analysis Services-beheerder.

De effectieve identiteit (service-principal of hoofdgebruikersaccount) moet een gatewaybeheerder zijn of ReadOverrideEffectiveIdentity-machtigingen hebben voor de gatewaygegevensbron. U kunt deze machtiging alleen instellen met behulp van de Power BI REST API.

Wanneer er geen effectieve identiteit wordt doorgegeven en het insluitend identiteitsaccount een Analysis Services-beheerder is, kunnen alle gebruikers alle modelgegevens bekijken. Wanneer het ingesloten identiteitsaccount geen Analysis Services-beheerder is, wordt de zichtbaarheid van gegevens beperkt door de toegewezen rollen van dat account.

Houd rekening met de volgende parameters wanneer u een effectieve identiteit doorgeeft om te werken met een SQL Server Analysis Services-model:

  • Er moet ten minste één rol worden gedefinieerd in het model.

  • De gebruikersnaam moet een Windows-account zijn, met de UPN- of DOMEIN\gebruikersnaam-indeling.

  • De gebruikersnaam moet leesmachtigingen hebben voor het model.

  • Wanneer er geen rollen deel uitmaken van de effectieve identiteit, worden rollen toegepast die zijn toegewezen aan de gebruikersnaam van de effectieve identiteit.

  • De USERNAME functie retourneert de gebruikersnaam van de effectieve identiteit.

  • Het gebruik van de CUSTOMDATA functie wordt niet ondersteund.

Gegevenssettypen vergelijken

In de volgende tabel worden de effectieve instellingen voor identiteitsparameters voor de vier typen gegevenssets vergeleken.

Parameter Intern gehoste importtabellen Intern gehoste DirectQuery-tabellen Azure Analysis Services SQL Server Analysis Services
Gebruikersnaam Elke tekstwaarde die wordt geretourneerd door de USERNAME functies en USERPRINCIPALNAME Elke tekstwaarde die wordt geretourneerd door de USERNAME functies en USERPRINCIPALNAME Deze wordt gebruikt om te verifiëren bij de service. Het moet een hoofdgebruikersaccount (UPN-indeling) of een service-principal (ObjectID) zijn. Deze wordt gebruikt om te verifiëren bij de service. Het moet een Windows-account zijn met upn- of domein\gebruikersnaam-indeling.
CustomData Ondersteund Ondersteund Ondersteund Niet ondersteund
Rollen Er moet ten minste één rol worden gedefinieerd door de effectieve identiteit Er moet ten minste één rol worden gedefinieerd door de effectieve identiteit Wanneer er geen rol wordt doorgegeven, worden rollen toegepast die zijn toegewezen aan het effectieve identiteitsaccount Wanneer er geen rol wordt doorgegeven, worden rollen toegepast die zijn toegewezen aan het effectieve identiteitsaccount
IdentityBlob No Ja, wanneer de brongegevens een Azure SQL database zijn (die RLS-vereisten moeten afdwingen) No Nee
Aanvullende informatie Vereist een gateway. Het effectieve identiteitsaccount moet een gatewaybeheerder zijn.