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
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.
Logg på Microsoft Azure.
Søk etter og velg koblingen Nøkkelhvelv.
Velg nøkkelhvelvet du vil legge til et sertifikat i.
Velg Sertifikater.
Velg Generer/Importer.
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
Velg Opprett. Det nylig opprettede sertifikatet er deaktivert som standard. Det kan ta opptil fem minutter å bli aktivert.
Velg sertifikatet du opprettet.
Velg Last ned i CER-format. Den nedlastede filen inneholder fellesnøkkelen.
Trinn 3 – Konfigurere sertifikatgodkjenning
Velg fanen Sertifikater og hemmeligheter i Microsoft Entra-programmet.
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.
Åpne prosjektet i Visual Studio.
Velg Verktøyalternativer>.
Søk etter og velg Kontovalg.
Legg til kontoen som har tilgang til Azure Key Vault.