Autorizzazione dell'accesso alle risorse di Azure Databricks
Questo argomento illustra gli approcci di base per eseguire chiamate all'interfaccia della riga di comando di Azure Databricks o all'API REST protette usando le credenziali dell'account Azure Databricks, ad esempio account utente o entità servizio.
Autorizzazione per l'interfaccia della riga di comando di Azure Databricks e le API
Per accedere a una risorsa di Azure Databricks con l'interfaccia della riga di comando di Databricks o le API REST, i client devono autorizzare l'uso di un account Azure Databricks. Questo account deve avere le autorizzazioni per accedere alla risorsa, che può essere configurata dall'amministratore di Azure Databricks o da un account utente con privilegi di amministratore.
Esistono due tipi di account che è possibile usare, a seconda di come si intende accedere alle risorse di Azure Databricks:
- Account utente: Usa questa opzione per inserire in modo interattivo i comandi CLI di Azure Databricks o le chiamate API REST.
- Principale del servizio: Utilizzare questo per automatizzare i comandi CLI di Azure Databricks o le chiamate API REST senza interazione umana.
Dopo aver stabilito il tipo di account Azure Databricks, è necessario acquisire un token di accesso che rappresenta le credenziali dell'account. Questo token di accesso verrà fornito quando si accede alle risorse dell'account negli script o nel codice o nelle sessioni interattive.
- Se utilizzi Azure Databricks, è anche possibile usare un principale del servizio MS Entra per autorizzare l'accesso all'account o all'area di lavoro di Azure Databricks. Databricks consiglia comunque di utilizzare un'entità servizio Databricks con l'autorizzazione OAuth da noi fornita, anziché l'autorizzazione dell'entità servizio MS Entra. Ciò è dovuto al fatto che l'autorizzazione di Databricks usa token di accesso OAuth più affidabili quando si autorizza 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.
Acquisire un token di accesso
Le credenziali dell'account sono rappresentate da un token di accesso sicuro, che viene fornito direttamente o indirettamente al comando o alla chiamata API dell'interfaccia della riga di comando.
Per eseguire in modo sicuro un comando o una richiesta API dell'interfaccia della riga di comando di Databricks che richiede l'accesso autorizzato a un account o a un'area di lavoro, è necessario fornire un token di accesso basato sulle credenziali dell'account Azure Databricks valide.
La tabella seguente illustra i metodi di autorizzazione disponibili per l'account Azure Databricks.
metodi di autorizzazione di Azure Databricks
Poiché gli strumenti e gli SDK di Azure Databricks funzionano con uno o più metodi di autorizzazione di Azure Databricks supportati, è possibile selezionare il metodo di autorizzazione migliore per il caso d'uso. Per informazioni dettagliate, vedere la documentazione dello strumento o dell'SDK in Strumenti di sviluppo locali.
Gli utenti di Azure Databricks possono richiedere l'accesso alle risorse specifiche di Azure non gestite direttamente con l'account Databricks. In questa tabella sono inclusi anche i metodi per accedere a tali risorse. Per l'accesso alle risorse di Azure, si usa un'identità del servizio gestito di Azure o un ID MS Entra (a seconda dello scenario) e non le credenziali dell'account Azure Databricks.
metodo | Descrizione | Caso d'uso |
---|---|---|
OAuth di Databricks per i principali del servizio | Token OAuth di breve durata per le entità servizio. | Scenari di autorizzazione senza supervisione, ad esempio flussi di lavoro completamente automatizzati e CI/CD. |
Databricks OAuth per gli utenti | Token OAuth di breve durata per gli utenti. | Scenari di autorizzazione assistita, in cui si utilizza un web browser o un altro metodo interattivo per autorizzare l'accesso a Databricks, quando richiesto. |
Token di accesso personali Databricks (PAT) | Token di breve durata o di lunga durata per utenti o entità servizio. | Usare questo solo nei casi in cui lo strumento di destinazione non supporta OAuth. |
Autorizzazione dell'identità del servizio gestito 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. |
autorizzazione del principale del servizio 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. |
Autorizzazione di Azure CLI | Token ID Microsoft Entra per utenti o entità servizio Microsoft Entra ID. | Usare per autorizzare l'accesso alle risorse di Azure e ad Azure Databricks usando l'interfaccia della riga di comando di Azure. |
autorizzazione degli utenti 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 opzione di autorizzazione è consigliabile scegliere?
Azure Databricks offre due opzioni per l'autorizzazione o l'autenticazione con un token di accesso:
- Token di accesso basati su OAuth 2.0.
- Token di accesso personali (PAT).
Nota
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 hijacking 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. Scegliere le connessioni PAT solo quando si integra uno strumento o un servizio di terze parti non supportato dall'autenticazione client unificata di Azure Databricks o non è supportato da OAuth.
Come si usa OAuth per autorizzare l'accesso alle risorse di Azure Databricks?
Azure Databricks offre autenticazione client unificata per facilitare l'autorizzazione utilizzando un set predefinito di variabili di ambiente che è possibile impostare con 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'autorizzazione dell'account utente, la parte di autenticazione di Azure Databricks OAuth, ovvero la creazione e la gestione dei token di accesso, viene gestita automaticamente con client Databricks, purché gli strumenti e gli SDK implementino lo standard. In caso contrario, è possibile generare manualmente una coppia di verificatore del codice e sfida OAuth da usare direttamente nei vostri comandi e nelle richieste API della CLI di Azure Databricks. Consulta Passaggio 1: Generare un codice verificatore OAuth e una coppia codificata di challenge.
- Per l'autorizzazione del principale del servizio, 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 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:
Variabile di ambiente | Descrizione |
---|---|
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 usa Azure Databricks comandi dell'interfaccia della riga di comando a livello di account o 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, consulta Trova il tuo ID account. |
DATABRICKS_CLIENT_ID |
(solo OAuth per entità servizio) L'ID client che ti è stato assegnato quando hai creato l'entità servizio. |
DATABRICKS_CLIENT_SECRET |
(solo OAuth dell'entità servizio) Segreto client generato quando 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:
Provider Terraform di Databricks: questo strumento può accedere alle API di Azure Databricks da Terraform per conto dell'utente usando l'account utente di Azure Databricks. Per ulteriori dettagli, consultare Effettuare il provisioning di un'entità servizio usando Terraform.
I provider Git quali GitHub, GitLab e Bitbucket possono accedere alle API di Azure Databricks usando un principal del servizio Databricks. Per ulteriori dettagli, consultare Entità servizio per CI/CD.
Jenkins può accedere alle API di Azure Databricks usando un'entità servizio Databricks. Per ulteriori dettagli, consultare CI/CD con Jenkins in Azure Databricks.
Azure DevOps può accedere alle API di Azure Databricks utilizzando un'entità servizio basata su ID MS Entra. Per ulteriori dettagli, consultare Eseguire l'autenticazione con Azure DevOps in Databricks.
Profili di configurazione di Azure Databricks
Un profilo di configurazione di Azure Databricks contiene impostazioni e altre informazioni necessarie ad Azure Databricks per autorizzare l'accesso. 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.