Condividi tramite


Accedere all'API pubblica di Azure Sphere con l'entità servizio dell'applicazione AAD

Importante

Questa è la documentazione di Azure Sphere (legacy). Azure Sphere (legacy) viene ritirato il 27 settembre 2027 e gli utenti devono eseguire la migrazione ad Azure Sphere (integrato) entro questo periodo. Usare il selettore di versione posizionato sopra il sommario per visualizzare la documentazione di Azure Sphere (integrata).

Gli strumenti automatizzati richiedono l'accesso limitato e l'autenticazione non interattiva anziché l'autenticazione come utente con privilegi completi. A tale scopo, è possibile usare le entità servizio che consentono alle applicazioni di accedere con autorizzazioni specifiche. In poche parole, un'entità servizio di Azure funziona come un'identità che viene creata in Azure quando un'applicazione viene registrata in Azure Active Directory.

In questa modalità, l'autorizzazione di accesso per l'applicazione nel tenant di Azure Active Directory (AAD) viene definita dall'entità servizio, che consente l'autenticazione e l'autorizzazione durante l'accesso alle risorse.

Esistono due tipi di metodi di autenticazione disponibili per le entità servizio, i certificati client e i segreti client.

Prerequisiti

Passaggio 1: Registrare un'entità servizio

  1. Nel riquadro di spostamento sinistro del portale di Azure fare clic su Azure Active Directory.
  2. Registrare un'applicazione con Azure AD e creare un'entità servizio. Prendere nota dell'ID client.
  3. Selezionare tipo di autenticazione. Esistono due tipi di autenticazione disponibili per le entità servizio:
    • Segreto client
    • Certificato client

Passaggio 2: Aggiungere l'entità servizio al tenant di Azure Sphere e assegnare un ruolo

Nota

Assicurarsi di disporre degli elementi seguenti prima di iniziare questo passaggio:

Azure Sphere considera l'entità servizio come un altro utente. Per acquisire un token usando l'entità servizio, aggiungere prima l'utente dell'entità servizio al tenant di Azure Sphere e quindi assegnare un ruolo all'utente in un tenant di Azure Sphere usando l'interfaccia della riga di comando di Azure Sphere.

L'identità utente può essere generata come <ObjectID@<TenantID.onmicrosoft.com>>.

Nell'esempio seguente viene creato un utente usando una combinazione di ID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx oggetto e ID tenant di Azure AD nell'ID zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz tttttttt-tttt-tttt-tttt-tttttttttttttenant di Azure Sphere e quindi si aggiunge il ruolo Collaboratore per questo utente.

  1. Accedere con l'account di accesso di Azure Sphere usando l'interfaccia della riga di comando di Azure Sphere:

    azsphere login
    
  2. Selezionare il tenant richiesto:

    azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
    
  3. Per aggiungere l'utente a un ruolo obbligatorio:

    azsphere role add --role Contributor --user xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
    

Passaggio 3: Registrare segreti client o certificati client usando il portale di registrazione dell'applicazione

I segreti client e i certificati client consentono alle applicazioni di identificarsi nel servizio di autenticazione quando ricevono token in un percorso indirizzabile Web (usando uno schema HTTPS). È consigliabile usare un certificato anziché un segreto client per gli scenari di credenziali client durante l'autenticazione con Azure Active Directory.

Il segreto client o il certificato client per la registrazione dell'applicazione può essere usato per ottenere un token di accesso per l'API pubblica di Azure Sphere (PAPI).The client secret or client certificate for the application registration can be used to get an access token for the Azure Sphere Public API (PAPI).

Configurare l'applicazione con il segreto client

Per registrare l'applicazione con un segreto client:

  1. Nel portale di Azure fare clic su Azure Active Directory nel riquadro di spostamento sinistro.

  2. Passare a Registrazioni app e selezionare l'applicazione creata nel passaggio 1: Registrare un'entità servizio.

  3. Nel riquadro sinistro selezionare Certificati e segreti> Sezione Segreti> client Nuovo segreto client.

  4. Immettere una descrizione, selezionare la durata della validità e selezionare Aggiungi. Il segreto client viene generato e viene visualizzato il valore del segreto client.

  5. Copiare il valore del segreto client perché non sarà possibile recuperare la chiave in un secondo momento.

  6. Specificare il valore del segreto client con l'ID applicazione dell'API pubblica di Azure Sphere per accedere come applicazione. Salvare il valore della chiave in una posizione in cui l'applicazione possa recuperarlo.

    Importante

    Il valore del segreto client è una credenziale di sicurezza importante. Non condividere segreto client con altri e non distribuirlo all'interno di un'applicazione client. È consigliabile usare il servizio Azure Key Vault che fornisce la gestione centralizzata dei segreti, con controllo completo sui criteri di accesso e sulla cronologia di controllo.

Usare il codice di esempio seguente:

 IConfidentialClientApplication app =

 ConfidentialClientApplicationBuilder.Create("<<App registration Client ID>>")

                 .WithClientSecret("<<App registration Client Secret Value>>")

                 .WithAuthority(AzureCloudInstance.AzurePublic, "<<3rd Party Tenant Id>>")

                 .Build();

 string[] scopes = new[] { "https://firstparty.sphere.azure.net/api/.default" };

 AuthenticationResult result =  await app.AcquireTokenForClient(scopes).ExecuteAsync();
 string accessToken=result.AccessToken;

Configurare l'applicazione con il certificato client

Per configurare il certificato client:

  1. Nel portale di Azure fare clic su Azure Active Directory nel riquadro di spostamento sinistro.
  2. Passare a Registrazioni app e selezionare l'applicazione creata nel passaggio 1: Registrare un'entità servizio.
  3. Nel riquadro sinistro selezionare Certificati e segreti>Certificati>Carica certificato. Selezionare il certificato (un certificato esistente o il certificato autofirmato esportato).
  4. Dopo aver registrato il certificato con l'applicazione nel portale di registrazione dell'applicazione, abilitare il codice dell'applicazione client per l'uso del certificato.

Per registrare l'applicazione con un certificato client, usare il codice di esempio seguente:

 IConfidentialClientApplication app =

 ConfidentialClientApplicationBuilder.Create("<<App registration Client ID>>")

                 .WithCertificate("<<App registration Certificate>>")

                 .WithAuthority(AzureCloudInstance.AzurePublic, "<<3rd Party Tenant Id>>")

                 .Build();

 string[] scopes = new[] { "https://firstparty.sphere.azure.net/api/.default" };

 AuthenticationResult result =  await app.AcquireTokenForClient(scopes).ExecuteAsync();
 string accessToken=result.AccessToken;

Nota

È necessario aggiungere MSAL.Net libreria per usare IConfidentialClient.