Condividi tramite


Autenticare un'app client (API REST di Azure Data Catalog)


Questo articolo illustra come autenticare un'app client Data Catalog. Include esempi in C#. Il processo di autenticazione, tuttavia, è uguale anche per gli altri linguaggi di programmazione.

Data Catalog app client usano Active Directory (Azure AD) per autenticare gli utenti e proteggere le applicazioni. L'autenticazione è il processo di identificazione di un'app o un utente. Per identificare l'app client in Azure AD, registrare l'app con Azure AD. Quando si registra un'app client in Azure Active Directory, si concede all'app l'accesso alle API di Data Catalog. Per informazioni su come registrare l'app client Data Catalog, vedere Registrare un'app client.

Data Catalog chiamate API REST vengono effettuate per conto di un utente autenticato passando un token nell'intestazione "Autorizzazione" della richiesta. Il token viene acquisito tramite Azure Active Directory.

Cosa è necessario autenticare un'app client Data Catalog

Per autenticare un'app client Data Catalog ed eseguire una richiesta Web REST, è necessario:

  1. Registrare l'app client: per registrare un'app client Data Catalog, vedere Registrare un'app client. Quando si registra un'app client in Azure Active Directory, si concede all'app l'accesso alle API di Data Catalog.

  2. Assegnare l'ID client per l'app : per ottenere l'ID client perl'app, vedere Come ottenere un ID app client. L'ID client viene usato dall'applicazione per identificare se stessi agli utenti da cui richiedono le autorizzazioni.

    • Nel codice dell'app client assegnare la variabile clientID al clientID dell'applicazione di Azure.
  3. Assegnare l'URI di reindirizzamento : per un'app client, un uri di reindirizzamento fornisce ad Azure AD altri dettagli sull'applicazione specifica autenticata. Un URI (Uniform Resource Identifier) è un valore che permette di identificare un nome di una risorsa.

    • Nel codice dell'app client assegnare l'Uri di reindirizzamento a https://login.live.com/oauth20_desktop.srf. Poiché un'app client non ha un servizio esterno per il reindirizzamento, questo URI è il segnaposto standard per le app client.
  4. Assegnare l'URI della risorsa per Data Catalog API : l'URI della risorsa identifica la risorsa API Data Catalog.

    • Nel codice dell'app client assegnare il resourceUri a https://datacatalog.azure.com.
  5. Assegnare l'URI dell'autorità OAuth2: l'URI dell'autorità identifica la risorsa dell'autorità OAuth2.

    • Nel codice dell'app client assegnare un URI di autorità a https://login.windows.net/common/oauth2/authorize.

Per effettuare una richiesta di dati al servizio REST Data Catalog, è necessario fornire un token di accesso. In un'app client .NET si usa Microsoft Authentication Library (MSAL) per ottenere un token di accesso.

Importante

Per autenticare un'app client, è necessario aggiungere un riferimento a Microsoft.Identity.Client, incluso in Microsoft Authentication Library (MSAL). Se l'app usa ancora ADAL, eseguirne la migrazione a MSAL. Per altre informazioni, vedere differenze tra ADAL.NET e app MSAL.NET.

Install-Package Microsoft.Identity.Client -Version 4.48.1 

Passaggi per ottenere un token di accesso

L'acquisizione di un token di accesso tramite MSAL dipende dal fatto che si stia creando un client pubblico o un'applicazione client riservata. Per acquisire un token di accesso per lo scenario, vedere la procedura seguente:

Se si dispone di un catalogo dati che usa ancora la libreria ADAL deprecata, eseguire la migrazione dell'app da ADAL a MSAL.

Effettuare una richiesta per Data Catalog API REST usando un token

Dopo aver ottenuto un token di accesso da Active Directory (Azure AD), usare il token per effettuare una richiesta Web all'API REST Data Catalog. Per creare una richiesta Web REST Data Catalog, aggiungere un token di accesso a un'intestazione di richiesta. Ad esempio, in un'app .NET aggiungere

HttpWebRequest request = System.Net.WebRequest.Create(apiUrl) as System.Net.HttpWebRequest;  
...  
string authHeader = authResult.CreateAuthorizationHeader();             
request.Headers.Add("Authorization", authHeader);  

Flusso del contesto di autenticazione di Azure

Per ottenere un token di accesso di Azure in un'app client .NET, usare AuthenticationContext. AuthenticationContext è la classe principale che rappresenta l'autorità emittente dei token per le risorse di Azure AD. AuthenticationContext esegue le operazioni seguenti:

  1. AuthenticationContext avvia il flusso reindirizzando l'agente utente all'endpoint di autorizzazione di Azure Active Directory. L'utente effettua l'autenticazione e accetta le condizioni, se necessario.
  2. L'endpoint di autorizzazione di Azure Active Directory reindirizza l'agente utente ad AuthenticationContext con un codice di autorizzazione. L'agente utente restituisce un codice di autorizzazione all'URI di reindirizzamento dell'applicazione client.
  3. AuthenticationContext richiede un token di accesso dall'endpoint di emissione di token di Azure Active Directory. Presenta il codice di autorizzazione per dimostrare che l'utente ha acconsentito.
  4. L'endpoint di emissione dei token di Azure Active Directory restituisce un token di accesso.
  5. L'applicazione client usa il token di accesso per l'autenticazione nell'API Web.
  6. Dopo aver autenticato l'applicazione client, l'API REST Data Catalog restituisce i dati richiesti.

Per altre informazioni sul flusso di autorizzazioni di Azure Active Directory (Azure AD), vedere Flusso di concessione del codice di autorizzazione.