Creare una registrazione dell'applicazione Microsoft Entra in Azure Esplora dati

Microsoft Entra l'autenticazione dell'applicazione viene usata per le applicazioni, ad esempio un servizio automatico o un flusso pianificato, che devono accedere ad Azure Esplora dati senza un utente presente. Se ci si connette a un database di Azure Esplora dati usando un'applicazione, ad esempio un'app Web, è necessario eseguire l'autenticazione usando l'autenticazione dell'entità servizio. Questo articolo illustra come creare e registrare un'entità servizio Microsoft Entra e quindi autorizzarla ad accedere a un database Esplora dati di Azure.

Creare Microsoft Entra registrazione dell'applicazione

Microsoft Entra'autenticazione dell'applicazione richiede la creazione e la registrazione di un'applicazione con Microsoft Entra ID. Un'entità servizio viene creata automaticamente quando viene creata la registrazione dell'applicazione in un tenant Microsoft Entra.

La registrazione dell'app può essere creata nel portale di Azure o a livello di codice con l'interfaccia della riga di comando di Azure. Scegliere la scheda adatta allo scenario.

Registrare l'app

  1. Accedere a portale di Azure e aprire il pannello Microsoft Entra ID.

  2. Passare a Registrazioni app e selezionare Nuova registrazione.

    Screenshot che mostra come avviare una nuova registrazione dell'app.

  3. Denominare l'applicazione, ad esempio "example-app".

  4. Selezionare un tipo di account supportato, che determina chi può usare l'applicazione.

  5. In URI di reindirizzamento selezionare Web per il tipo di applicazione che si vuole creare. L'URI è facoltativo e in questo caso viene lasciato vuoto.

    Screenshot che mostra come registrare una nuova registrazione dell'app.

  6. Selezionare Registra.

Configurare l'autenticazione

