Compartir a través de


Autenticación de entidad de servicio de Id. de Microsoft Entra

La autenticación de la entidad de servicio de Microsoft Entra ID utiliza las credenciales de una entidad de servicio de Microsoft Entra ID para autenticarse. Para crear y administrar entidades de servicio para Azure Databricks vea:

Nota:

Databricks recomienda usar la autenticación OAuth de máquina a máquina (M2M) en la mayoría de los escenarios, en lugar de la autenticación de entidad de servicio de Microsoft Entra ID. Esto se debe a que la autenticación M2M de OAuth usa tokens de acceso de OAuth de Azure Databricks que son más sólidos al autenticarse solo con Azure Databricks.

Solo debe usar la autenticación de entidad de servicio de Microsoft Entra ID en los casos en los que necesite autenticarse con Azure Databricks y otros recursos de Azure al mismo tiempo, lo cual requiere tokens de Microsoft Entra ID.

Para usar la autenticación de OAuth M2M en lugar de la autenticación de entidad de servicio de Microsoft Entra ID, omita este artículo y consulte Autenticación OAuth de máquina a máquina (M2M).

Las entidades de servicio de Microsoft Entra ID son diferentes de las identidades administradas para los recursos de Azure, que Azure Databricks también admite para la autenticación. Para aprender a usar identidades administradas para recursos de Azure en lugar de entidades de servicio de Microsoft Entra ID para la autenticación de Azure Databricks, consulte Configuración y uso de la autenticación de identidades administradas de Azure para la automatización de Azure Databricks.

Para configurar la autenticación de entidad de servicio Microsoft Entra ID con Azure Databricks, debe establecer las siguientes variables de entorno, campos .databrickscfg, campos Terraform o campos Config asociados:

  • El host de Azure Databricks.

    • Para las operaciones de cuenta, especifique https://accounts.azuredatabricks.net.

    • Para las operaciones del área de trabajo, especifique la dirección URL por área de trabajo, por ejemplo https://adb-1234567890123456.7.azuredatabricks.net.

      Si la entidad de servicio de Azure aún no se ha agregado al área de trabajo, especifique el identificador de recurso de Azure en su lugar. En este caso, la entidad de servicio de Azure debe tener al menos permisos de colaborador o propietario en el recurso de Azure.

  • En el caso de las operaciones de cuenta, el identificador de cuenta de Azure Databricks.

  • El Id. de recurso de Azure.

  • (Cadena) El ID del inquilino de la entidad principal del servicio Microsoft Entra ID.

  • Identificador de cliente de la entidad de servicio de Id. de Microsoft Entra.

  • (Cadena) El secreto de cliente de la entidad de servicio Microsoft Entra ID.

Para realizar la autenticación de entidad de servicio Microsoft Entra ID con Azure Databricks, integre lo siguiente dentro de su código, basándose en la herramienta o SDK participante:

Entorno

Para usar variables de entorno para un tipo de autenticación de Azure Databricks específico con una herramienta o SDK, consulte Tipos de autenticación admitidos por la herramienta Azure Databricks o el SDK o la documentación del SDK o de la herramienta. Consulte también Variables de entorno y campos para la autenticación unificada del cliente y Orden predeterminado de evaluación para los métodos de autenticación y credenciales unificados del cliente.

Para las operaciones de nivel de cuenta, establezca las siguientes variables de entorno:

  • DATABRICKS_HOST, establecida en el valor de la dirección URL de la consola de la cuenta de Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

Para las operaciones de nivel de área de trabajo, establezca las siguientes variables de entorno:

  • DATABRICKS_HOST, establecido en el valor de su Azure Databricks por dirección URL de área de trabajo, por ejemplo https://adb-1234567890123456.7.azuredatabricks.net.
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

