Compartir a través de


Inserción de contenido de Power BI con entidades de servicio y un certificado

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

  1. Inserción del contenido con la entidad de servicio.

  2. Cree un certificado.

  3. Configurar la autenticación de certificados.

  4. Obtenga el certificado de Azure Key Vault.

  5. Autentíquese mediante un principal de servicio y un certificado.

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.

  1. Inicie sesión en Microsoft Azure.

  2. Busque y seleccione el vínculo Almacenes de claves.

    Captura de pantalla de la ventana de Azure Portal, que muestra un vínculo al servicio key vault en la lista Servicios.

  3. Seleccione el almacén de claves al que desea agregar un certificado.

    Captura de pantalla de la ventana Azure Portal, que muestra una lista de almacenes de claves desenfocados en la lista Almacenes de claves.

  4. Seleccione Certificados.

    Captura de pantalla de la ventana de Azure Portal, que muestra la página Almacenes de claves con el elemento Certificados resaltado.

  5. Seleccione Generar e importar.

    Captura de pantalla de la ventana de Azure Portal, que muestra el panel Certificado con el elemento Generar e importar resaltado.

  6. 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

  7. Seleccione Crear. El certificado recién creado está deshabilitado de forma predeterminada. Puede tardar hasta cinco minutos en habilitarse.

  8. Seleccione el certificado que creó.

  9. Seleccione Descargar en formato CER. El archivo descargado contiene la clave pública.

    Captura de pantalla de la ventana de Azure Portal, que muestra el botón Descargar en formato CER resaltado.

Paso 3: Configuración de la autenticación de certificados

  1. En la aplicación Microsoft Entra, seleccione la pestaña Certificados y secretos .

    Captura de pantalla de la ventana de Azure Portal, que muestra el panel certificados y secretos de una aplicación.

  2. 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.

  1. Abra el proyecto en Visual Studio.

  2. Seleccione Opciones de herramientas>.

    Captura de pantalla de la ventana de Visual Studio, que muestra el botón Opciones resaltado en el menú Herramientas.

  3. Busque y seleccione Selección de cuenta.

    Captura de pantalla de la ventana Opciones de Visual Studio, que muestra la opción Selección de cuenta resaltada en los resultados de búsqueda.

  4. Agregue la cuenta que tiene acceso a Azure Key Vault.