Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
- Account Azure con una sottoscrizione attiva: creare un account gratuito
- Una risorsa GeoCatalog esistente.
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:
- Accedere all'interfaccia di amministrazione di Microsoft Entra
- Passare a Identità>Applicazioni>Registrazioni app, e quindi selezionare l'applicazione client.
- In Gestisci selezionare Autorizzazioni API
- Selezionare Aggiungi un'autorizzazione
- Selezionare la scheda API usate dall'organizzazione
- Digitare Azure Orbital Planetary Computer nel campo di ricerca
- Selezionare la voce corrispondente (ID app deve essere 6388acc4-795e-43a9-a320-33075c1eb83b). Viene visualizzato come Azure Orbital Microsoft Planetary Computer Pro.
- Selezionare la casella Autorizzazioni delegate . Selezionare la casella accanto a user_impersonation.
- Selezionare Aggiungi autorizzazioni
- 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.
Nel portale di Azure, vai alla scheda IAM della risorsa Microsoft Planetary Computer Pro sulla sinistra.
Selezionare Aggiungi assegnazione ruolo e quindi selezionare GeoCatalog Administrator sotto "Ruoli delle funzioni di lavoro"
Selezionare il pulsante Avanti e quindi selezionare il pulsante di opzione Identità gestita
Selezionare Seleziona membri e selezionare la sottoscrizione e l'identità gestita assegnata dall'utente nel riquadro Seleziona identità gestite sul lato destro.
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 .