Bädda in Power BI-innehåll med tjänstens huvudnamn och ett certifikat

Med certifikatbaserad autentisering kan du autentiseras av Microsoft Entra-ID med ett klientcertifikat. Klientcertifikatet kan finnas på en Windows-, Android- eller iOS-enhet, eller så kan klientcertifikatet lagras i ett Azure Key Vault.

Med den här autentiseringsmetoden kan du hantera certifikat från en central plats med certifikatutfärdare (CA) för rotation eller återkallande.

Du kan lära dig mer om certifikat i Microsoft Entra-ID på GitHub-sidan För klientautentiseringsflöden .

Metod

  1. Bädda in ditt innehåll med tjänstens huvudnamn.

  2. Skapa ett certifikat.

  3. Konfigurera certifikatautentisering.

  4. Hämta certifikatet från Azure Key Vault.

  5. Autentisera med tjänstens huvudnamn och ett certifikat.

Steg 1 – Bädda in ditt innehåll med tjänstens huvudnamn

Om du vill bädda in ditt innehåll med tjänstens huvudnamn följer du anvisningarna i Bädda in Power BI-innehåll med tjänstens huvudnamn och en programhemlighet.

Kommentar

Om du redan har innehåll som är inbäddat med hjälp av ett huvudnamn för tjänsten hoppar du över det här steget och går vidare till steg 2.

Steg 2 – Skapa ett certifikat

Du kan skaffa ett certifikat från en betrodd certifikatutfärdare eller generera ett certifikat själv.

I det här avsnittet beskrivs hur du skapar ett certifikat med Azure Key Vault och hämtar .cer-filen som innehåller den offentliga nyckeln.

  1. Logga in på Microsoft Azure.

  2. Sök efter och välj länken Nyckelvalv .

    Skärmbild av Fönstret i Azure-portalen, som visar en länk till key vault-tjänsten i listan Tjänster.

  3. Välj det nyckelvalv som du vill lägga till ett certifikat i.

    Skärmbild av Fönstret i Azure-portalen, som visar en lista över suddiga nyckelvalv i listan Nyckelvalv.

  4. Välj Intyg.

    Skärmbild av Fönstret i Azure-portalen, som visar sidan Nyckelvalv med det markerade certifikatobjektet.

  5. Välj Generera/Importera.

    Skärmbild av Fönstret i Azure-portalen, som visar fönstret Certifikat med det markerade objektet Generera/importera.

  6. Konfigurera fälten Skapa ett certifikat på följande sätt:

    • Metod för att skapa certifikat – allmänt

    • Certifikatnamn – Ange ett namn på certifikatet

    • Typ av certifikatutfärdare (CA) – självsignerat certifikat

    • Ämne – ett unikt X.500-namn

    • DNS-namn – 0 DNS-namn

    • Giltighetsperiod (i månader) – Ange certifikatets giltighetstid

    • Innehållstyp – PKCS #12

    • Åtgärdstyp för livslängd – Förnya automatiskt vid en viss procentuell livslängd

    • Livslängd i procent – 80

    • Avancerad principkonfiguration – Inte konfigurerad

  7. Välj Skapa. Det nyligen skapade certifikatet är inaktiverat som standard. Det kan ta upp till fem minuter att aktiveras.

  8. Välj det certifikat som du skapade.

  9. Välj Ladda ned i CER-format. Den nedladdade filen innehåller den offentliga nyckeln.

    Skärmbild av Fönstret i Azure-portalen, som visar den markerade knappen Ladda ned i CER-format.

Steg 3 – Konfigurera certifikatautentisering

  1. I ditt Microsoft Entra-program väljer du fliken Certifikat och hemligheter .

    Skärmbild av Fönstret i Azure-portalen, som visar fönstret certifikat och hemligheter för en app.

  2. Välj Ladda upp certifikat och ladda upp den .cer fil som du skapade och laddade ned i steg 2 i den här självstudien. Filen .cer innehåller den offentliga nyckeln.

Steg 4 – Hämta certifikatet från Azure Key Vault

Använd Hanterad tjänstidentitet (MSI) för att hämta certifikatet från Azure Key Vault. Den här processen innebär att hämta .pfx-certifikatet som innehåller både offentliga och privata nycklar.

Läs kodexemplet för att läsa certifikatet från Azure Key Vault. Om du vill använda Visual Studio läser du Konfigurera Visual Studio för att använda 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));
}

Steg 5 – Autentisera med tjänstens huvudnamn och ett certifikat

Du kan autentisera din app som använder tjänstens huvudnamn och ett certifikat som lagras i Azure Key Vault genom att ansluta till Azure Key Vault.

Om du vill ansluta och läsa certifikatet från Azure Key Vault läser du följande kodexempel.

Kommentar

Om du redan har ett certifikat som skapats av din organisation laddar du upp pfx-filen till 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();
}

Konfigurera Visual Studio att använda MSI

När du skapar en inbäddad lösning kan det vara användbart att konfigurera Visual Studio att använda Hanterad tjänstidentitet (MSI). MSI är en funktion som gör att du kan hantera din Microsoft Entra-identitet. När visual studio har konfigurerats kan du autentisera mot ditt Azure Key Vault.

Kommentar

Användaren som loggar in i Visual Studio kräver Azure Key Vault-behörigheter för att hämta certifikatet.

  1. Öppna projektet i Visual Studio.

  2. Välj Verktygsalternativ>.

    Skärmbild av Visual Studio-fönstret som visar den markerade knappen Alternativ på menyn Verktyg.

  3. Sök efter och välj Kontoval.

    Skärmbild av fönstret Alternativ för Visual Studio, som visar det markerade alternativet Kontoval i sökresultaten.

  4. Lägg till det konto som har åtkomst till ditt Azure Key Vault.