Per le entità servizio sono disponibili due tipi di autenticazione: autenticazione basata su password (segreto dell'applicazione) e autenticazione basata su certificato. La sezione seguente descrive l'uso di un'autenticazione basata su password per le credenziali dell'applicazione. In alternativa, è possibile usare un certificato X509 per autenticare l'applicazione. Per altre informazioni, vedere Come configurare Microsoft Entra'autenticazione basata su certificati.

Nel corso di questa sezione verranno copiati i valori seguenti: ID applicazione e valore della chiave. Incollare questi valori in un punto qualsiasi, ad esempio un editor di testo, da usare nel passaggio configurare le credenziali client per il database.

  1. Passare al pannello Panoramica .

  2. Copiare l'ID applicazione (client) e l'ID directory (tenant).

    Nota

    Sono necessari l'ID applicazione e l'ID tenant per autorizzare l'entità servizio ad accedere al database.

  3. Nel pannello Certificati & segreti selezionare Nuovo segreto client.

    Screenshot che mostra come avviare la creazione del segreto client.

  4. Immettere una descrizione e una scadenza.

  5. Selezionare Aggiungi.

  6. Copiare il valore della chiave.

    Nota

    Quando si lascia questa pagina, il valore della chiave non sarà accessibile.

È stata creata l'applicazione Microsoft Entra e l'entità servizio.

Configurare le autorizzazioni delegate per l'applicazione : facoltativo

Se l'applicazione deve accedere al database usando le credenziali dell'utente chiamante, configurare le autorizzazioni delegate per l'applicazione. Ad esempio, se si sta creando un'API Web e si vuole eseguire l'autenticazione usando le credenziali dell'utente che chiama l'API.

Se è sufficiente accedere a una risorsa dati autorizzata, è possibile ignorare questa sezione e continuare a Concedere a un'entità servizio l'accesso al database.

  1. Passare al pannello Autorizzazioni API della registrazione dell'app.

  2. Selezionare Aggiungi un'autorizzazione.

  3. Selezionare API usate dall'organizzazione.

  4. Cercare e selezionare Azure Esplora dati.

    Screenshot che mostra come aggiungere l'autorizzazione API Esplora dati di Azure.

  5. In Autorizzazioni delegate selezionare la casella user_impersonation .

  6. Selezionare Aggiungi autorizzazioni.

    Screenshot che mostra come selezionare le autorizzazioni delegate con la rappresentazione dell'utente.

Concedere a un'entità servizio l'accesso al database

Dopo aver creato la registrazione dell'applicazione, è necessario concedere all'entità servizio corrispondente l'accesso al database. Nell'esempio seguente viene fornita l'accesso al visualizzatore. Per altri ruoli, vedere Gestire le autorizzazioni del database.

  1. Usare i valori di ID applicazione e ID tenant come copiati in un passaggio precedente.

  2. Eseguire il comando seguente nell'editor di query, sostituendo i valori segnaposto ApplicationID e TenantID con i valori effettivi:

    .add database <DatabaseName> viewers ('aadapp=<ApplicationID>;<TenantID>') '<Notes>'
    

    Ad esempio:

    .add database Logs viewers ('aadapp=1234abcd-e5f6-g7h8-i9j0-1234kl5678mn;9876abcd-e5f6-g7h8-i9j0-1234kl5678mn') 'App Registration'
    

    L'ultimo parametro è una stringa che viene visualizzata come note quando si eseguono query sui ruoli associati a un database.

    Nota

    Dopo aver creato la registrazione dell'applicazione, potrebbe verificarsi un ritardo di alcuni minuti fino a quando non è possibile farvi riferimento. Se viene visualizzato un errore che indica che l'applicazione non è stata trovata, attendere e riprovare.

Per altre informazioni sui ruoli, vedere Controllo degli accessi in base al ruolo.

Usare le credenziali dell'applicazione per accedere a un database

Usare le credenziali dell'applicazione per accedere al database a livello di codice usando la libreria client.

. . .
string applicationClientId = "<myClientID>";
string applicationKey = "<myApplicationKey>";
string authority = "<myApplicationTenantID>";
. . .
var kcsb = new KustoConnectionStringBuilder($"https://{clusterName}.kusto.windows.net/{databaseName}")
    .WithAadApplicationKeyAuthentication(
        applicationClientId,
        applicationKey,
        authority);
var client = KustoClientFactory.CreateCslQueryProvider(kcsb);
var queryResult = client.ExecuteQuery($"{query}");

Nota

Specificare l'ID applicazione e la chiave della registrazione dell'applicazione (entità servizio) creata in precedenza.

Per altre informazioni, vedere Come eseguire l'autenticazione con Microsoft Authentication Library (MSAL) nelle app e usare Azure Key Vault con l'app Web .NET Core.

Risoluzione dei problemi

Errore di risorsa non valido

Se l'applicazione viene usata per autenticare gli utenti o le applicazioni per l'accesso, è necessario configurare le autorizzazioni delegate per l'applicazione di servizio. Dichiarare che l'applicazione può autenticare utenti o applicazioni per l'accesso. In caso contrario, verrà generato un errore simile al seguente, quando viene effettuato un tentativo di autenticazione:

AADSTS650057: Invalid resource. The client has requested access to a resource which is not listed in the requested permissions in the client's application registration...

È necessario seguire le istruzioni per configurare le autorizzazioni delegate per l'applicazione.

L'amministratore del tenant Microsoft Entra potrebbe applicare un criterio che impedisce agli utenti tenant di concedere il consenso alle applicazioni. Questa situazione genererà un errore simile al seguente, quando un utente tenta di accedere all'applicazione:

AADSTS65001: The user or administrator has not consented to use the application with ID '<App ID>' named 'App Name'

È necessario contattare l'amministratore del Microsoft Entra per concedere il consenso per tutti gli utenti nel tenant o abilitare il consenso dell'utente per l'applicazione specifica.