Power BI-tartalom beágyazása szolgáltatásnévvel és tanúsítvánnyalEmbed Power BI content with service principal and a certificate

A tanúsítványalapú hitelesítés lehetővé teszi, hogy a hitelesítést az Azure Active Directory (Azure AD) használatával, egy Windows, Android vagy iOS rendszerű eszköz ügyféltanúsítványával, vagy egy Azure Key Vaultban tárolt ügyféltanúsítvánnyal végezze.Certificate-based authentication enables you to be authenticated by Azure Active Directory (Azure AD) with a client certificate on a Windows, Android or iOS device, or kept in an Azure Key Vault.

Ez a hitelesítési módszer lehetővé teszi, hogy a tanúsítványok közötti átváltást vagy azok visszavonását egyetlen központi helyről kezelhesse egy Hitelesítésszolgáltató használatával.Using this method of authentication allows managing certificates from a central place, using the CA, for rotation or revocation.

Az Azure AD-beli tanúsítványokkal kapcsolatos további információkért tekintse meg a Client credential flows (Ügyfél-hitelesítő adatok folyamata) című GitHub oldalt.You can learn more about certificates in Azure AD in the Client credential flows GitHub page.

MódszerMethod

  1. Ágyazza be a tartalmat szolgáltatásnévvel.Embed your content with service principal.

  2. Hozzon létre tanúsítványt.Create a certificate.

  3. Állítsa be a tanúsítványhitelesítést.Set up certificate authentication.

  4. Szerezze be a tanúsítványt az Azure Key Vaultból.Get the certificate from Azure Key Vault.

  5. Végezze el a hitelesítést az egyszerű szolgáltatásnév és a tanúsítvány használatával.Authenticate using service principal and a certificate.

1. lépés – A tartalom beágyazása szolgáltatásnévvelStep 1 - Embed your content with service principal

A tartalom szolgáltatásnévvel történő beágyazásához kövesse a Power BI-tartalom beágyazása szolgáltatásnévvel és titkos alkalmazáskóddal című cikk utasításait.To embed your content with service principal, follow the instructions in Embed Power BI content with service principal and an application secret.

Megjegyzés

Ha már rendelkezik szolgáltatásnév használatával beágyazott tartalommal, hagyja ki ezt a lépést, és haladjon tovább a 2. lépéssel.If you already have content that's embedded using a service principal, skip this step and advance to step 2.

2. lépés – Tanúsítvány létrehozásaStep 2 - Create a certificate

A tanúsítványt beszerezheti egy megbízható hitelesítésszolgáltatótól, vagy létrehozhat egyet magának.You can procure a certificate from a trusted Certificate Authority, or generate a certificate yourself.

Ez a szakasz azt ismerteti, hogyan hozhat létre egy tanúsítvány a Azure Key Vault használatával, és hogyan töltheti le a .cer fájlt, amely a nyilvános kulcsot tartalmazza.This section describes creating a certificate using Azure Key Vault, and downloading the .cer file which contains the public key.

  1. Jelentkezzen be a Microsoft Azure-ba.Log into Microsoft Azure.

  2. A keresőmezőbe írja be a Kulcstartók kifejezést, majd az eredményeknél kattintson a Kulcstartók hivatkozásra.Search for Key Vaults and click the Key Vaults link.

    A kulcstartóra mutató hivatkozás képernyőképe az Azure Portalról.

  3. Kattintson arra a kulcstartóra, amelyhez a tanúsítványt szeretné hozzáadni.Click the key vault you want to add a certificate to.

    Kitakart kulcstartó-lista képernyőképe az Azure Portalról.

  4. Kattintson a Tanúsítványok gombra.Click Certificates.

    A Kulcstartók oldal képernyőképe a Tanúsítványok gomb kiemelésével.

  5. Kattintson a Létrehozás/Importálás gombra.Click Generate/Import.

    A Tanúsítvány panelen kiemelt Létrehozás/Importálás elem képernyőképe.

  6. A Tanúsítvány létrehozása mezőket konfigurálja a következőképpen:Configure the Create a certificate fields as follows:

    • Tanúsítvány-létrehozási módszer – ÁltalánosMethod of Certificate Creation - General

    • Tanúsítvány neve – Adja meg a tanúsítvány nevétCertificate Name - Enter a name for your certificate

    • A hitelesítésszolgáltató (CA) típusa – Önaláírt tanúsítványType of Certificate Authority (CA) - Self-signed certificate

    • Tárgy – Egy X.500 típusú megkülönböztető név.Subject - An X.500 distinguished name

    • DNS-nevek – 0 DNS-névDNS Names - 0 DNS names

    • Érvényességi idő (hónapokban) – Adja meg a tanúsítvány érvényességi időtartamátValidity Period (in months) - Enter the certificate's validity duration

    • Tartalom típusa – PKCS #12Content Type - PKCS #12

    • Élettartam-művelet típusa – Automatikus megújítás az élettartam adott százalékánálLifetime Action Type - Automatically renew at a given percentage lifetime

    • Élettartam százaléka – 80Percentage Lifetime - 80

    • Speciális szabályzatkonfiguráció – Nincs konfigurálvaAdvanced Policy Configuration - Not configured

  7. Kattintson a Létrehozás lehetőségre.Click Create. Az újonnan létrehozott tanúsítvány alapértelmezés szerint le van tiltva.The newly created certificate is disabled by default. Az engedélyezés akár öt percet is igénybe vehet.It can take up to five minutes to become enabled.

  8. Válassza ki a létrehozott tanúsítványt.Select the certificate you created.

  9. Kattintson a Letöltés CER formátumban lehetőségre.Click Download in CER format. A letöltött fájl tartalmazza a nyilvános kulcsot.The downloaded file contains the public key.

    A Letöltés CER formátumban gomb képernyőképe.