En el caso de las operaciones de nivel de área de trabajo, si la entidad de servicio Microsoft Entra ID aún no se ha agregado al área de trabajo, especifique DATABRICKS_AZURE_RESOURCE_ID junto con el identificador de recurso de Azure para el área de trabajo de Azure Databricks, en lugar de HOST junto con la dirección URL del área de trabajo. En este caso, la entidad de servicio de Microsoft Entra ID debe tener al menos permisos de colaborador o propietario en el recurso del área de trabajo de Azure Databricks.

Perfil

Cree o identifique un perfil de configuración de Azure Databricks con los campos siguientes en el archivo .databrickscfg. Si crea el perfil, reemplace los marcadores de posición por los valores adecuados. Para usar el perfil con una herramienta o un SDK, consulte Tipos de autenticación admitidos por la herramienta Azure Databricks o el SDK o la documentación de la herramienta o del SDK. Consulte también Variables de entorno y campos para la autenticación unificada del cliente y Orden predeterminado de evaluación para los métodos de autenticación y credenciales unificados del cliente.

Para las operaciones de nivel de cuenta, establezca los siguientes valores en el archivo .databrickscfg. En este caso, la dirección URL de la consola de la cuenta de Azure Databricks es https://accounts.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host                = <account-console-url>
account_id          = <account-id>
azure_tenant_id     = <azure-service-principal-tenant-id>
azure_client_id     = <azure-service-principal-application-id>
azure_client_secret = <azure-service-principal-client-secret>

Para las operaciones de nivel de área de trabajo, establezca los siguientes valores en el archivo .databrickscfg. En este caso, el host es la dirección URL de Azure Databricks por área de trabajo, por ejemplo https://adb-1234567890123456.7.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host                = <workspace-url>
azure_tenant_id     = <azure-service-principal-tenant-id>
azure_client_id     = <azure-service-principal-application-id>
azure_client_secret = <azure-service-principal-client-secret>

En el caso de las operaciones de nivel de área de trabajo, si la entidad de servicio Microsoft Entra ID aún no se ha agregado al área de trabajo, especifique azure_workspace_resource_id junto con el identificador de recurso de Azure para el área de trabajo de Azure Databricks, en lugar de host junto con la dirección URL del área de trabajo. En este caso, la entidad de servicio de Microsoft Entra ID debe tener al menos permisos de colaborador o propietario en el recurso del área de trabajo de Azure Databricks.

CLI

Para la CLI de Databricks, realice una de las siguientes acciones:

  • Establezca las variables de entorno como se especifica en la sección “Entorno” de este artículo.
  • Establezca los valores del archivo .databrickscfg tal y como se especifica en la sección “Perfil” de este artículo.

Las variables de entorno siempre tienen prioridad sobre los valores del archivo .databrickscfg.

Consulte también Autenticación de entidad de servicio de Id. de Microsoft Entra.

Conexión

Nota:

La autenticación de entidad de servicio Entra ID de Microsoft es compatible con las siguientes versiones de Databricks Connect:

  • Para Python, Databricks Connect para Databricks Runtime 13.1 y versiones posteriores.
  • Para Scala, Databricks Connect para Databricks Runtime 13.3 LTS y versiones posteriores.

Para Databricks Connect, puede realizar una de las siguientes acciones:

Los valores del archivo .databrickscfg siempre tienen prioridad sobre las variables de entorno.

Para inicializar el cliente de Databricks Connect con estas variables de entorno o valores en el archivo .databrickscfg, consulte una de las siguientes opciones:

Código de VS

Para la extensión de Databricks para Visual Studio Code, haga lo siguiente:

  1. Establezca los valores del archivo .databrickscfg para las operaciones de nivel de área de trabajo de Azure Databricks tal como se especifica en esta sección “Perfil” de este artículo.
  2. En el panel Configuración de la extensión de Databricks para Visual Studio Code, haga clic en Configurar Databricks.
  3. En la Paleta de comandos, en Host de Databricks, escriba la dirección URL del área de trabajo como, por ejemplo, https://adb-1234567890123456.7.azuredatabricks.net, y presione Enter.
  4. En la paleta de comandos, seleccione el nombre del perfil de destino en la lista de la dirección URL.

