Autenticare l'accesso alle risorse di Azure Databricks

Per accedere a una risorsa di Azure Databricks con l'interfaccia della riga di comando di Databricks o le API REST, i client devono eseguire l'autenticazione usando un account Azure Databricks con l'autorizzazione necessaria per accedere alla risorsa. Per eseguire in modo sicuro un comando dell'interfaccia della riga di comando di Databricks o chiamare una richiesta API databricks che richiede l'accesso autorizzato a un account o a un'area di lavoro, è necessario fornire un token di accesso basato sulle credenziali valide dell'account Azure Databricks. Questo articolo illustra le opzioni di autenticazione per fornire tali credenziali e autorizzare l'accesso a un'area di lavoro o a un account di Azure Databricks.

La tabella seguente illustra i metodi di autenticazione disponibili per l'account Azure Databricks.

Metodi di autenticazione di Azure Databricks

Poiché gli strumenti e gli SDK di Azure Databricks funzionano con uno o più metodi di autenticazione di Azure Databricks supportati, è possibile selezionare il metodo di autenticazione migliore per il caso d'uso. Per informazioni dettagliate, vedere la documentazione dello strumento o dell'SDK in Strumenti di sviluppo.

metodo Descrizione Caso d'uso
OAuth per le entità servizio (OAuth M2M) Token OAuth di breve durata per le entità servizio. Scenari di autenticazione automatica, ad esempio flussi di lavoro CI/CD completamente automatizzati.
OAuth per gli utenti (OAuth U2M) Token OAuth di breve durata per gli utenti. Scenari di autenticazione a cui si accede, in cui si usa il Web browser per l'autenticazione con Azure Databricks in tempo reale, quando richiesto.
Token di accesso personali (PAT). Token di breve durata o di lunga durata per utenti o entità servizio. Scenari in cui lo strumento di destinazione non supporta OAuth.
Autenticazione delle identità gestite di Azure Token ID di Microsoft Entra per le identità gestite di Azure. Usare solo con le risorse di Azure che supportano identità gestite, ad esempio macchine virtuali di Azure.
Autenticazione entità servizio di Microsoft Entra ID Token di Microsoft Entra ID per entità servizio Microsoft Entra ID. Usare solo con le risorse di Azure che supportano i token ID Microsoft Entra e non supportano identità gestite, ad esempio Azure DevOps.
Autenticazione con interfaccia della riga di comando di Azure Token ID Microsoft Entra per utenti o entità servizio Microsoft Entra ID. Usare per autenticare l'accesso alle risorse di Azure e ad Azure Databricks usando l'interfaccia della riga di comando di Azure.
Autenticazione dell'account utente di Microsoft Entra ID Token utente per Microsoft Entra ID. Usare solo con le risorse di Azure che supportano solo i token ID Microsoft Entra. Databricks non consiglia di creare manualmente i token ID di Microsoft Entra per gli utenti di Azure Databricks.

Quale approccio di autenticazione è necessario scegliere?

Sono disponibili due opzioni per autenticare un comando dell'interfaccia della riga di comando di Databricks o una chiamata API per l'accesso alle risorse di Azure Databricks:

  • Usare un account utente di Azure Databricks (denominato autenticazione da utente a computer) o U2M. Scegliere questa opzione solo quando si esegue un comando dell'interfaccia della riga di comando di Azure Databricks dall'ambiente client locale o quando si chiama una richiesta api di Azure Databricks dal codice di cui si è proprietari ed è stata eseguita esclusivamente.
  • Usare un'entità servizio di Azure Databricks (denominata autenticazione da computer a computer) o M2M. Scegliere questa opzione se altri utenti eseguiranno il codice (soprattutto nel caso di un'app) o se si sta creando un'automazione che chiamerà i comandi o le richieste API dell'interfaccia della riga di comando di Azure Databricks.
  1. Se si usa Azure Databricks, è anche possibile usare un'entità servizio MS Entra per autenticare l'accesso all'account o all'area di lavoro di Azure Databricks. Databricks consiglia tuttavia di usare un'entità servizio Databricks con l'autenticazione OAuth fornita tramite l'autenticazione dell'entità servizio MS Entra. Ciò è dovuto al fatto che l'autenticazione Databricks usa token di accesso OAuth più affidabili quando si esegue l'autenticazione solo con Azure Databricks.

Per ulteriori dettagli sull'uso di un'entità servizio MS Entra per accedere alle risorse di Databricks, consultare Autenticazione dell'entità servizio MS Entra.

È anche necessario avere un token di accesso collegato all'account che verrà usato per chiamare l'API Databricks. Questo token può essere un token di accesso OAuth 2.0 o un token di accesso personale (PAT). Tuttavia, Azure Databricks consiglia vivamente di usare OAuth su PAT per l'autorizzazione perché i token OAuth vengono aggiornati automaticamente per impostazione predefinita e non richiedono la gestione diretta del token di accesso, migliorando la sicurezza contro il dirottamento dei token e l'accesso indesiderato. Poiché OAuth crea e gestisce automaticamente il token di accesso, si fornisce un URL dell'endpoint del token OAuth, un ID client e un segreto generato dall'area di lavoro di Azure Databricks anziché fornire direttamente una stringa di token. I token PAT espongono il rischio di token di lunga durata che offrono opportunità di uscita se non vengono controllati e ruotati o revocati regolarmente o se le stringhe di token e le password non vengono gestite in modo sicuro per l'ambiente di sviluppo.