3. lépés – A tanúsítványalapú hitelesítés beállításaStep 3 - Set up certificate authentication

  1. Az Azure AD-alkalmazásban kattintson a Tanúsítványok és titkos kódok fülre.In your Azure AD application, click the Certificates & secrets tab.

    Egy alkalmazás Tanúsítványok és titkos kódok lapját ábrázoló képernyőkép az Azure Portalról.

  2. Kattintson a Tanúsítvány feltöltése elemre, és töltse fel azt a .cer fájlt, amelyet az oktatóanyag 2. lépésében hozott létre és töltött le.Click Upload certificate and upload the .cer file you created and downloaded in step 2 of this tutorial. A .cer fájl tartalmazza a nyilvános kulcsot.The .cer file contains the public key.

4. lépés – Tanúsítvány beszerzése az Azure Key VaultbólStep 4 - Get the certificate from Azure Key Vault

A tanúsítvány Azure Key Vaultból való beszerzéséhez használja a felügyeltszolgáltatás-identitás (Managed Service Identity – MSI) funkciót.Use Managed Service Identity (MSI) to get the certificate from Azure Key Vault. A folyamathoz be kell szereznie a nyilvános és titkos kulcsokat egyaránt tartalmazó .pfx tanúsítványt.This process involves getting the .pfx certificate that contains both the public and private keys.

A tanúsítvány Azure Key Vaultból való beolvasásához tekintse meg a következő kódrészletet.Refer to the code example for reading the certificate from Azure Key Vault. Ha pedig a Visual Studiót szeretné használni, tekintse meg A Visual Studio konfigurálása felügyelt szolgáltatás identitásának használatára című szakaszt.If you want to use Visual Studio, refer to Configure Visual Studio to use 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;
    try
    {
        certificate = keyVaultClient.GetCertificateAsync($"https://{KeyVaultName}.vault.azure.net/", certName).Result;
        secret = keyVaultClient.GetSecretAsync(certificate.SecretIdentifier.Identifier).Result;
    }
    catch (Exception)
    {
        return null;
    }

    return new X509Certificate2(Convert.FromBase64String(secret.Value));
}

5. lépés – Hitelesítés egyszerű szolgáltatásnév és egy tanúsítvány használatávalStep 5 - Authenticate using service principal and a certificate

Ahhoz, hogy az alkalmazást egy egyszerű szolgáltatásnév és egy Azure Key Vaultban tárolt tanúsítvány használatával hitelesíthesse, csatlakozzon az Azure Key Vaulthoz.You can authenticate your app using service principal and a certificate that's stored in Azure Key Vault, by connecting to Azure Key Vault.

Az Azure Key Vaulthoz való csatlakozáshoz és a tanúsítvány beolvasásához tekintse meg a következő kódot:To connect and read the certificate from Azure Key Vault, refer to the code below.

Megjegyzés

Ha már rendelkezik a vállalat által létrehozott tanúsítvánnyal, töltse fel a .pfx fájlt az Azure Key Vaultba.If you already have a certificate created by your organization, upload the .pfx file to 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();
    try
    {
        authenticationResult = await clientApp.AcquireTokenForClient(Scope).ExecuteAsync();
    }
    catch (MsalException)
    {
        throw;
    }
    return authenticationResult
}

A Visual Studio konfigurálása felügyelt szolgáltatási identitás használatáraConfigure Visual Studio to use MSI

A beágyazott megoldás létrehozásakor hasznos lehet, ha a Visual Studióban beállítja a felügyeltszolgáltatás-identitás (Managed Service Identity – MSI) használatát.When creating your embedded solution, it may be useful to configure Visual Studio to use Managed Service Identity (MSI). A felügyeltszolgáltatás-identitás (MSI) egy olyan szolgáltatás, amely lehetővé teszi, az Azure AD-identitások kezelését.MSI is a feature that enables you to manage your Azure AD identity. A konfigurálást követően lehetővé teszi a Visual Studio számára, hogy a hitelesítést az Azure Key Vault használatával végezze.Once configured, it will let Visual Studio authenticate against your Azure Key Vault.

  1. Nyissa meg a projektjét a Visual Studióban.Open your project in Visual Studio.

  2. Kattintson az Eszközök > Beállítások elemre.Click Tools > Options.

    A Visual Studio Eszközök menüjének Beállítások gombját ábrázoló képernyőkép.

  3. A keresőmezőbe írja be a Fiókválasztás kifejezést, majd az eredményeknél kattintson a Fiókválasztás lehetőségre.Search for Account Selection and click Account Selection.

    A Visual Studio Beállítások ablakában látható Fiókválasztás lehetőség képernyőképe.

  4. Adja meg a Azure Key Vaulthoz hozzáféréssel rendelkező fiókot.Add the account that has access to your Azure Key Vault.

Következő lépésekNext steps