Condividi tramite


Configurare l'autenticazione dell'applicazione per Microsoft Planetary Computer Pro

Questo articolo fornisce istruzioni dettagliate per sviluppatori e amministratori per configurare l'autenticazione sicura delle applicazioni e l'accesso a Microsoft Planetary Computer Pro. Applicando l'ID Microsoft Entra e le identità gestite, le applicazioni possono eseguire l'autenticazione senza gestire le credenziali, garantendo un'interazione sicura con le risorse Planetary Computer Pro. Indipendentemente dal fatto che l'applicazione venga eseguita in Azure o in altri ambienti, questa guida descrive le configurazioni necessarie, tra cui il controllo degli accessi in base al ruolo e l'acquisizione di token, per abilitare l'accesso sicuro.

Annotazioni

Per le applicazioni che usano Azure AD B2C o Microsoft Entra External ID che supportano funzionalità come i provider di identità social, le applicazioni devono continuare a usare queste soluzioni di identità come proxy per il traffico di autenticazione perché Planetary Computer Pro non supporta alternative all'autenticazione a Microsoft Entra ID.

Prerequisiti

Applicazioni in esecuzione in Azure

Per le applicazioni in esecuzione in Azure, è consigliabile creare un tipo di identità di Microsoft Entra denominata identità gestita assegnata dall'utente per accedere alla risorsa GeoCatalog. Le applicazioni possono usare le identità gestite per ottenere i token di Microsoft Entra (vedere la sezione Acquisire il token di accesso per accedere a Microsoft Planetary Computer Pro senza dover gestire le credenziali. Per altre informazioni sulle identità gestite e sul tipo da scegliere, vedere Informazioni sulle identità gestite per le risorse di Azure. Per creare identità gestite assegnate dall'utente per l'applicazione in esecuzione in Azure, seguire Come usare le identità gestite per il servizio app e Funzioni di Azure.

Applicazioni non in esecuzione in Azure

Per le applicazioni che non sono in esecuzione in Azure, ad esempio in locale o ospitate in altri provider di servizi cloud, è consigliabile registrare l'applicazione nell'interfaccia di amministrazione di Microsoft Entra, incluso un URI di reindirizzamento per ricevere i token di sicurezza, per stabilire una relazione di trust tra l'app e Microsoft Identity Platform. La registrazione dell'app in Microsoft Entra crea automaticamente un Service Principal per l'app, al quale è possibile assegnare ruoli RBAC in un secondo momento. Se l'applicazione ha un'impostazione per configurare l'autenticazione con ID Microsoft Entra, è possibile usare l'ID "Applicazione (client) dell'app registrata" e l'ID "Directory (tenant) a tale scopo.

Se non è possibile registrare l'applicazione in Microsoft Entra come consigliato in precedenza, è disponibile un'altra opzione per eseguire l'applicazione in una macchina virtuale di Azure o in un'app contenitore. È possibile creare un'identità gestita assegnata dall'utente e assegnarla alla macchina virtuale (VM) o all'app Contenitore, come descritto qui: Configurare le identità gestite nelle macchine virtuali di Azure eidentità gestite in App Contenitore di Azure. L'applicazione sarà in grado di accedere con l'identità gestita per accedere alla risorsa GeoCatalog. Ad esempio, affinché l'applicazione possa essere eseguita all'interno di una macchina virtuale usando un'identità gestita assegnata dall'utente, è possibile usare:

!az login  --identity --username <client_id|object_id|resource_id> 

È possibile trovare l'ID client, l'ID oggetto o l'ID risorsa dell'identità gestita dal portale di Azure. In alternativa all'interfaccia della riga di comando, il codice Python di esempio si trova nella sezione Acquisire il token di accesso per accedere a Microsoft Planetary Computer Pro.

azure.identity.DefaultAzureCredential(managed_identity_client_id=<client_id>)

Dopo aver creato un'identità gestita assegnata dall'utente o un'entità servizio per l'applicazione come descritto in precedenza, è necessario decidere il tipo di scenario di accesso alle applicazioni: accesso solo app, che funge solo da identità o accesso delegato dell'applicazione, che agisce per conto di un utente connesso.

Accesso solo tramite app

In questo scenario di accesso, l'applicazione agisce autonomamente senza alcun utente connesso come comportamento predefinito. È possibile passare alla sezione Configurazione RBAC di Microsoft Planetary Computer Pro per le applicazioni per assegnare i ruoli appropriati all'applicazione.

Accesso delegato

