Delen via


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

  1. Uw inhoud insluiten met een service-principal.

  2. Maak een certificaat.

  3. Certificaatverificatie instellen.

  4. Haal het certificaat op uit Azure Key Vault.

  5. 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.

  1. Meld u aan bij Microsoft Azure.

  2. Zoek en selecteer de koppeling Sleutelkluizen .

    Schermopname van het venster Azure Portal, waarin een koppeling naar de sleutelkluisservice in de lijst Services wordt weergegeven.

  3. Selecteer de sleutelkluis waaraan u een certificaat wilt toevoegen.

    Schermopname van het venster Van Azure Portal, waarin een lijst met vervaagde sleutelkluizen in de lijst met sleutelkluizen wordt weergegeven.

  4. Selecteer Certificaten.

    Schermopname van het venster Azure Portal, waarin de pagina Sleutelkluizen wordt weergegeven met het gemarkeerde item Certificaten.

  5. Selecteer Genereren/Importeren.

    Schermopname van het venster Azure Portal, waarin het deelvenster Certificaat wordt weergegeven met het gemarkeerde item Genereren/importeren.

  6. 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

  7. Selecteer Maken. Het zojuist gemaakte certificaat is standaard uitgeschakeld. Het kan vijf minuten duren voordat deze is ingeschakeld.

  8. Selecteer het certificaat dat u hebt gemaakt.

  9. Selecteer Downloaden in CER-indeling. Het gedownloade bestand bevat de openbare sleutel.

    Schermopname van het venster Azure Portal, waarin de gemarkeerde knop Downloaden in CER-indeling wordt weergegeven.

Stap 3: certificaatverificatie instellen

  1. Selecteer in uw Microsoft Entra-toepassing het tabblad Certificaten en geheimen .

    Schermopname van het venster Azure Portal, waarin het deelvenster certificaten en geheimen voor een app wordt weergegeven.

  2. 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.

  1. Open uw project in Visual Studio.

  2. Selecteer Extra>opties.

    Schermopname van het Visual Studio-venster met de gemarkeerde knop Opties in het menu Extra.

  3. Zoek en selecteer Accountselectie.

    Schermopname van het venster Visual Studio-opties, waarin de gemarkeerde optie Accountselectie in de zoekresultaten wordt weergegeven.

  4. Voeg het account toe dat toegang heeft tot uw Azure Key Vault.