Partager via


Incorporer du contenu Power BI avec un principal de service et un certificat

L’authentification basée sur les certificats vous permet d’être authentifié par l’ID Microsoft Entra avec un certificat client. Le certificat client peut se trouver sur un appareil Windows, Android ou iOS, ou le certificat client peut être conservé dans azure Key Vault.

L’utilisation de cette méthode d’authentification permet de gérer les certificats à partir d’un emplacement central à l’aide de l’autorité de certification (CA) pour la rotation ou la révocation.

Vous pouvez en savoir plus sur les certificats dans Microsoft Entra ID dans la page flux d’informations d’identification du client .

Méthode

  1. Incorporer du contenu dans le principal de service.

  2. Créez un certificat.

  3. Configurer l’authentification par certificat.

  4. Obtenez le certificat à partir d’Azure Key Vault.

  5. Authentifiez-vous à l’aide du principal de service et d’un certificat.

Étape 1 : Incorporer votre contenu avec le principal de service

Pour incorporer votre contenu avec un principal de service, suivez les instructions de l’incorporation de contenu Power BI avec le principal de service et un secret d’application.

Remarque

Si vous avez déjà du contenu incorporé à l’aide d’un principal de service, ignorez cette étape et passez à l’étape 2.

Étape 2 : Créer un certificat

Vous pouvez obtenir un certificat auprès d’une autorité de certification approuvée ou générer un certificat vous-même.

Cette section décrit la création d’un certificat à l’aide d’Azure Key Vault et le téléchargement du fichier .cer , qui contient la clé publique.

  1. Connectez-vous à Microsoft Azure.

  2. Recherchez et sélectionnez le lien Coffre de clés.

    Capture d’écran de la fenêtre du portail Azure, qui affiche un lien vers le service key vault dans la liste Des services.

  3. Sélectionnez le coffre de clés auquel vous souhaitez ajouter un certificat.

    Capture d’écran de la fenêtre du portail Azure, qui affiche une liste de coffres de clés flous dans la liste des coffres de clés.

  4. Sélectionnez Certificats.

    Capture d’écran de la fenêtre du portail Azure, qui montre la page Coffres de clés avec l’élément Certificats mis en surbrillance.

  5. Sélectionnez Générer/Importer.

    Capture d’écran de la fenêtre du portail Azure, qui montre le volet Certificat avec l’élément Générer/Importer mis en surbrillance.

  6. Configurez les champs Créer un certificat comme suit :

    • Méthode de création de certificat - Général

    • Nom du certificat : entrez un nom pour votre certificat

    • Type d’autorité de certification (CA) - Certificat auto-signé

    • Objet - Un nom unique X.500

    • Noms DNS - 0 noms DNS

    • Période de validité (en mois) : entrez la durée de validité du certificat

    • Type de contenu - PKCS #12

    • Type d’action de la durée de vie : Renouveler automatiquement en fonction d’un pourcentage donné de la durée de vie

    • Durée de vie du pourcentage - 80

    • Configuration avancée de la stratégie - Non configuré

  7. Cliquez sur Créer. Le certificat nouvellement créé est désactivé par défaut. L’activation peut prendre jusqu’à cinq minutes.

  8. Sélectionnez le certificat que vous avez créé.

  9. Sélectionnez Télécharger au format CER. Le fichier téléchargé contient la clé publique.

    Capture d’écran de la fenêtre du portail Azure, qui montre le bouton Télécharger en surbrillance au format CER.

Étape 3 : Configurer l’authentification par certificat

  1. Dans votre application Microsoft Entra, sélectionnez l’onglet Certificats et secrets .

    Capture d’écran de la fenêtre du portail Azure, qui affiche le volet certificats et secrets d’une application.

  2. Sélectionnez Charger le certificat et charger le fichier .cer que vous avez créé et téléchargé à l’étape 2 de ce didacticiel. Le fichier .cer contient la clé publique.

Étape 4 : Obtenir le certificat à partir d’Azure Key Vault

Utilisez Managed Service Identity (MSI) pour obtenir le certificat à partir d’Azure Key Vault. Ce processus implique l’obtention du certificat .pfx qui contient les clés publiques et privées.

Reportez-vous à l’exemple de code pour lire le certificat à partir d’Azure Key Vault. Si vous souhaitez utiliser Visual Studio, reportez-vous à Configurer Visual Studio pour utiliser 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));
}

Étape 5 : s’authentifier à l’aide du principal de service et d’un certificat

Vous pouvez authentifier votre application qui utilise un principal de service et un certificat stocké dans Azure Key Vault en vous connectant à Azure Key Vault.

Pour vous connecter et lire le certificat à partir d’Azure Key Vault, reportez-vous à l’exemple de code suivant.

Remarque

Si vous disposez déjà d’un certificat créé par votre organisation, chargez le fichier .pfx dans 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();
}

Configurer Visual Studio pour utiliser MSI

Lorsque vous créez une solution incorporée, il peut être utile de configurer Visual Studio pour utiliser Managed Service Identity (MSI). MSI est une fonctionnalité qui vous permet de gérer votre identité Microsoft Entra. Une fois configuré, Visual Studio s’authentifie auprès de votre coffre de clés Azure.

Remarque

L’utilisateur qui se connecte à Visual Studio nécessite des autorisations Azure Key Vault pour obtenir le certificat.

  1. Ouvrez votre projet dans Visual Studio.

  2. Sélectionnez Outils>Options.

    Capture d’écran de la fenêtre Visual Studio, qui montre le bouton Options mis en surbrillance dans le menu Outils.

  3. Recherchez et sélectionnez Sélection de compte.

    Capture d’écran de la fenêtre Options de Visual Studio, qui montre l’option Sélection de compte mise en surbrillance dans les résultats de la recherche.

  4. Ajoutez le compte qui a accès à votre azure Key Vault.