Incorporare contenuto di Power BI con un'entità servizio e un certificato
L'autenticazione basata su certificati consente di essere autenticati da Microsoft Entra ID con un certificato client. Il certificato client può trovarsi in un dispositivo Windows, Android o iOS oppure il certificato client può essere mantenuto in un insieme di credenziali delle chiavi di Azure.
L'uso di questo metodo di autenticazione consente di gestire i certificati da una posizione centrale usando l'autorità di certificazione (CA) per la rotazione o la revoca.
Altre informazioni sui certificati sono disponibili in Microsoft Entra ID nella pagina GitHub dei flussi di credenziali client.
metodo
Incorporare il contenuto con l'entità servizio.
Configurare l'autenticazione del certificato.
Eseguire l'autenticazione usando un'entità servizio e un certificato.
Passaggio 1: Incorporare il contenuto con l'entità servizio
Per incorporare il contenuto con un'entità servizio, seguire le istruzioni in Incorporare contenuto di Power BI con un'entità servizio e un segreto dell'applicazione.
Nota
Se si dispone già di contenuto incorporato usando un'entità servizio, ignorare questo passaggio e passare al passaggio 2.
Passaggio 2: Creare un certificato
È possibile ottenere un certificato da un'autorità di certificazione attendibile o generare manualmente un certificato.
Questa sezione descrive la creazione di un certificato con Azure Key Vault e il download del file di .cer che contiene la chiave pubblica.
Accedere a Microsoft Azure.
Cercare e selezionare il collegamento Insiemi di credenziali delle chiavi .
Selezionare l'insieme di credenziali delle chiavi a cui si vuole aggiungere un certificato.
Seleziona Certificati.
Seleziona Genera/Importa.
Configurare i campi Crea un certificato come indicato di seguito:
Metodo di creazione del certificato - Generale
Nome certificato: immettere un nome per il certificato
Tipo di autorità di certificazione (CA) - Certificato autofirmato
Oggetto - Nome distinto X.500
Nomi DNS - 0 nomi DNS
Periodo di validità (in mesi) - Immettere la durata di validità del certificato
Tipo di contenuto - PKCS #12
Tipo di azione durata - Rinnovo automatico in una determinata percentuale di durata
Durata percentuale - 80
Configurazione avanzata dei criteri - Non configurata
Seleziona Crea. Il certificato appena creato è disabilitato per impostazione predefinita. L'abilitazione può richiedere fino a cinque minuti.
Selezionare il certificato creato.
Selezionare Download in formato CER. Il file scaricato contiene la chiave pubblica.
Passaggio 3: Configurare l'autenticazione del certificato
Nell'applicazione Microsoft Entra selezionare la scheda Certificati e segreti .
Selezionare Carica certificato e caricare il file .cer creato e scaricato nel passaggio 2 di questa esercitazione. Il file .cer contiene la chiave pubblica.
Passaggio 4: Ottenere il certificato da Azure Key Vault
Usare l'identità del servizio gestita (MSI) per ottenere il certificato da Azure Key Vault. Questo processo comporta il recupero del certificato pfx che contiene sia le chiavi pubbliche che private.
Fare riferimento all'esempio di codice per leggere il certificato da Azure Key Vault. Per usare Visual Studio, vedere Configurare Visual Studio per l'uso dell'identità del servizio gestito.
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));
}
Passaggio 5: Eseguire l'autenticazione con un'entità servizio e un certificato
È possibile autenticare l'app che usa un'entità servizio e un certificato archiviato in Azure Key Vault connettendosi ad Azure Key Vault.
Per connettersi e leggere il certificato da Azure Key Vault, vedere l'esempio di codice seguente.
Nota
Se si ha già un certificato creato dall'organizzazione, caricare il file con estensione pfx in 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();
}
Configurare Visual Studio per l'uso dell'identità del servizio gestito
Quando si crea una soluzione incorporata, potrebbe essere utile configurare Visual Studio per l'uso dell'identità del servizio gestita. MSI è una funzionalità che consente di gestire l'identità di Microsoft Entra. Dopo la configurazione, Visual Studio eseguirà l'autenticazione in Azure Key Vault.
Nota
L'utente che accede a Visual Studio richiede le autorizzazioni di Azure Key Vault per ottenere il certificato.
Aprire il progetto in Visual Studio.
Selezionare Opzioni strumenti>.
Cercare e selezionare Selezione account.
Aggiungere l'account che ha accesso ad Azure Key Vault.
Contenuto correlato
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per