Para obtener más detalles, consulte Configuración de autenticación para la extensión de Databricks para VS Code.

Terraform

Para las operaciones de nivel de cuenta, para la autenticación predeterminada:

provider "databricks" {
  alias = "accounts"
}

Para la configuración directa (reemplace los marcadores de posición retrieve por su propia implementación para recuperar los valores de la consola o de otro almacén de configuración, como HashiCorp Vault. Consulte también Proveedor de Vault). En este caso, la dirección URL de la consola de la cuenta de Azure Databricks es https://accounts.azuredatabricks.net:

provider "databricks" {
  alias               = "accounts"
  host                = <retrieve-account-console-url>
  account_id          = <retrieve-account-id>
  azure_tenant_id     = <retrieve-azure-tenant-id>
  azure_client_id     = <retrieve-azure-client-id>
  azure_client_secret = <retrieve-azure-client-secret>
}

Para las operaciones de nivel de área de trabajo, para la autenticación predeterminada:

provider "databricks" {
  alias = "workspace"
}

Para la configuración directa (reemplace los marcadores de posición retrieve por su propia implementación para recuperar los valores de la consola o de otro almacén de configuración, como HashiCorp Vault. Consulte también Proveedor de Vault). En este caso, el host es la dirección URL de Azure Databricks por área de trabajo, por ejemplo https://adb-1234567890123456.7.azuredatabricks.net:

provider "databricks" {
  alias               = "workspace"
  host                = <retrieve-workspace-url>
  azure_tenant_id     = <retrieve-azure-tenant-id>
  azure_client_id     = <retrieve-azure-client-id>
  azure_client_secret = <retrieve-azure-client-secret>
}

En el caso de las operaciones de nivel de área de trabajo, si la entidad de servicio Microsoft Entra ID aún no se ha agregado al área de trabajo, especifique azure_workspace_resource_id junto con el identificador de recurso de Azure para el área de trabajo de Azure Databricks, en lugar de host junto con la dirección URL del área de trabajo. En este caso, la entidad de servicio de Microsoft Entra ID debe tener al menos permisos de colaborador o propietario en el recurso del área de trabajo de Azure Databricks.

Para obtener más información sobre la autenticación con el proveedor Databricks Terraform, consulte Authentication.

Python

Para las operaciones de nivel de cuenta, para la autenticación predeterminada:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Para la configuración directa (reemplace los marcadores de posición retrieve por su propia implementación para recuperar los valores de la consola o de otro almacén de configuración, como Azure KeyVault). En este caso, la dirección URL de la consola de la cuenta de Azure Databricks es https://accounts.azuredatabricks.net:

from databricks.sdk import AccountClient

a = AccountClient(
  host                = retrieve_account_console_url(),
  account_id          = retrieve_account_id(),
  azure_tenant_id     = retrieve_azure_tenant_id(),
  azure_client_id     = retrieve_azure_client_id(),
  azure_client_secret = retrieve_azure_client_secret()
)
# ...

Para las operaciones de nivel de área de trabajo, para la autenticación predeterminada:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Para la configuración directa (reemplace los marcadores de posición retrieve por su propia implementación para recuperar los valores de la consola o de otro almacén de configuración, como Azure KeyVault). En este caso, el host es la dirección URL de Azure Databricks por área de trabajo, por ejemplo https://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(
  host                = retrieve_workspace_url(),
  azure_tenant_id     = retrieve_azure_tenant_id(),
  azure_client_id     = retrieve_azure_client_id(),
  azure_client_secret = retrieve_azure_client_secret()
)
# ...

