Autenticazione e autorizzazione per l'API Azure Time Series InsightsAuthentication and authorization for Azure Time Series Insights API

Questo articolo descrive come configurare l'autenticazione e l'autorizzazione usata in un'applicazione personalizzata che chiama l'API Azure Time Series Insights.This article explains how to configure the authentication and authorization used in a custom application that calls the Azure Time Series Insights API.

Entità servizioService principal

Questa sezione illustra come configurare un'applicazione per accedere all'API Time Series Insights per conto dell'applicazione.This section explains how to configure an application to access the Time Series Insights API on behalf of the application. L'applicazione può quindi eseguire query sui dati o pubblicare dati di riferimento nell'ambiente Time Series Insights con le credenziali dell'applicazione e non con quelle dell'utente.The application can then query data or publish reference data in the Time Series Insights environment with application credentials rather than user credentials.

Quando un'applicazione deve accedere a Time Series Insights, è necessario configurare un'applicazione Azure Active Directory e assegnare i criteri di accesso ai dati nell'ambiente Time Series Insights.When you have an application that must access Time Series Insights, you must set up an Azure Active Directory application and assign the data access policies in the Time Series Insights environment. Questo approccio è preferibile all'esecuzione dell'app con le credenziali dell'utente per i motivi seguenti:This approach is preferable to running the app under your own credentials because:

  • È possibile assegnare all'identità dell'app autorizzazioni diverse rispetto a quelle dell'utente.You can assign permissions to the app identity that are different from your own permissions. Tali autorizzazioni sono in genere limitate alle operazioni necessarie per l'app.Typically, these permissions are restricted to only what the app requires. Ad esempio, è possibile consentire all'app solo di leggere i dati in un particolare ambiente Time Series Insights.For example, you can allow the app to only read data in a particular Time Series Insights environment.
  • Non è necessario modificare le credenziali dell'app in caso di cambiamento delle responsabilità dell'utente.You don't have to change the app's credentials if your responsibilities change.
  • È possibile usare un certificato o una chiave dell'applicazione per automatizzare l'autenticazione in caso di esecuzione di uno script automatico.You can use a certificate or an application key to automate authentication when you're running an unattended script.

Questo articolo illustra come eseguire questa procedura tramite il portale di Azure.This article shows how to perform those steps through the Azure portal. È incentrato su un'applicazione con un tenant singolo dove si prevede che l'applicazione venga eseguita all'interno di una sola organizzazione.It focuses on a single-tenant application where the application is intended to run in only one organization. Le applicazioni con un tenant singolo si usano in genere per applicazioni line-of-business eseguite all'interno dell'organizzazione.You typically use single-tenant applications for line-of-business applications that run in your organization.

Il flusso di configurazione è costituito da tre passaggi generali:The setup flow consists of three high-level steps:

  1. Creare un'applicazione in Azure Active Directory.Create an application in Azure Active Directory.
  2. Autorizzare questa applicazione ad accedere all'ambiente Time Series Insights.Authorize this application to access the Time Series Insights environment.
  3. Usare l'ID e la chiave dell'applicazione per acquisire un token per un destinatario o una risorsa "https://api.timeseries.azure.com/".Use the application ID and key to acquire a token to the "https://api.timeseries.azure.com/" audience or resource. Il token può quindi essere usato per chiamare l'API Time Series Insights.The token can then be used to call the Time Series Insights API.

Ecco di seguito i passaggi dettagliati:Here are the detailed steps:

  1. Nel portale di Azure selezionare Azure Active Directory > Registrazioni per l'app > Registrazione nuova applicazione.In the Azure portal, select Azure Active Directory > App registrations > New application registration.

    Registrazione di una nuova applicazione in Azure Active Directory

  2. Assegnare un nome all'applicazione, selezionare il tipo App Web/API, selezionare un URI valido in URL di accesso e fare clic su Crea.Give the application a name, select the type to be Web app / API, select any valid URI for Sign-on URL, and click Create.

    Creare l'applicazione in Azure Active Directory

  3. Selezionare l'applicazione appena creata e copiare il relativo ID in un editor di testo.Select your newly created application and copy its application ID to your favorite text editor.

    Copiare l'ID applicazione

  4. Selezionare Chiavi, immettere il nome della chiave, selezionare la scadenza e fare clic su Salva.Select Keys, enter the key name, select the expiration, and click Save.

    Selezionare le chiavi dell'applicazione

    Immettere il nome e la scadenza della chiave e fare clic su Salva

  5. Copiare la chiave in un editor di testo.Copy the key to your favorite text editor.

    Copiare la chiave dell'applicazione

  6. Per l'ambiente Time Series Insights, selezionare Criteri di accesso ai dati e fare clic su Aggiungi.For the Time Series Insights environment, select Data Access Policies and click Add.

    Aggiungere nuovi criteri di accesso ai dati per l'ambiente Time Series Insights

  7. Nella finestra di dialogo Seleziona utente incollare il nome dell'applicazione (dal passaggio 2) o l'ID dell'applicazione (dal passaggio 3).In the Select User dialog box, paste the application name (from step 2) or application ID (from step 3).

    Trovare un'applicazione nella finestra di dialogo Seleziona utente

  8. Selezionare il ruolo (Lettore per eseguire query sui dati, Collaboratore per eseguire query sui dati e modificare i dati di riferimento) e fare clic su Ok.Select the role (Reader for querying data, Contributor for querying data and changing reference data) and click Ok.

    Selezionare Lettore o Collaboratore nella finestra di dialogo Selezionare un ruolo

  9. Salvare il criterio facendo clic su Ok.Save the policy by clicking Ok.

  10. Usare l'ID dell'applicazione (dal passaggio 3) e la chiave dell'applicazione (dal passaggio 5) per acquisire il token per conto dell'applicazione.Use the application ID (from step 3) and application key (from step 5) to acquire the token on behalf of the application. Il token può quindi essere passato nell'intestazione Authorization quando l'applicazione chiama l'API Time Series Insights.The token can then be passed in the Authorization header when the application calls the Time Series Insights API.

    Se si usa C#, è possibile usare il codice seguente per acquisire il token per conto dell'applicazione.If you're using C#, you can use the following code to acquire the token on behalf of the application. Per un esempio completo, vedere Eseguire query sui dati tramite C#.For a complete sample, see Query data using C#.

    var authenticationContext = new AuthenticationContext(
        "https://login.microsoftonline.com/common",
        TokenCache.DefaultShared);
    
    AuthenticationResult token = await authenticationContext.AcquireTokenAsync(
        // Set the resource URI to the Azure Time Series Insights API
        resource: "https://api.timeseries.azure.com/", 
        clientCredential: new ClientCredential(
            // Application ID of application registered in Azure Active Directory
            clientId: "1bc3af48-7e2f-4845-880a-c7649a6470b8", 
            // Application key of the application that's registered in Azure Active Directory
            clientSecret: "aBcdEffs4XYxoAXzLB1n3R2meNCYdGpIGBc2YC5D6L2="));
    
    string accessToken = token.AccessToken;
    

Usare l'ID e la chiave dell'applicazione per eseguire l'autenticazione con Azure Time Series Insight.Use the application ID and key in your application to authenticate with Azure Time Series Insight.

Passaggi successiviNext steps