Compartilhar via


Conteúdo inserido do Power BI com a entidade de serviço e um certificado

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

Usar esse método de autenticação permite gerenciar certificados de um local central usando a AC (autoridade de certificação) para rotação ou revogação.

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

Método

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

  2. Crie um certificado.

  3. Configurar a autenticação de certificado.

  4. Obtenha o certificado do Azure Key Vault.

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

Etapa 1 – Inserir conteúdo com a entidade de serviço

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

Observação

Se você já tiver conteúdo inserido usando um service principal, 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 Azure Key Vault 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 do cofre de chaves na lista Serviços.

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

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

  4. Selecione Certificados.

    Captura de tela 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 tela 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 certificado – Geral

    • Nome do certificado – insira um nome para seu certificado

    • Tipo de AC (Autoridade de Certificação) – Certificado autoassinado

    • Entidade: um nome diferenciado X.500

    • Nomes DNS – 0 nomes DNS

    • Período de validade (em meses) – insira a duração da validade do certificado

    • Tipo de conteúdo – PKCS nº 12

    • Tipo de Ação de Tempo de Vida: renovar automaticamente com um determinado percentual de tempo de vida

    • Tempo de vida percentual - 80

    • Configuração avançada de política – não configurada

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

  8. Selecione o certificado que você criou.

  9. Selecione Baixar no formato CER. O arquivo baixado contém a chave pública.

    Captura de tela da janela do portal do Azure, que mostra o botão Baixar em formato CER destacado.

Etapa 3 – Configurar a autenticação de certificado

  1. Em seu aplicativo Microsoft Entra, selecione a guia Certificados > segredos .

    Captura de tela da janela do portal do Azure, que mostra o painel de certificados e segredos de um aplicativo.

  2. Selecione Carregar certificado e carregue o arquivo de .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 MSI (Identidade de Serviço Gerenciado) para obter o certificado do Azure Key Vault. Esse processo envolve a obtenção do certificado .pfx que contém as chaves públicas e privadas.

Consulte o exemplo de código para ler o certificado do Azure Key Vault. Se você quiser usar o Visual Studio, consulte Configurar o Visual Studio para usar o 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 o principal de serviço e um certificado

Você pode autenticar o seu aplicativo que usa uma entidade de serviço e um certificado que é armazenado no Azure Key Vault, conectando-se ao Azure Key Vault.

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

Observação

Se você já tiver um certificado criado pela sua organização, carregue o arquivo .pfx no Azure Key Vault.

// 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 o MSI

Quando você cria uma solução inserida, pode ser útil configurar o Visual Studio para usar a MSI (Identidade de Serviço Gerenciada). MSI é um recurso que permite que você gerencie sua identidade do Microsoft Entra. Depois de configurado, ele permitirá que o Visual Studio se autentique no Azure Key Vault.

Observação

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çadas no menu Ferramentas.

  3. Pesquise por Seleção da conta e selecione essa opção.

    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 Azure Key Vault.