Udostępnij za pośrednictwem


Osadzanie zawartości usługi Power BI przy użyciu jednostki usługi i certyfikatu

Uwierzytelnianie oparte na certyfikatach umożliwia uwierzytelnienie w usłudze Microsoft Entra ID przy użyciu certyfikatu klienta. Certyfikat klienta może znajdować się na urządzeniu z systemem Windows, Android lub iOS albo certyfikat klienta można przechowywać w usłudze Azure Key Vault.

Użycie tej metody uwierzytelniania umożliwia zarządzanie certyfikatami z centralnego miejsca przy użyciu urzędu certyfikacji w celu rotacji lub odwołania.

Więcej informacji na temat certyfikatów można uzyskać na stronie Przepływy poświadczeń klienta w Microsoft Entra ID.

Metoda

  1. Osadź zawartość przy użyciu konta usługi.

  2. Utwórz certyfikat.

  3. Konfigurowanie uwierzytelniania certyfikatu.

  4. Pobierz certyfikat z usługi Azure Key Vault.

  5. Uwierzytelnij się, używając jednostki usługi i certyfikatu.

Krok 1: Osadź swoją zawartość za pomocą podstawowego elementu usługi

Aby osadzić twoją zawartość przy użyciu jednostki usługi, postępuj zgodnie z instrukcjami w Osadzanie zawartości usługi Power BI przy użyciu jednostki usługi i tajnego klucza aplikacji.

Uwaga / Notatka

Jeśli masz już zawartość osadzoną przy użyciu zasady usługi, pomiń ten krok i przejdź do kroku 2.

Krok 2. Tworzenie certyfikatu

Możesz uzyskać certyfikat od zaufanego urzędu certyfikacji lub samodzielnie wygenerować certyfikat.

W tej sekcji opisano tworzenie certyfikatu przy użyciu usługi Azure Key Vault oraz pobieranie pliku .cer zawierającego klucz publiczny.

  1. Zaloguj się do platformy Microsoft Azure.

  2. Wyszukaj i wybierz link Magazyny kluczy.

    Zrzut ekranu przedstawiający okno witryny Azure Portal z linkiem do usługi key vault na liście Usługi.

  3. Wybierz magazyn kluczy, do którego chcesz dodać certyfikat.

    Zrzut ekranu przedstawiający okno portalu Azure z listą rozmytych magazynów kluczy w sekcji Magazyny kluczy.

  4. Wybierz pozycję Certyfikaty.

    Zrzut ekranu przedstawiający okno portalu Azure ze stroną Zasoby kluczy, na której wyróżniono element Certyfikaty.

  5. Wybierz pozycję Generuj/Importuj.

    Zrzut ekranu przedstawiający okno portalu Azure, w którym jest wyświetlany panel Certyfikaty z wyróżnioną pozycją Generuj/Importuj.

  6. Skonfiguruj pola Utwórz certyfikat w następujący sposób:

    • Metoda tworzenia certyfikatu — ogólne

    • Nazwa certyfikatu — wprowadź nazwę certyfikatu

    • Typ urzędu certyfikacji — certyfikat z podpisem własnym

    • Podmiot — wyróżniająca nazwa X.500

    • Nazwy DNS — 0 nazw DNS

    • Okres ważności (w miesiącach) — wprowadź czas ważności certyfikatu

    • Typ zawartości — PKCS #12

    • Typ akcji na cały okres — automatyczne odnawianie przy danym procentowym okresie istnienia

    • Czas życia procentowy — 80

    • Konfiguracja zasad zaawansowanych — nieskonfigurowane

  7. Wybierz pozycję Utwórz. Nowo utworzony certyfikat jest domyślnie wyłączony. Włączenie może potrwać do pięciu minut.

  8. Wybierz utworzony certyfikat.

  9. Wybierz pozycję Pobierz w formacie CER. Pobrany plik zawiera klucz publiczny.

    Zrzut ekranu przedstawiający okno witryny Azure Portal z wyróżnionym przyciskiem Pobierz w formacie CER.

Krok 3. Konfigurowanie uwierzytelniania certyfikatu

  1. W aplikacji Microsoft Entra wybierz kartę Certyfikaty i wpisy tajne .

    Zrzut ekranu okna portalu Azure, pokazujący okienko certyfikatów i wpisów tajnych dla aplikacji.

  2. Wybierz pozycję Przekaż certyfikat i przekaż utworzony i pobrany plik .cer w kroku 2 tego samouczka. Plik .cer zawiera klucz publiczny.

Krok 4. Pobieranie certyfikatu z usługi Azure Key Vault

Użyj tożsamości usługi zarządzanej (MSI), aby pobrać certyfikat z usługi Azure Key Vault. Ten proces obejmuje pobranie certyfikatu pfx zawierającego zarówno klucze publiczne, jak i prywatne.

Zapoznaj się z przykładem kodu, aby odczytać certyfikat z usługi Azure Key Vault. Jeśli chcesz użyć programu Visual Studio, zapoznaj się z tematem Konfigurowanie programu Visual Studio do korzystania z 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));
}

Krok 5. Uwierzytelnianie przy użyciu jednostki usługi i certyfikatu

Możesz uwierzytelnić aplikację korzystającą z jednostki usługi i certyfikatu przechowywanego w usłudze Azure Key Vault, łącząc się z usługą Azure Key Vault.

Aby nawiązać połączenie i odczytać certyfikat z usługi Azure Key Vault, zapoznaj się z poniższym przykładem kodu.

Uwaga / Notatka

Jeśli masz już certyfikat utworzony przez organizację, przekaż plik pfx do usługi 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();
}

Skonfiguruj program Visual Studio do korzystania z instalatora MSI

Podczas tworzenia osadzonego rozwiązania może być przydatne skonfigurowanie programu Visual Studio do korzystania z tożsamości usługi zarządzanej (MSI). MSI (Zarządzana Tożsamość Usługi) to funkcja umożliwiająca zarządzanie tożsamością Microsoft Entra. Po skonfigurowaniu Visual Studio pozwoli na uwierzytelnianie w usłudze Azure Key Vault.

Uwaga / Notatka

Użytkownik logujący się do programu Visual Studio wymaga uprawnień usługi Azure Key Vault w celu uzyskania certyfikatu.

  1. Otwórz projekt w programie Visual Studio.

  2. Wybierz Narzędzia>Opcje.

    Zrzut ekranu przedstawiający okno programu Visual Studio z wyróżnionym przyciskiem Opcje w menu Narzędzia.

  3. Wyszukaj i wybierz pozycję Wybór konta.

    Zrzut ekranu przedstawiający okno Opcje programu Visual Studio z wyróżnioną opcją Wybór konta w wynikach wyszukiwania.

  4. Dodaj konto, które ma dostęp do usługi Azure Key Vault.