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
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.
Log på Microsoft Azure.
Søg efter og vælg linket Key vaults .
Vælg den key vault, du vil føje et certifikat til.
Vælg Certifikater.
Vælg Generér/Importér.
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
Vælg Opret. Det nyligt oprettede certifikat er deaktiveret som standard. Det kan tage op til fem minutter at blive aktiveret.
Vælg det certifikat, du har oprettet.
Vælg Download i CER-format. Den downloadede fil indeholder den offentlige nøgle.
Trin 3 – Konfigurer certifikatgodkendelse
I dit Microsoft Entra-program skal du vælge fanen Certifikater og hemmeligheder .
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.
Åbn dit projekt i Visual Studio.
Vælg Funktioner>Indstillinger.
Søg efter, og vælg Kontovalg.
Tilføj den konto, der har adgang til din Azure Key Vault.