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
Incorpore seu conteúdo com a entidade de serviço.
Configure a autenticação de certificado.
Obtenha o certificado do Cofre da Chave do Azure.
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.
Faça logon no Microsoft Azure.
Procure e selecione o link Cofres de chaves.
Selecione o cofre de chaves ao qual deseja adicionar um certificado.
Selecione Certificados.
Selecione Gerar/Importar.
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
Selecione Criar. O certificado recém-criado está desativado por padrão. Pode levar até cinco minutos para ser ativado.
Selecione o certificado que você criou.
Selecione Download no formato CER. O ficheiro descarregado contém a chave pública.
Etapa 3 - Configurar a autenticação de certificado
No aplicativo Microsoft Entra, selecione a guia Certificados & segredos .
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.
Abra seu projeto no Visual Studio.
Selecione Opções de ferramentas>.
Pesquise e selecione Seleção de conta.
Adicione a conta que tem acesso ao seu Cofre da Chave do Azure.