Vloženie obsahu služby Power BI pomocou objektu služby a certifikátu

Overovanie na základe certifikátu vám umožňuje overovať sa pomocou služby Azure Active Directory (Azure AD) s klientskym certifikátom v zariadení so systémom Windows, Android alebo iOS, prípadne uloženým v službe Azure Key Vault.

Táto metóda overovania vám umožňuje spravovať certifikáty z centrálneho miesta pomocou CA na striedanie alebo zrušenie.

Ďalšie informácie o certifikátoch v službe Azure AD nájdete na stránke GitHubu o postupoch poverení klienta.

Metóda

  1. Vložte obsah pomocou objektu služby.

  2. Vytvorte certifikát.

  3. Nastavte overenie certifikátu.

  4. Získajte certifikát zo služby Azure Key Vault.

  5. Vykonajte overenie pomocou objektu služby a certifikátu.

Krok 1 – vložte obsah pomocou objektu služby

Ak chcete vložiť obsah pomocou objektu služby, postupujte podľa pokynov v téme Vloženie obsahu služby Power BI pomocou objektu služby a tajného kľúča aplikácie.

Poznámka

Ak už máte obsah vložený pomocou objektu služby, tento krok môžete vynechať a prejdite na krok 2.

Krok 2 – vytvorte certifikát

Certifikát si môžete obstarať z dôveryhodnej certifikačnej autority alebo si ho môžete vygenerovať sami.

Táto časť sa venuje vytváraniu certifikátu pomocou služby Azure Key Vault a stiahnutiu súboru .cer, ktorý obsahuje verejný kľúč.

  1. Prihláste sa do služby Microsoft Azure.

  2. Vyhľadajte výraz Key Vaults a kliknite na prepojenie Key Vaults.

    Snímka obrazovky znázorňujúca prepojenie na kľúčový trezor na portáli Microsoft Azure.

  3. Kliknite na službu Key Vault, do ktorej chcete pridať certifikát.

    Snímka obrazovky znázorňujúca zoznam rozmazaných kľúčových trezorov na portáli Microsoft Azure.

  4. Kliknite na položku Certificates (Certifikáty).

    Snímka obrazovky znázorňujúca stránku s trezormi kľúčov s označenou možnosťou Certifikáty.

  5. Kliknite na položku Generate/Import (Generovať/Importovať).

    Snímka obrazovky znázorňujúca tablu certifikátov s označenou možnosťou Generovať/importovať.

  6. Polia Create a certificate (Vytvoriť certifikát) nakonfigurujte týmto spôsobom:

    • Method of Certificate Creation (Metóda tvorby certifikátu) – General (Všeobecná)

    • Certificate Name (Názov certifikátu) – Zadajte názov svojho certifikátu

    • Type of Certificate Authority (CA) (Typ certifikačnej autority) – Self-signed certificate (Certifikát s vlastným podpisom)

    • Subject (Predmet) – X.500 (rozlišujúci názov)

    • DNS Names (Názvy DNS) – 0 názvov DNS

    • Validity Period (in months) (Doba platnosti v mesiacoch) – Zadajte dobu platnosti certifikátu

    • Content Type (Typ obsahu) – PKCS #12

    • Lifetime Action Type (Typ akcie týkajúci sa životnosti) – Automatické obnovenie po dosiahnutí určitého percenta životnosti

    • Percentage Lifetime (Percentuálna životnosť) – 80

    • Advanced Policy Configuration (Rozšírená konfigurácia politiky) – Not configured (Nenakonfigurované)

  7. Kliknite na možnosť Create (Vytvoriť). Novovytvorený certifikát je predvolene zakázaný. Môže trvať niekoľko minút, kým sa povolí.

  8. Vyberte vytvorený certifikát.

  9. Kliknite na položku Download in CER format (Stiahnuť vo formáte CER). Stiahnutý súbor obsahuje verejný kľúč.

    Snímka obrazovky znázorňujúca tlačidlo stiahnutia vo formáte cer.

Krok 3 – nastavte overenie certifikátu

  1. V aplikácii Azure AD kliknite na kartu Certificates & secrets (Certifikáty a tajné kódy).

    Snímka obrazovky zobrazuje tablu Certifikáty a tajné kódy pre aplikáciu na portáli Microsoft Azure.

  2. Kliknite na položku Upload certificate (Nahrať certifikát) a nahrajte súbor .cer, ktorý ste vytvorili a stiahli v kroku 2 tohto kurzu. Súbor .cer obsahuje verejný kľúč.

Krok 4 – získajte certifikát zo služby Azure Key Vault

Pomocou identity spravovanej služby (Managed Service Identity, MSI) môžete získať certifikát zo služby Azure Key Vault. Tento proces zahŕňa získanie certifikátu .pfx, ktorý obsahuje verejný aj súkromný kľúč.

Pozrite si príklad kódu na čítanie certifikátu zo služby Azure Key Vault. Ak chcete používať Visual Studio, pozrite si časť Konfigurácia Visual Studia na používanie 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));
}

Krok 5 – vykonajte overenie pomocou objektu služby a certifikátu

Aplikáciu môžete overiť pomocou objektu služby a certifikátu, ktorý je uložený v službe Azure Key Vault, a to tak, že sa pripojíte k službe Azure Key Vault.

Ak sa chcete pripojiť k službe Azure Key Vault a prečítať v nej certifikát, pozrite si nižšie uvedený kód.

Poznámka

Ak vaša organizácia už vytvorila certifikát, nahrajte súbor .pfx do služby 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
}

Konfigurácia Visual Studia na používanie MSI

Pri vytváraní vloženého riešenia môže byť užitočné nakonfigurovať Visual Studio na používanie identity spravovanej služby (Managed Service Identity, MSI). MSI je funkcia, ktorá vám umožňuje spravovať identitu služby Azure AD. Po nakonfigurovaní umožní Visual Studiu overovať sa v službe Azure Key Vault.

Poznámka

Používateľ, ktorý sa prihlási do Visual Studio, musí mať povolenia na získanie certifikátu.

  1. Otvorte svoj projekt vo Visual Studiu.

  2. Kliknite na položky Tools (Nástroje) > Options (Možnosti) .

    Snímka obrazovky znázorňujúca tlačidlo možností v ponuke nástrojov v programe Visual Studio.

  3. Vyhľadajte výraz Account Selection (Výber konta) a kliknite na položku Account Selection (Výber konta).

    Snímka obrazovky znázorňujúca možnosť výberu konta v okne možností programu Visual Studio.

  4. Pridajte konto, ktoré má prístup k službe Azure Key Vault.

Ďalšie kroky