Del via


Integrer Power BI-indhold med tjenesteprincipal og et certifikat

Certifikatbaseret godkendelse gør det muligt for dig at blive godkendt af Microsoft Entra ID med et klientcertifikat. Klientcertifikatet kan være på en Windows-, Android- eller iOS-enhed, eller klientcertifikatet kan opbevares i en Azure Key Vault.

Brug af denne godkendelsesmetode gør det muligt at administrere certifikater fra et centralt sted ved hjælp af nøglecenteret til rotation eller tilbagekaldelse.

Du kan få mere at vide om certifikater i Microsoft Entra ID på gitHub-siden Med klientlegitimationsoplysninger .

Metode

  1. Integrer dit indhold med en tjenesteprincipal.

  2. Opret et certifikat.

  3. Konfigurer certifikatgodkendelse.

  4. Hent certifikatet fra Azure Key Vault.

  5. Godkend ved hjælp af en tjenesteprincipal og et certifikat.

Trin 1 – Integrer dit indhold med en tjenesteprincipal

Hvis du vil integrere dit indhold med en tjenesteprincipal, skal du følge vejledningen i Integrer Power BI-indhold med tjenesteprincipal og en programhemmelighed.

Bemærk

Hvis du allerede har indhold, der er integreret ved hjælp af en tjenesteprincipal, skal du springe dette trin over og gå videre til trin 2.

Trin 2 – Opret et certifikat

Du kan anskaffe et certifikat fra et nøglecenter, der er tillid til, eller selv oprette et certifikat.

I dette afsnit beskrives det, hvordan du opretter et certifikat ved hjælp af Azure Key Vault og downloader den .cer fil, som indeholder den offentlige nøgle.

  1. Log på Microsoft Azure.

  2. Søg efter og vælg linket Key vaults .

    Skærmbillede af vinduet Azure-portal, som viser et link til key vault-tjenesten på listen Tjenester.

  3. Vælg den key vault, du vil føje et certifikat til.

    Skærmbillede af vinduet Azure-portal, som viser en liste over slørede key vaults på listen Key vaults.

  4. Vælg Certifikater.

    Skærmbillede af vinduet Azure-portal, som viser siden Key vaults med det fremhævede element Certifikater.

  5. Vælg Generér/Importér.

    Skærmbillede af vinduet Azure-portal, som viser ruden Certifikat med det fremhævede element Generér/importér.

  6. Konfigurer felterne Opret et certifikat på følgende måde:

    • Metode til oprettelse af certifikat – generelt

    • Certifikatnavn – angiv et navn til certifikatet

    • Type af nøglecenter – Selvsigneret certifikat

    • Emne – et entydigt X.500-navn

    • DNS-navne – 0 DNS-navne

    • Gyldighedsperiode (i måneder) – Angiv certifikatets gyldighedsperiode

    • Indholdstype - PKCS #12

    • Livstidshandlingstype – Forny automatisk ved en given procentdels levetid

    • Levetid i procent - 80

    • Konfiguration af avanceret politik – Ikke konfigureret

  7. Vælg Opret. Det nyligt oprettede certifikat er deaktiveret som standard. Det kan tage op til fem minutter at blive aktiveret.

  8. Vælg det certifikat, du har oprettet.

  9. Vælg Download i CER-format. Den downloadede fil indeholder den offentlige nøgle.

    Skærmbillede af vinduet Azure-portal, som viser den fremhævede knap Download i CER Format.

Trin 3 – Konfigurer certifikatgodkendelse

  1. I dit Microsoft Entra-program skal du vælge fanen Certifikater og hemmeligheder .

    Skærmbillede af vinduet Azure-portal, som viser ruden Certifikater og hemmeligheder for en app.

  2. Vælg Overfør certifikat, og upload den .cer fil, du oprettede og downloadede i trin 2 i dette selvstudium. Den .cer fil indeholder den offentlige nøgle.

Trin 4 – Hent certifikatet fra Azure Key Vault

Brug MSI (Managed Service Identity) til at hente certifikatet fra Azure Key Vault. Denne proces omfatter hentning af .pfx-certifikatet , der indeholder både offentlige og private nøgler.

Se kodeeksempel for at læse certifikatet fra Azure Key Vault. Hvis du vil bruge Visual Studio, skal du se Konfigurer Visual Studio til at bruge 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));
}

Trin 5 – Godkend ved hjælp af en tjenesteprincipal og et certifikat

Du kan godkende din app, der bruger en tjenesteprincipal og et certifikat, der er gemt i Azure Key Vault, ved at oprette forbindelse til Azure Key Vault.

Hvis du vil oprette forbindelse til og læse certifikatet fra Azure Key Vault, skal du se følgende kodeeksempel.

Bemærk

Hvis du allerede har et certifikat, der er oprettet af din organisation, kan du uploade .pfx-filen til 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();
}

Konfigurer Visual Studio til at bruge MSI

Når du opretter en integreret løsning, kan det være nyttigt at konfigurere Visual Studio til at bruge MSI (Managed Service Identity). MSI er en funktion, der giver dig mulighed for at administrere din Microsoft Entra-identitet. Når den er konfigureret, kan Visual Studio godkende i forhold til din Azure Key Vault.

Bemærk

Den bruger, der logger på Visual Studio, kræver Azure Key Vault-tilladelser for at få certifikatet.

  1. Åbn dit projekt i Visual Studio.

  2. Vælg Funktioner>Indstillinger.

    Skærmbillede af Visual Studio-vinduet, som viser den fremhævede knap Indstillinger i menuen Funktioner.

  3. Søg efter, og vælg Kontovalg.

    Skærmbillede af vinduet Indstillinger for Visual Studio, som viser den fremhævede indstilling Kontovalg i søgeresultaterne.

  4. Tilføj den konto, der har adgang til din Azure Key Vault.