Bygg inn Power BI-innhold med tjenestekontohaver og et sertifikat

Sertifikatbasert godkjenning gjør at du kan godkjennes av Microsoft Entra ID med et klientsertifikat. Klientsertifikatet kan være på en Windows-, Android- eller iOS-enhet, eller klientsertifikatet kan oppbevares i et Azure Key Vault.

Ved hjelp av denne godkjenningsmetoden kan du administrere sertifikater fra et sentralt sted ved hjelp av sertifiseringsinstansen (CA) for rotasjon eller tilbakekalling.

Du kan lære mer om sertifikater i Microsoft Entra ID på GitHub-siden for klientlegitimasjonsflyter .

Metode

  1. Bygg inn innholdet med tjenestekontohaver.

  2. Opprett et sertifikat.

  3. Konfigurer sertifikatgodkjenning.

  4. Hent sertifikatet fra Azure Key Vault.

  5. Godkjenne ved hjelp av tjenestekontohaver og et sertifikat.

Trinn 1 – Bygg inn innholdet med tjenestekontohaver

Hvis du vil bygge inn innholdet med en tjenestekontohaver, følger du instruksjonene i Bygg inn Power BI-innhold med tjenestekontohaver og en programhemmelighet.

Merk

Hvis du allerede har innhold som er innebygd ved hjelp av en tjenestekontohaver, kan du hoppe over dette trinnet og gå videre til trinn 2.

Trinn 2 – Opprett et sertifikat

Du kan anskaffe et sertifikat fra en klarert sertifiseringsinstans eller generere et sertifikat selv.

Denne delen beskriver oppretting av et sertifikat ved hjelp av Azure Key Vault, og nedlasting av .cer-filen , som inneholder fellesnøkkelen.

  1. Logg på Microsoft Azure.

  2. Søk etter og velg koblingen Nøkkelhvelv.

    Skjermbilde av Azure Portal-vinduet, som viser en kobling til nøkkelhvelvtjenesten i tjenestelisten.

  3. Velg nøkkelhvelvet du vil legge til et sertifikat i.

    Skjermbilde av Azure Portal-vinduet, som viser en liste over uskarpe nøkkelhvelv i Listen over nøkkelhvelv.

  4. Velg Sertifikater.

    Skjermbilde av Azure Portal-vinduet, som viser Nøkkelhvelv-siden med det uthevede Sertifikater-elementet.

  5. Velg Generer/Importer.

    Skjermbilde av Azure Portal-vinduet, som viser Sertifikat-ruten med det uthevede Generer/import-elementet.

  6. Konfigurer feltene Opprett et sertifikat på følgende måte:

    • Metode for oppretting av sertifikat – generelt

    • Sertifikatnavn – skriv inn et navn på sertifikatet

    • Type sertifiseringsinstans (CA) – selvsignert sertifikat

    • Emne – et unikt X.500-navn

    • DNS-navn – 0 DNS-navn

    • Gyldighetsperiode (i måneder) – Angi sertifikatets gyldighetsvarighet

    • Innholdstype - PKCS #12

    • Handlingstype for levetid – fornyes automatisk med en gitt prosentvis levetid

    • Prosentvis levetid - 80

    • Konfigurasjon av avansert policy – ikke konfigurert

  7. Velg Opprett. Det nylig opprettede sertifikatet er deaktivert som standard. Det kan ta opptil fem minutter å bli aktivert.

  8. Velg sertifikatet du opprettet.

  9. Velg Last ned i CER-format. Den nedlastede filen inneholder fellesnøkkelen.

    Skjermbilde av Azure-portalvinduet, som viser den uthevede Knappen Last ned i CER-format.

Trinn 3 – Konfigurere sertifikatgodkjenning

  1. Velg fanen Sertifikater og hemmeligheter i Microsoft Entra-programmet.

    Skjermbilde av Azure Portal-vinduet, som viser sertifikater og hemmeligheter-ruten for en app.

  2. Velg Last opp sertifikat, og last opp .cer filen du opprettet og lastet ned i trinn 2 i denne opplæringen. Den .cer filen inneholder fellesnøkkelen.

Trinn 4 – Hent sertifikatet fra Azure Key Vault

Bruk Managed Service Identity (MSI) til å hente sertifikatet fra Azure Key Vault. Denne prosessen innebærer å hente PFX-sertifikatet som inneholder både offentlige og private nøkler.

Se kodeeksempelet for å lese sertifikatet fra Azure Key Vault. Hvis du vil bruke Visual Studio, kan du se Konfigurere Visual Studio til å bruke 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));
}

Trinn 5 – Godkjenne ved hjelp av tjenestekontohaver og et sertifikat

Du kan godkjenne appen som bruker en tjenestekontohaver og et sertifikat som er lagret i Azure Key Vault ved å koble til Azure Key Vault.

Hvis du vil koble til og lese sertifikatet fra Azure Key Vault, kan du se følgende kodeeksempel.

Merk

Hvis du allerede har et sertifikat opprettet av organisasjonen, kan du laste opp 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 å bruke MSI

Når du oppretter en innebygd løsning, kan det være nyttig å konfigurere Visual Studio til å bruke administrert tjenesteidentitet (MSI). MSI er en funksjon som gjør det mulig å administrere Microsoft Entra-identiteten din. Når den er konfigurert, lar den Visual Studio godkjenne mot Azure Key Vault.

Merk

Brukeren som logger på Visual Studio krever Azure Key Vault-tillatelser for å få sertifikatet.

  1. Åpne prosjektet i Visual Studio.

  2. Velg Verktøyalternativer>.

    Skjermbilde av Visual Studio-vinduet, som viser den uthevede Alternativer-knappen på Verktøy-menyen.

  3. Søk etter og velg Kontovalg.

    Skjermbilde av vinduet Alternativer for Visual Studio, som viser det uthevede alternativet for valg av konto i søkeresultatene.

  4. Legg til kontoen som har tilgang til Azure Key Vault.