En el caso de las operaciones de nivel de área de trabajo, si la entidad de servicio Microsoft Entra ID aún no se ha agregado al área de trabajo, especifique azure_workspace_resource_id junto con el identificador de recurso de Azure para el área de trabajo de Azure Databricks, en lugar de host junto con la dirección URL del área de trabajo. En este caso, la entidad de servicio de Microsoft Entra ID debe tener al menos permisos de colaborador o propietario en el recurso del área de trabajo de Azure Databricks.

Para obtener más información sobre la autenticación con herramientas y SDK de Databricks que usan Python y que implementan la autenticación unificada de cliente de Databricks, consulte:

Java

Para las operaciones de nivel de cuenta, para la autenticación predeterminada:

import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...

Para la configuración directa (reemplace los marcadores de posición retrieve por su propia implementación para recuperar los valores de la consola o de otro almacén de configuración, como Azure KeyVault). En este caso, la dirección URL de la consola de la cuenta de Azure Databricks es https://accounts.azuredatabricks.net:

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId())
  .setAzureTenantId(retrieveAzureTenantId())
  .setAzureClientId(retrieveAzureClientId())
  .setAzureClientSecret(retrieveAzureClientSecret())
AccountClient a = new AccountClient(cfg);
// ...

Para las operaciones de nivel de área de trabajo, para la autenticación predeterminada:

import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...

Para la configuración directa (reemplace los marcadores de posición retrieve por su propia implementación para recuperar los valores de la consola o de otro almacén de configuración, como Azure KeyVault). En este caso, el host es la dirección URL de Azure Databricks por área de trabajo, por ejemplo https://adb-1234567890123456.7.azuredatabricks.net:

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
  .setAzureTenantId(retrieveAzureTenantId())
  .setAzureClientId(retrieveAzureClientId())
  .setAzureClientSecret(retrieveAzureClientSecret())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

En el caso de las operaciones de nivel de área de trabajo, si la entidad de servicio Microsoft Entra ID aún no se ha agregado al área de trabajo, especifique setAzureWorkspaceResourceId junto con el identificador de recurso de Azure para el área de trabajo de Azure Databricks, en lugar de setHost junto con la dirección URL del área de trabajo. En este caso, la entidad de servicio de Microsoft Entra ID debe tener al menos permisos de colaborador o propietario en el recurso del área de trabajo de Azure Databricks.

Para obtener más información sobre la autenticación con herramientas y SDK de Databricks que usan Java y que implementan la autenticación unificada de cliente de Databricks, consulte:

Go

Para las operaciones de nivel de cuenta, para la autenticación predeterminada:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

Para la configuración directa (reemplace los marcadores de posición retrieve por su propia implementación para recuperar los valores de la consola o de otro almacén de configuración, como Azure KeyVault). En este caso, la dirección URL de la consola de la cuenta de Azure Databricks es https://accounts.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:              retrieveAccountConsoleUrl(),
  AccountId:         retrieveAccountId(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

Para las operaciones de nivel de área de trabajo, para la autenticación predeterminada:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

Para la configuración directa (reemplace los marcadores de posición retrieve por su propia implementación para recuperar los valores de la consola o de otro almacén de configuración, como Azure KeyVault). En este caso, el host es la dirección URL de Azure Databricks por área de trabajo, por ejemplo https://adb-1234567890123456.7.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host:              retrieveWorkspaceUrl(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

En el caso de las operaciones de nivel de área de trabajo, si la entidad de servicio Microsoft Entra ID aún no se ha agregado al área de trabajo, especifique AzureWorkspaceResourceId junto con el identificador de recurso de Azure para el área de trabajo de Azure Databricks, en lugar de Host junto con la dirección URL del área de trabajo. En este caso, la entidad de servicio de Microsoft Entra ID debe tener al menos permisos de colaborador o propietario en el recurso del área de trabajo de Azure Databricks.

Para obtener más información sobre la autenticación con herramientas y SDK de Databricks que usan Go y que implementan la autenticación unificada de cliente de Databricks, consulte Autenticación del SDK de Databricks para Go con su cuenta de Azure Databricks o su área de trabajo.