Partilhar via


Incorporar conteúdo do Power BI com entidade de serviço e um certificado

A autenticação baseada em certificado permite que você seja autenticado pelo Microsoft Entra ID com um certificado de cliente. O certificado de cliente pode estar em um dispositivo Windows, Android ou iOS, ou o certificado de cliente pode ser mantido em um Cofre de Chaves do Azure.

O uso desse método de autenticação permite gerenciar certificados de um local central usando a autoridade de certificação (CA) para rotação ou revogação.

Você pode saber mais sobre certificados no Microsoft Entra ID na página Fluxos de credenciais do cliente do GitHub.

Método

  1. Incorpore seu conteúdo com a entidade de serviço.

  2. Crie um certificado.

  3. Configure a autenticação de certificado.

  4. Obtenha o certificado do Cofre da Chave do Azure.

  5. Autentique-se usando a entidade de serviço e um certificado.

Etapa 1 - Incorporar seu conteúdo com a entidade de serviço

Para incorporar seu conteúdo com uma entidade de serviço, siga as instruções em Incorporar conteúdo do Power BI com entidade de serviço e um segredo de aplicativo.

Nota

Se você já tiver conteúdo incorporado usando uma entidade de serviço, ignore esta etapa e avance para a etapa 2.

Etapa 2 - Criar um certificado

Você pode obter um certificado de uma Autoridade de Certificação confiável ou gerar um certificado por conta própria.

Esta seção descreve a criação de um certificado usando o Cofre de Chaves do Azure e o download do arquivo .cer , que contém a chave pública.

  1. Faça logon no Microsoft Azure.

  2. Procure e selecione o link Cofres de chaves.

    Captura de tela da janela do portal do Azure, que mostra um link para o serviço de cofre de chaves na lista Serviços.

  3. Selecione o cofre de chaves ao qual deseja adicionar um certificado.

    Captura de ecrã da janela do portal do Azure, que mostra uma lista de cofres de chaves desfocados na lista Cofres de chaves.

  4. Selecione Certificados.

    Captura de ecrã da janela do portal do Azure, que mostra a página Cofres de chaves com o item Certificados realçado.

  5. Selecione Gerar/Importar.

    Captura de ecrã da janela do portal do Azure, que mostra o painel Certificado com o item Gerar/Importar realçado.

  6. Configure os campos Criar um certificado da seguinte maneira:

    • Método de Criação de Certificados - Geral

    • Nome do certificado - Insira um nome para o certificado

    • Tipo de Autoridade de Certificação (CA) - Certificado autoassinado

    • Assunto - Um nome distinto X.500

    • Nomes DNS - 0 nomes DNS

    • Período de validade (em meses) - Insira o prazo de validade do certificado

    • Tipo de conteúdo - PKCS #12

    • Tipo de ação vitalícia - Renovar automaticamente com uma determinada percentagem de tempo de vida

    • Percentagem de Vida Útil - 80

    • Configuração Avançada de Política - Não configurada

  7. Selecione Criar. O certificado recém-criado está desativado por padrão. Pode levar até cinco minutos para ser ativado.

  8. Selecione o certificado que você criou.

  9. Selecione Download no formato CER. O ficheiro descarregado contém a chave pública.

    Captura de ecrã da janela do portal do Azure, que mostra o botão Transferir em Formato CER realçado.

Etapa 3 - Configurar a autenticação de certificado

  1. No aplicativo Microsoft Entra, selecione a guia Certificados & segredos .

    Captura de ecrã da janela do portal do Azure, que mostra o painel de certificados e segredos de uma aplicação.

  2. Selecione Carregar certificado e carregue o arquivo .cer que você criou e baixou na etapa 2 deste tutorial. O arquivo .cer contém a chave pública.

Etapa 4 - Obter o certificado do Azure Key Vault

Use a Identidade de Serviço Gerenciado (MSI) para obter o certificado do Cofre da Chave do Azure. Esse processo envolve a obtenção do certificado .pfx que contém as chaves pública e privada.

Consulte o exemplo de código para ler o certificado do Cofre de Chaves do Azure. Se você quiser usar o Visual Studio, consulte Configurar o Visual Studio para usar MSI.

private X509Certificate2 ReadCertificateFromVault(string certName)
{
    var serviceTokenProvider = new AzureServiceTokenProvider();
    var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(serviceTokenProvider.KeyVaultTokenCallback));
    CertificateBundle certificate = null;
    SecretBundle secret = null;

    certificate = keyVaultClient.GetCertificateAsync($"https://{KeyVaultName}.vault.azure.net/", certName).Result;
    secret = keyVaultClient.GetSecretAsync(certificate.SecretIdentifier.Identifier).Result;
    
    return new X509Certificate2(Convert.FromBase64String(secret.Value));
}

Etapa 5 - Autenticar usando a entidade de serviço e um certificado

Você pode autenticar seu aplicativo que usa uma entidade de serviço e um certificado armazenado no Cofre da Chave do Azure conectando-se ao Cofre da Chave do Azure.

Para conectar e ler o certificado do Cofre de Chaves do Azure, consulte o exemplo de código a seguir.

Nota

Se já tiver um certificado criado pela sua organização, carregue o ficheiro .pfx para o Cofre da Chave do Azure.

// Preparing needed variables
var Scope = "https://analysis.windows.net/powerbi/api/.default"
var ApplicationId = "{YourApplicationId}"
var tenantSpecificURL = "https://login.microsoftonline.com/{YourTenantId}/"
X509Certificate2 certificate = ReadCertificateFromVault(CertificateName);

// Authenticating with a SP and a certificate
public async Task<AuthenticationResult> DoAuthentication(){
    IConfidentialClientApplication clientApp = null;
    clientApp = ConfidentialClientApplicationBuilder.Create(ApplicationId)
                                                    .WithCertificate(certificate)
                                                    .WithAuthority(tenantSpecificURL)
                                                    .Build();
    return await clientApp.AcquireTokenForClient(Scope).ExecuteAsync();
}

Configurar o Visual Studio para usar MSI

Quando você cria uma solução incorporada, pode ser útil configurar o Visual Studio para usar o MSI (Managed Service Identity). O MSI é um recurso que permite gerenciar sua identidade do Microsoft Entra. Uma vez configurado, ele permitirá que o Visual Studio se autentique em seu Cofre de Chaves do Azure.

Nota

O usuário que entra no Visual Studio requer permissões do Azure Key Vault para obter o certificado.

  1. Abra seu projeto no Visual Studio.

  2. Selecione Opções de ferramentas>.

    Captura de tela da janela do Visual Studio, que mostra o botão Opções realçado no menu Ferramentas.

  3. Pesquise e selecione Seleção de conta.

    Captura de tela da janela Opções do Visual Studio, que mostra a opção Seleção de Conta realçada nos resultados da pesquisa.

  4. Adicione a conta que tem acesso ao seu Cofre da Chave do Azure.