Power BI-inhoud insluiten met een service-principal en een certificaat
Met verificatie op basis van certificaten kunt u worden geverifieerd door Microsoft Entra-id met een clientcertificaat. Het clientcertificaat kan zich op een Windows-, Android- of iOS-apparaat bevinden, of het clientcertificaat kan worden bewaard in een Azure Key Vault.
Met deze verificatiemethode kunt u certificaten vanaf een centrale locatie beheren met behulp van de certificeringsinstantie (CA) voor rotatie of intrekking.
Meer informatie over certificaten in Microsoft Entra-id vindt u op de GitHub-pagina Clientreferentiestromen .
Methode
Certificaatverificatie instellen.
Verifiëren met behulp van een service-principal en een certificaat.
Stap 1: Uw inhoud insluiten met service-principal
Als u uw inhoud wilt insluiten met een service-principal, volgt u de instructies in Power BI-inhoud insluiten met een service-principal en een toepassingsgeheim.
Notitie
Als u al inhoud hebt die is ingesloten met behulp van een service-principal, slaat u deze stap over en gaat u verder met stap 2.
Stap 2: een certificaat maken
U kunt een certificaat aanschaffen bij een vertrouwde certificeringsinstantie of zelf een certificaat genereren.
In deze sectie wordt beschreven hoe u een certificaat maakt met behulp van Azure Key Vault en het .cer-bestand downloadt, dat de openbare sleutel bevat.
Meld u aan bij Microsoft Azure.
Zoek en selecteer de koppeling Sleutelkluizen .
Selecteer de sleutelkluis waaraan u een certificaat wilt toevoegen.
Selecteer Certificaten.
Selecteer Genereren/Importeren.
Configureer als volgt de certificaatvelden maken:
Methode voor het maken van certificaten - Algemeen
Certificaatnaam - Voer een naam in voor uw certificaat
Type certificeringsinstantie (CA) - Zelfondertekend certificaat
Onderwerp - Een X.500 DN-naam
DNS-namen - 0 DNS-namen
Geldigheidsperiode (in maanden): voer de geldigheidsduur van het certificaat in
Inhoudstype - PKCS #12
Actietype Levensduur: automatisch verlengen met een bepaald percentage levensduur
Levensduur van percentage - 80
Geavanceerde beleidsconfiguratie - niet geconfigureerd
Selecteer Maken. Het zojuist gemaakte certificaat is standaard uitgeschakeld. Het kan vijf minuten duren voordat deze is ingeschakeld.
Selecteer het certificaat dat u hebt gemaakt.
Selecteer Downloaden in CER-indeling. Het gedownloade bestand bevat de openbare sleutel.
Stap 3: certificaatverificatie instellen
Selecteer in uw Microsoft Entra-toepassing het tabblad Certificaten en geheimen .
Selecteer Certificaat uploaden en upload het .cer bestand dat u hebt gemaakt en gedownload in stap 2 van deze zelfstudie. Het bestand .cer bevat de openbare sleutel.
Stap 4: het certificaat ophalen uit Azure Key Vault
Gebruik Managed Service Identity (MSI) om het certificaat op te halen uit Azure Key Vault. Dit proces omvat het ophalen van het PFX-certificaat dat zowel de openbare als de persoonlijke sleutels bevat.
Raadpleeg het codevoorbeeld voor het lezen van het certificaat uit Azure Key Vault. Als u Visual Studio wilt gebruiken, raadpleegt u Visual Studio configureren om MSI te gebruiken.
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));
}
Stap 5: verifiëren met behulp van een service-principal en een certificaat
U kunt uw app verifiëren die gebruikmaakt van een service-principal en een certificaat dat is opgeslagen in Azure Key Vault door verbinding te maken met Azure Key Vault.
Raadpleeg het volgende codevoorbeeld om het certificaat vanuit Azure Key Vault te verbinden en te lezen.
Notitie
Als u al een certificaat hebt gemaakt door uw organisatie, uploadt u het PFX-bestand naar 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();
}
Visual Studio configureren voor het gebruik van MSI
Wanneer u een ingesloten oplossing maakt, kan het handig zijn om Visual Studio te configureren voor het gebruik van Managed Service Identity (MSI). MSI is een functie waarmee u uw Microsoft Entra-identiteit kunt beheren. Zodra deze is geconfigureerd, kan Visual Studio worden geverifieerd op basis van uw Azure Key Vault.
Notitie
De gebruiker die zich aanmeldt bij Visual Studio, heeft Azure Key Vault-machtigingen nodig om het certificaat op te halen.
Open uw project in Visual Studio.
Selecteer Extra>opties.
Zoek en selecteer Accountselectie.
Voeg het account toe dat toegang heeft tot uw Azure Key Vault.