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
Konfigurowanie uwierzytelniania certyfikatu.
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.
Zaloguj się do platformy Microsoft Azure.
Wyszukaj i wybierz link Magazyny kluczy.
Wybierz magazyn kluczy, do którego chcesz dodać certyfikat.
Wybierz Certyfikaty.
Wybierz Generuj/Import.
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
Wybierz pozycję Utwórz. Nowo utworzony certyfikat jest domyślnie wyłączony. Włączenie może potrwać do pięciu minut.
Wybierz utworzony certyfikat.
Wybierz pozycję Pobierz w formacie CER. Pobrany plik zawiera klucz publiczny.
Krok 3. Konfigurowanie uwierzytelniania certyfikatu
W aplikacji Microsoft Entra wybierz kartę Certyfikaty i wpisy tajne.
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.
Otwórz projekt w programie Visual Studio.
Wybierz pozycję Opcje narzędzi>.
Wyszukaj i wybierz pozycję Wybór konta.
Dodaj konto, które ma dostęp do usługi Azure Key Vault.