Metodi di autenticazione supportati da Azure OpenAI

Completato

Azure OpenAI supporta diversi metodi di autenticazione per garantire l'accesso sicuro e controllato alle risorse. I metodi principali sono:

  • Chiavi API: Azure OpenAI supporta anche l'autenticazione basata su chiavi API. Le chiavi API vengono generate nel portale di Azure e possono essere usate per autenticare le richieste per il servizio Azure OpenAI. Questo metodo di autenticazione non è consigliato in termini di sicurezza e deve essere usato solo come ultima risorsa. Se è necessario usare questo metodo di autenticazione, è importante gestire le chiavi API in modo sicuro e ruotarle periodicamente per ridurre il rischio di accesso non autorizzato.
  • Microsoft Entra ID: Questo metodo sfrutta le solide funzionalità di gestione delle identità e degli accessi di Microsoft Entra. Gli utenti e le applicazioni eseguono l'autenticazione usando le identità di Microsoft Entra, che possono essere account utente tradizionali o identità gestite. Questo metodo garantisce che solo gli utenti autenticati e autorizzati possano accedere alle risorse di Azure OpenAI.
  • Identità gestite diEntra: Le identità gestite per le risorse di Azure forniscono un'identità gestita automaticamente in Microsoft Entra che le applicazioni possono usare per la connessione alle risorse che supportano l'autenticazione di Microsoft Entra. Queste identità possono essere assegnate dal sistema, ovvero sono associate a una risorsa di Azure specifica, o assegnate dall'utente, ovvero consentono la condivisione di una singola identità tra più risorse. Le identità gestite semplificano la gestione delle credenziali e migliorano la sicurezza eliminando la necessità di usare credenziali hardcoded nel codice dell'applicazione.

Perché le identità gestite sono un'opzione più sicura delle chiavi API

Le identità gestite in Microsoft Azure offrono un'alternativa più sicura alle chiavi API per diversi motivi:

  1. Le identità gestite eliminano la necessità per gli sviluppatori di gestire direttamente le credenziali, riducendo così il rischio di esposizione accidentale o uso improprio.
  2. Quando usano le chiavi API, gli sviluppatori devono incorporare tali chiavi all'interno del codice dell'applicazione o dei file di configurazione.

Le chiavi API possono essere inavvertitamente esposte tramite repository di codice sorgente, log o altri mezzi. Tale esposizione può causare accessi non autorizzati e potenziali violazioni della sicurezza. Diversamente, le identità gestite forniscono un'identità gestita automaticamente utilizzabili dalle applicazioni quando si connettono a risorse che supportano l’autenticazione di Microsoft Entra (in precedenza Azure Directory). Ciò significa che le credenziali non vengono archiviate nel codice dell'applicazione e riducono quindi il rischio di perdite e accessi non autorizzati.

Inoltre, le identità gestite semplificano il processo di autenticazione consentendo ai servizi di Azure di eseguire l'autenticazione in altri servizi di Azure in modo sicuro senza la necessità di credenziali esplicite. Questo risultato viene ottenuto usando i token emessi da Microsoft Entra, che vengono gestiti e ruotati automaticamente, garantendo che le credenziali siano sempre aggiornate e riducendo il rischio di furto di credenziali. Le chiavi API, d'altra parte, sono statiche e richiedono una rotazione manuale, che può essere soggetta a errori e spesso trascurata, con il rischio di potenziali vulnerabilità. L’uso di identità gestite permette agli sviluppatori di sfruttare le funzionalità di sicurezza predefinite di Azure, ad esempio il controllo degli accessi in base al ruolo (RBAC), per concedere autorizzazioni precise alle risorse, migliorando ulteriormente la sicurezza.

Microsoft consiglia di usare l'identità gestita rispetto alle chiavi API durante l'autenticazione in Azure OpenAI o in qualsiasi altro servizio di Azure che supporti l'identità gestita.

Differenze tra l'uso delle chiavi API e le identità gestite all'interno di Azure OpenAI

Verrà ora valutato l'impatto della perdita di un ID client rispetto alla perdita di una chiave API.

Una chiave API funziona in modo analogo a una password normale. Se viene compromessa, chiunque sia in possesso della chiave può accedere alla risorsa. In Azure OpenAI, ciò significa un uso illimitato dei modelli di intelligenza artificiale come GPT-4. Se la rete è accessibile pubblicamente, l'impatto sulla sicurezza potrebbe essere addirittura maggiore.

Viceversa, i rischi sono minimi in caso di perdita dell’ID client. Questo perché l'ID client da solo non è in grado di stabilire una connessione ad Azure OpenAI. Per usare un'identità gestita, il servizio deve essere usato in Azure e, anche se Azure OpenAI è pubblico, non è possibile connettersi da un ambiente locale o attraverso una rete tramite un'applicazione.

In sintesi, rispetto alle ramificazioni della perdita di una chiave API, l'exploit di un ID client perso comporta diversi passaggi che lo rendono più difficile da sfruttare da parte degli utenti malintenzionati.

Per questi motivi, le identità gestite offrono un metodo più sicuro per gestire le operazioni rispetto alle chiavi API. Microsoft consiglia nel modo più assoluto di usare l'identità gestita rispetto alle chiavi API per l'autenticazione in Azure OpenAI o in qualsiasi altro servizio di Azure che supporti l'identità gestita.

Differenze tra le identità assegnate dal sistema e le identità assegnate dall’utente

Quando si compila un'applicazione in Azure OpenAI, comprendere la distinzione tra identità assegnate dal sistema e identità assegnate dall'utente è fondamentale per proteggere e gestire le risorse in modo ottimale.

  • Identità assegnate dal sistema: vengono create e gestite da Azure per una risorsa specifica. Quando una risorsa viene eliminata, viene eliminata anche l'identità assegnata dal sistema associata. Ciò garantisce che il ciclo di vita dell'identità sia strettamente associato alla risorsa a cui appartiene. Questo tipo di identità è ideale per gli scenari in cui l'identità deve essere usata solo da una singola risorsa in quanto è semplice da usare e riduce il sovraccarico amministrativo poiché Azure gestisce le credenziali dell'identità.
  • Identità assegnate dall’utente: vengono create indipendentemente da eventuali risorse e possono essere condivise tra più risorse. Ciò le rende estremamente versatili per le applicazioni che richiedono un'identità coerente tra risorse diverse in quanto consentono una gestione più semplice delle autorizzazioni e dei controlli di accesso. Le identità assegnate dall'utente vengono mantenute anche dopo l'eliminazione delle risorse che le utilizzano e garantiscono quindi una maggiore flessibilità in termini di ridistribuzione e riutilizzo delle identità.

La scelta tra identità assegnate dal sistema e assegnate dall'utente dipende dalle esigenze specifiche dell'applicazione. Le identità assegnate dal sistema sono in genere la scelta migliore per le applicazioni a singola risorsa in cui la semplicità e la gestione minima sono la priorità. Al contrario, le identità assegnate dall’utente offrono maggiore flessibilità e riutilizzabilità per le applicazioni che richiedono un'identità condivisa tra più risorse.

Diagramma che mostra le diverse opzioni di identità gestite.