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

Uwierzytelnianie oparte na certyfikatach umożliwia uwierzytelnianie za pomocą identyfikatora entra firmy Microsoft 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 do rotacji lub odwołania.

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

Method

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

  2. Utwórz certyfikat.

  3. Konfigurowanie uwierzytelniania certyfikatu.

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

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

Krok 1. Osadzanie zawartości przy użyciu jednostki usługi

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

Uwaga

Jeśli masz już zawartość osadzoną przy użyciu jednostki 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 witryny Azure Portal z listą rozmytych magazynów kluczy na liście Magazyny kluczy.

  4. Wybierz Certyfikaty.

    Zrzut ekranu przedstawiający okno witryny Azure Portal ze stroną Magazyny kluczy z wyróżnionym elementem Certyfikaty.

  5. Wybierz Generuj/Import.

    Zrzut ekranu przedstawiający okno witryny Azure Portal, w którym jest wyświetlane okienko Certyfikat z wyróżnionym 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

    • Temat — nazwa wyróżniająca 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 okresu istnienia — automatyczne odnawianie w danym okresie istnienia procentowego

    • Okres istnienia procentu — 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 przedstawiający okno witryny Azure Portal z okienkiem 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 tożsamości usługi zarządzanej.

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

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();
}

Konfigurowanie programu Visual Studio do korzystania z tożsamości usługi zarządzanej

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

Uwaga

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 pozycję Opcje narzędzi>.

    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.