Compartir vía


Autenticación de la entidad de servicio de MS Entra

La autenticación de la entidad de servicio de MS Entra usa las credenciales de una entidad de servicio de MS Entra para la autenticación. 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 MS Entra. 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 MS Entra en los casos en los que necesite autenticarse con Azure Databricks y otros recursos de Azure al mismo tiempo.

Para usar la autenticación de OAuth M2M en lugar de la autenticación de entidad de servicio de MS Entra, omita este artículo y consulte Autenticación del acceso a Azure Databricks con una entidad de servicio mediante OAuth (OAuth M2M).

Las entidades de servicio de MS Entra son diferentes de las identidades administradas para 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 MS Entra 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 más información específicamente sobre la autenticación de Microsoft Entra en Databricks con Azure DevOps, consulte Autenticación con Azure DevOps en Databricks.

Para configurar la autenticación de entidad de servicio MS Entra 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 MS Entra 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 MS Entra 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.

  • El id. de inquilino de la entidad de servicio de MS Entra.

  • El id. de cliente de la entidad de servicio de MS Entra.

  • El secreto de cliente de la entidad de servicio de MS Entra.

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

Para usar variables de entorno para un tipo de autenticación de Azure Databricks específico con una herramienta o SDK, consulte Autenticación del acceso a los recursos de Azure Databricks 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 Métodos predeterminados para la autenticación unificada 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 de MS Entra 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 MS Entra debe tener al menos permisos de colaborador o propietario en el recurso de Azure del área de trabajo de Azure Databricks.

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 Autenticación del acceso a los recursos de Azure Databricks 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 Métodos predeterminados para la autenticación unificada 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 de MS Entra 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 MS Entra debe tener al menos permisos de colaborador o propietario en el recurso de Azure del área de trabajo de Azure Databricks.

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.

Nota:

La autenticación de entidades de servicio de MS Entra se admite en 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:

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 la autenticación para la extensión de Databricks para Visual Studio Code.

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 de MS Entra 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 MS Entra debe tener al menos permisos de colaborador o propietario en el recurso de Azure del área de trabajo de Azure Databricks.

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

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 de MS Entra 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 MS Entra debe tener al menos permisos de colaborador o propietario en el recurso de Azure 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:

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 de MS Entra 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 MS Entra debe tener al menos permisos de colaborador o propietario en el recurso de Azure 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:

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 de MS Entra 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 MS Entra debe tener al menos permisos de colaborador o propietario en el recurso de Azure 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.