Definir identidade efetiva

Concluído

Ao gerar um token de incorporação, você pode definir uma identidade efetiva ao trabalhar com o cenário Para seus clientes .

A lógica do aplicativo primeiro criará uma lista de um ou mais effectiveidentity objetos. Cada objeto pode incluir os seguintes parâmetros.

  • Datasets: (Obrigatório) Uma lista de DatasetIDs.

  • Username: (Opcional) Para modelos hospedados internamente, é um valor de texto a ser retornado pela USERNAME função ou USERPRINCIPALNAME . Para modelos hospedados externamente, é o nome de utente para se conectar ao modelo.

  • Roles: (Opcional) Lista de nomes de funções.

  • CustomData: (Opcional) Um valor de texto a ser retornado pela CUSTOMDATA função.

  • IdentityBlob: (Opcional) Um Azure AD token de acesso utilizado para identidade baseada em token com uma conexão DirectQuery com um Microsoft Azure Banco de Dados SQL. Ele permite que você imponha permissões de dados sem RLS modelo de dados. Descreveremos isto tópico mais adiante nesta unidade.

Você pode passar uma lista de conjuntos de dados porque o token de incorporação será utilizado para incorporar muitos Power BI artefatos que se conectam a conjuntos de dados diferentes ou porque um painel é composto por blocos que se conectam a vários conjuntos de dados. Quando uma lista de várias funções é passada, todas as funções são impostas simultaneamente, o que significa que o utente pode exibir a união dos dados que as funções concedem.

O exemplo a seguir cria uma lista que contém um effectiveidentity objeto. Ele passa o nome de utente do utente atual do aplicativo, a função Região e o primeiro (e talvez único) conjunto de dados encontrado no espaço de trabalho:

// 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})
};

Em seguida, para gerar um token de incorporação, o aplicativo passará a lista para o identities parâmetro do GenerateTokenRequestV2 método. Outros métodos geram tokens de incorporação, cada um permitindo que você passe uma lista de identidades efetivas.

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

Os tópicos a seguir fornecem mais detalhes sobre como definir uma identidade efetiva para cada Power BI tipo de conjunto de dados.

Definir identidade efetiva para tabelas de importação hospedadas internamente

Considere os seguintes parâmetros ao passar a identidade efetiva para se conectar a um modelo hospedado internamente com tabelas de importação:

  • Pelo menos uma função deve ser definida no modelo.

  • O nome de utente deve ser passado, mas não precisa ser um nome de utente real. O valor que é passado é retornado pela USERNAME função ou USERPRINCIPALNAME .

  • Pelo menos uma função deve ser definida pela identidade efetiva.

Definir identidade efetiva para tabelas DirectQuery hospedadas internamente

Para definir a identidade efetiva para tabelas DirectQuery hospedadas internamente, você usará a mesma orientação para tabelas de importação hospedadas internamente.

Além disso, você pode usar a identidade baseada em token. A identidade baseada em token permite especificar a identidade efetiva para um token de incorporação usando um token de Azure AD acesso, mas somente quando a origem é um Banco de Dados SQL do Azure. Quando você estiver a gerar o token de incorporação, seu aplicativo passará o token de acesso para o IdentityBlob parâmetro. Nesse caso, não é necessário passar um valor para o username parâmetro.

O uso da identidade baseada em token requer que o proprietário do conjunto de dados configure a origem de dados para usar as credenciais OAuth2 dos utilizadores finais. Desta forma, Power BI usa o nome de utente de identidade efetiva para se conectar à origem de dados. Isso significa que o banco de dados pode impor RLS em vez do modelo de dados.

Para obter mais informações sobre identidade baseada em token, consulte Recursos de segurança em Power BI Embedded.

Definir identidade efetiva para o Azure Analysis Services

Para definir a identidade efetiva ao usar um modelo do Azure Analysis Services, você precisa certificar-se de que a identidade de incorporação (entidade de serviço ou conta de utente mestre) tenha pelo menos permissão de leitura no modelo.

