Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La autenticación basada en certificados le permite autenticarse mediante microsoft Entra ID con un certificado de cliente. El certificado de cliente puede estar en un dispositivo Windows, Android o iOS, o bien el certificado de cliente se puede mantener en una instancia de Azure Key Vault.
El uso de este método de autenticación permite administrar certificados desde un lugar central mediante la entidad de certificación (CA) para la rotación o revocación.
Puede obtener más información sobre los certificados de Microsoft Entra ID en la página Flujos de credenciales de cliente .
Método
Paso 1: Inserción del contenido con la entidad de servicio
Para insertar el contenido con una entidad de servicio, siga las instrucciones de Inserción de contenido de Power BI con entidades de servicio y un secreto de aplicación.
Nota:
Si ya tiene contenido incrustado mediante un principal de servicio, omita este paso y avance al paso 2.
Paso 2: Creación de un certificado
Puede adquirir un certificado de una entidad de certificación de confianza o generar un certificado usted mismo.
En esta sección se describe cómo crear un certificado mediante Azure Key Vault y descargar el archivo .cer , que contiene la clave pública.
Inicie sesión en Microsoft Azure.
Busque y seleccione el vínculo Almacenes de claves.
Seleccione el almacén de claves al que desea agregar un certificado.
Seleccione Certificados.
Seleccione Generar e importar.
Configure los campos Crear un certificado de la manera siguiente:
Método de creación de certificados: General
Nombre del certificado: escriba un nombre para el certificado.
Tipo de entidad de certificación (CA): certificado autofirmado
Asunto: un nombre distintivo X.500
Nombres DNS : 0 nombres DNS
Período de validez (en meses): escriba la duración de validez del certificado.
Tipo de contenido : PKCS #12
Tipo de acción de duración: Renovar automáticamente cuando se llegue a un porcentaje determinado de duración
Porcentaje de vida útil - 80
Configuración de directiva avanzada : no configurada
Seleccione Crear. El certificado recién creado está deshabilitado de forma predeterminada. Puede tardar hasta cinco minutos en habilitarse.
Seleccione el certificado que creó.
Seleccione Descargar en formato CER. El archivo descargado contiene la clave pública.
Paso 3: Configuración de la autenticación de certificados
En la aplicación Microsoft Entra, seleccione la pestaña Certificados y secretos .
Seleccione Cargar certificado y cargue el archivo .cer que creó y descargó en el paso 2 de este tutorial. El archivo .cer contiene la clave pública.
Paso 4: Obtención del certificado de Azure Key Vault
Use Managed Service Identity (MSI) para obtener el certificado de Azure Key Vault. Este proceso implica obtener el certificado .pfx que contiene las claves públicas y privadas.
Consulte el ejemplo de código para leer el certificado de Azure Key Vault. Si desea usar Visual Studio, consulte Configuración de 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));
}
Paso 5: Autenticación mediante una entidad de servicio y un certificado
Puede autenticar una aplicación que utiliza un principal de servicio y un certificado almacenado en Azure Key Vault conectándose a Azure Key Vault.
Para conectarse y leer el certificado de Azure Key Vault, consulte el ejemplo de código siguiente.
Nota:
Si ya tiene un certificado creado por su organización, cargue el archivo .pfx en 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();
}
Configuración de Visual Studio para usar MSI
Al crear una solución insertada, puede resultar útil configurar Visual Studio para usar Managed Service Identity (MSI). MSI es una característica que le permite administrar su identidad de Microsoft Entra. Una vez configurado, permitirá que Visual Studio se autentique en Azure Key Vault.
Nota:
El usuario que inicia sesión en Visual Studio requiere permisos de Azure Key Vault para obtener el certificado.
Abra el proyecto en Visual Studio.
Seleccione Opciones de herramientas>.
Busque y seleccione Selección de cuenta.
Agregue la cuenta que tiene acceso a Azure Key Vault.