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
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.
Logga in på Microsoft Azure.
Sök efter och välj länken Nyckelvalv .
Välj det nyckelvalv som du vill lägga till ett certifikat i.
Välj Intyg.
Välj Generera/Importera.
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
Välj Skapa. Det nyligen skapade certifikatet är inaktiverat som standard. Det kan ta upp till fem minuter att aktiveras.
Välj det certifikat som du skapade.
Välj Ladda ned i CER-format. Den nedladdade filen innehåller den offentliga nyckeln.
Steg 3 – Konfigurera certifikatautentisering
I ditt Microsoft Entra-program väljer du fliken Certifikat och hemligheter .
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.
Öppna projektet i Visual Studio.
Välj Verktygsalternativ>.
Sök efter och välj Kontoval.
Lägg till det konto som har åtkomst till ditt Azure Key Vault.