Quando nenhuma identidade efetiva é passada e a conta de identidade incorporada é um administrador do Analysis Services, todos os utilizadores do aplicativo podem exibir todos os dados do modelo. Quando a conta de identidade incorporada não é um administrador do Analysis Services, a visibilidade dos dados é limitada pelas funções atribuídas a essa conta.

Nota

Quando você estiver a usar a entidade de serviço com um modelo do Azure Analysis Services, a entidade de serviço deve ter permissões de instância do Azure Analysis Services. Usar um grupo de segurança que contenha a entidade de serviço para essa finalidade não funciona.

Considere os seguintes parâmetros ao passar identidade efetiva para trabalhar com um modelo do Azure Analysis Services:

  • Pelo menos uma função deve ser definida no modelo.

  • O nome de utente deve ser uma conta de utente mestre (formato UPN) ou uma entidade de serviço (ObjectID).

  • Quando nenhuma função faz parte da identidade efetiva, as funções atribuídas à conta de identidade efetiva são aplicadas.

  • A USERNAME função retornará o nome de utente de identidade efetiva.

Definir identidade efetiva para o SQL Server Analysis Services

Para definir uma identidade efetiva ao usar um modelo do SQL Server Analysis Services, você precisa certificar-se de que as credenciais da origem de dados do gateway estão definidas como um administrador do Analysis Services.

A identidade efetiva (entidade de serviço ou conta de utente mestre) deve ser um administrador de gateway ou ter permissões ReadOverrideEffectiveIdentity na origem de dados do gateway. Você pode definir essa permissão somente usando a Power BI API REST.

Quando nenhuma identidade efetiva é passada e a conta de identidade incorporada é um administrador do Analysis Services, todos os utilizadores podem exibir todos os dados do modelo. Quando a conta de identidade incorporada não é um administrador do Analysis Services, a visibilidade dos dados é limitada pelas funções atribuídas a essa conta.

Considere os seguintes parâmetros ao passar identidade efetiva para trabalhar com um modelo do SQL Server Analysis Services:

  • Pelo menos uma função deve ser definida no modelo.

  • O nome de utente deve ser uma conta do Windows, usando o formato UPN ou DOMÍNIO\nome de utente.

  • O nome de utente deve ter permissão de leitura no modelo.

  • Quando nenhuma função faz parte da identidade efetiva, as funções atribuídas ao nome de utente da identidade efetiva são aplicadas.

  • A USERNAME função retornará o nome de utente de identidade efetiva.

  • O uso da CUSTOMDATA função não é suportado.

Comparar tipos de conjuntos de dados

A tabela a seguir compara as configurações efetivas de parâmetros de identidade para os quatro tipos de conjunto de dados.

Parâmetro Tabelas de importação hospedadas internamente Tabelas DirectQuery hospedadas internamente Azure Analysis Services SQL Server Analysis Services
Nome de Utilizador Qualquer valor de USERNAME texto que será retornado pelas funções e USERPRINCIPALNAME Qualquer valor de USERNAME texto que será retornado pelas funções e USERPRINCIPALNAME Ele é utilizado para autenticar com o serviço. Deve ser uma conta de utente mestre (formato UPN) ou uma entidade de serviço (ObjectID). Ele é utilizado para autenticar com o serviço. Deve ser uma conta do Windows, usando o formato UPN ou DOMÍNIO\nome de utente.
CustomData Suportado Suportado Suportado Não suportado
Funções Pelo menos uma função deve ser definida pela identidade efetiva Pelo menos uma função deve ser definida pela identidade efetiva Quando nenhuma função é passada, as funções atribuídas à conta de identidade efetiva são aplicadas Quando nenhuma função é passada, as funções atribuídas à conta de identidade efetiva são aplicadas
IdentityBlob Não Sim, quando os dados de origem são um Banco de Dados SQL do Azure (que deve impor os requisitos de RLS) Não Não
Informações adicionais Requer um gateway. A conta de identidade efetiva deve ser um administrador de gateway.