In questo scenario di accesso, un utente ha eseguito l'accesso a un'applicazione client. L'applicazione client accede alla risorsa per conto dell'utente. È necessario assicurarsi che agli utenti dell'applicazione vengano assegnati i ruoli RBAC appropriati, come descritto nella sezione Creare e gestire utenti. È anche necessario configurare le autorizzazioni API dell'applicazione con autorizzazioni delegate seguendo questa procedura:

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra
  2. Passare a Identità>Applicazioni>Registrazioni app, e quindi selezionare l'applicazione client.
  3. In Gestisci selezionare Autorizzazioni API
  4. Selezionare Aggiungi un'autorizzazione
  5. Selezionare la scheda API usate dall'organizzazione
  6. Digitare Azure Orbital Planetary Computer nel campo di ricerca
  7. Selezionare la voce corrispondente (ID app deve essere 6388acc4-795e-43a9-a320-33075c1eb83b). Viene visualizzato come Azure Orbital Microsoft Planetary Computer Pro.
  8. Selezionare la casella Autorizzazioni delegate . Selezionare la casella accanto a user_impersonation.
  9. Selezionare Aggiungi autorizzazioni
  10. Selezionare il collegamento "Concedi consenso amministratore" (presupponendo che la finalità sia concedere il consenso amministratore nel tenant per questa autorizzazione)

Configurazione RBAC di Microsoft Planetary Computer Pro per le applicazioni

Dopo aver creato un'identità gestita per un'applicazione in esecuzione su Azure o un principal di servizio per un'applicazione non in esecuzione su Azure ma registrata in Microsoft Entra, è necessario concedere le autorizzazioni appropriate alle identità per accedere alla risorsa GeoCatalog tramite la configurazione delle autorizzazioni RBAC.

Di seguito è riportato un esempio dettagliato che illustra come configurare Role-Based Controllo di accesso (RBAC) per assegnare il ruolo "Amministratore GeoCatalog" all'identità gestita assegnata dall'utente di un'applicazione. È possibile seguire questi stessi passaggi nel portale di Azure per configurare l'RBAC per l'entità del servizio di un'applicazione.

  1. Nel portale di Azure, vai alla scheda IAM della risorsa Microsoft Planetary Computer Pro sulla sinistra.

    Screenshot del pannello IAM nel portale di Azure per la configurazione del controllo degli accessi in base al ruolo.

  2. Selezionare Aggiungi assegnazione ruolo e quindi selezionare GeoCatalog Administrator sotto "Ruoli delle funzioni di lavoro"

    Istantanea della selezione per l'assegnazione del ruolo nel portale Azure.

  3. Selezionare il pulsante Avanti e quindi selezionare il pulsante di opzione Identità gestita

    Schermata della selezione dell'identità gestita nel portale di Azure.

  4. Selezionare Seleziona membri e selezionare la sottoscrizione e l'identità gestita assegnata dall'utente nel riquadro Seleziona identità gestite sul lato destro.

    Screenshot del riquadro membri selezionati nel portale di Azure.

  5. Selezionare Avanti per verificare le informazioni e completare la revisione e assegnare.

Acquisire il token di accesso per accedere a Microsoft Planetary Computer Pro

Dopo aver configurato il controllo degli accessi basato sui ruoli per concedere all'applicazione le autorizzazioni appropriate, l'applicazione deve acquisire un token di accesso per autenticare le richieste. Codice di esempio Python seguente:

import azure.identity
credential = azure.identity.DefaultAzureCredential()
token = credential.get_token("https://geocatalog.spatio.azure.com/")
headers = {"Authorization": f"Bearer {token.token}"} 

Annotazioni

Se all'applicazione sono assegnate più identità gestite, è necessario passare in modo esplicito quello corretto: azure.identity.DefaultAzureCredential(managed_identity_client_id=<client_id>). In alternativa, è possibile configurare le variabili di ambiente dell'applicazione nel portale di Azure per aggiungere "AZURE_CLIENT_ID" utilizzando l'ID client dell'identità gestita corretto.

Annotazioni

È possibile aggiungere .default o user_impersonation come ambito a credential.get_token() in base al comportamento previsto per l'autenticazione dell'utente.

Annotazioni

Se l'applicazione è un'app Web, ogni volta che si apporta una modifica al codice o alla configurazione dell'app, assicurarsi di chiudere e riaprire il Web browser per evitare l'uso delle credenziali memorizzate nella cache.

Per altre informazioni sui token di accesso, vedere Token di accesso in Microsoft Identity Platform . Quando si acquisiscono i token di accesso tramite la chiamata a DefaultAzureCredentials(), i token acquisiti vengono memorizzati nella cache dall'istanza delle credenziali. La durata e l'aggiornamento dei token vengono gestiti automaticamente. È possibile passare l'istanza DefaultAzureCredential e richiamare GetToken() o GetTokenAsync() subito prima di avere bisogno di un token in modo da ottenere sempre un token che non è scaduto. Se è necessario mantenere una sessione aperta lunga, è possibile gestire la scadenza del token in un gestore errori per intercettare l'eccezione e acquisire un nuovo token.

Se non è possibile usare DefaultAzureCredentials() e usare altri metodi, AzureCliCredential() ad esempio per acquisire i token di accesso, è necessario gestire la durata e l'aggiornamento del token. Per altre informazioni, vedere Durata dei token configurabili in Microsoft Identity Platform e Token di aggiornamento in Microsoft Identity Platform .

Passaggi successivi