Ricerca per categorie usare OAuth per eseguire l'autenticazione con Azure Databricks?

Azure Databricks fornisce l'autenticazione client unificata per facilitare l'autenticazione usando un set predefinito di variabili di ambiente che è possibile impostare su valori di credenziali specifici. In questo modo è possibile lavorare in modo più semplice e sicuro perché queste variabili di ambiente sono specifiche dell'ambiente che eseguiranno i comandi dell'interfaccia della riga di comando di Azure Databricks o chiamano le API di Azure Databricks.

  • Per l'autenticazione dell'account utente (da utente a computer), Azure Databricks OAuth viene gestito automaticamente con l'autenticazione unificata del client Databricks, purché gli strumenti e gli SDK implementino lo standard. In caso contrario, è possibile generare manualmente una coppia di verifica e verifica del codice OAuth da usare direttamente nei comandi e nelle richieste API dell'interfaccia della riga di comando di Azure Databricks. Consultare Passaggio 1: generare un verificatore di codice OAuth e una coppia di verifica del codice.
  • Per l'autenticazione dell'entità servizio (da computer a computer), Azure Databricks OAuth richiede che il chiamante fornisca le credenziali client insieme a un URL dell'endpoint del token in cui la richiesta può essere autorizzata. Questa operazione viene gestita automaticamente se si usano gli strumenti e gli SDK di Azure Databricks che supportano l'autenticazione client unificata di Databricks. Le credenziali includono un ID client univoco e un segreto client. Il client, ovvero l'entità servizio Databricks che eseguirà il codice, deve essere assegnata alle aree di lavoro di Databricks. Dopo aver assegnato l'entità servizio alle aree di lavoro a cui accede, viene fornito un ID client e un segreto client che verrà impostato con variabili di ambiente specifiche.

Queste variabili di ambiente da modificare sono:

  • DATABRICKS_HOST: questa variabile di ambiente è impostata sull'URL della console dell'account Azure Databricks (http://accounts.cloud.databricks.com) o dell'URL dell'area di lavoro di Azure Databricks (https://{workspace-id}.cloud.databricks.com). Scegliere un tipo di URL host in base al tipo di operazioni che verrà eseguito nel codice. In particolare, se si usano i comandi dell'interfaccia della riga di comando a livello di account di Azure Databricks o le richieste api REST, impostare questa variabile sull'URL dell'account Azure Databricks. Se si usano i comandi dell'interfaccia della riga di comando a livello di area di lavoro di Azure Databricks o le richieste api REST, usare l'URL dell'area di lavoro di Azure Databricks.
  • DATABRICKS_ACCOUNT_ID: usato per le operazioni dell'account Azure Databricks. Si tratta dell'ID dell'account Azure Databricks. Per ottenerlo, consultare Individuare l'ID dell'account.
  • DATABRICKS_CLIENT_ID: (solo OAuth M2M) ID client assegnato durante la creazione dell'entità servizio.
  • DATABRICKS_CLIENT_SECRET: (solo OAuth M2M) ID segreto client generato durante la creazione dell'entità servizio.

È possibile impostarli direttamente o tramite l'uso di un profilo di configurazione di Databricks (.databrickscfg) nel computer client.

Per usare un token di accesso OAuth, l'area di lavoro o l'amministratore account di Azure Databricks deve aver concesso all'account utente o all'entità servizio il privilegio CAN USE per l'account e le funzionalità dell'area di lavoro a cui accederà il codice.

Per ulteriori dettagli sulla configurazione dell'autorizzazione OAuth per il client e per esaminare le opzioni di autorizzazione specifiche del provider di servizi cloud, consultare Autenticazione client unificata.

Autenticazione a servizi e strumenti di terze parti

Se si scrive codice che accede a servizi, strumenti o SDK di terze parti, è necessario usare i meccanismi di autenticazione e autorizzazione forniti da terze parti. Tuttavia, se è necessario concedere a uno strumento di terze parti, all'SDK o al servizio l'accesso all'account o alle risorse dell'area di lavoro di Azure Databricks, Databricks offre il supporto seguente:

Profili di configurazione di Azure Databricks

Un profilo di configurazione di Azure Databricks contiene impostazioni e altre informazioni necessarie per l'autenticazione di Azure Databricks. I profili di configurazione di Azure Databricks vengono archiviati nei file client locali per gli strumenti, gli SDK, gli script e le app da usare. Il file del profilo di configurazione standard è denominato .databrickscfg. Per altre informazioni, consultare Profili di configurazione di Azure Databricks.