Definir identidade efetiva
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 pelaUSERNAME
função ouUSERPRINCIPALNAME
. 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 pelaCUSTOMDATA
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 ouUSERPRINCIPALNAME
.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. |