Autenticación del acceso a Azure Databricks con una cuenta de usuario mediante OAuth (OAuth M2M)
Azure Databricks usa la autenticación de usuario a máquina (U2M) de OAuth para habilitar el acceso de la CLI y la API a la cuenta y los recursos del área de trabajo de Azure Databricks en nombre de un usuario. Una vez que un usuario inicia sesión y da su consentimiento a la solicitud de autenticación de OAuth, se proporciona un token de OAuth a la herramienta o SDK participante para realizar la autenticación basada en tokens en nombre del usuario desde ese momento. El token de OAuth tiene una duración de una hora, después de la cual la herramienta o el SDK implicado realizarán un intento automático de obtener un nuevo token que también es válido durante una hora.
Azure Databricks admite dos maneras de autenticar el acceso para una cuenta de usuario con OAuth:
- Principalmente de forma automática, mediante la compatibilidad con la autenticación de cliente unificada de Databricks. Use este enfoque simplificado si usa herramientas y SDK específicos de Azure Databricks (como el SDK de Terraform de Databricks). Las herramientas y los SDK admitidos se enumeran en la autenticación unificada de cliente de Databricks.
- Manualmente, mediante la generación directa de un par de verificador o desafío de código de OAuth y un código de autorización y mediante su uso para crear el token de OAuth inicial que proporcionará en la configuración. Use este enfoque cuando no use una API compatible con la autenticación unificada de cliente de Databricks. Para obtener más información, consulte: Generar y usar tokens de acceso de forma manual para la autenticación OAuth de usuario a máquina (U2M).
Autenticación U2M con autenticación de cliente unificada de Databricks
Nota:
Antes de empezar a configurar la autenticación, revise los permisos de ACL para una categoría específica de operaciones en objetos del área de trabajo y determine si la cuenta tiene el nivel de acceso que necesita. Para obtener más información, consulte Listas de control de acceso.
Para realizar la autenticación U2M de OAuth con herramientas y SDK de Azure Databricks que admitan la autenticación de cliente unificada, integre lo siguiente en el código:
Entorno
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
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 ejemplohttps://adb-1234567890123456.7.azuredatabricks.net
.
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 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>
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>
CLI
Para la CLI de Databricks, ejecute el comando databricks auth login
con las siguientes opciones:
- Para las operaciones a nivel de cuenta de Azure Databricks,
--host <account-console-url> --account-id <account-id>
. - Para las operaciones a nivel de área de trabajo de Azure Databricks,
--host <workspace-url>
.
Después de ejecutar este comando, siga las instrucciones de su navegador web para iniciar sesión en su cuenta o área de trabajo de Azure Databricks.
Para obtener más información, consulte Autenticación U2M de OAuth con la CLI de Databricks.
Conexión
Nota:
La autenticación OAuth U2M 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:
- 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. Establezca también la variable de entornocluster_id
en su perfil en la dirección URL del área de trabajo, por ejemplo,https://adb-1234567890123456.7.azuredatabricks.net
. - Establezca las variables de entorno para las operaciones de nivel de área de trabajode Azure Databricks tal como se especifica en esta sección “Entorno” de este artículo. Establezca también la variable de entorno
DATABRICKS_CLUSTER_ID
en la dirección URL del área de trabajo. Por ejemplo:https://adb-1234567890123456.7.azuredatabricks.net
.
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 Python, consulte Configuración de las propiedades de conexión para Python.
- Para Scala, consulte Configuración de las propiedades de conexión para Scala.
Código de VS
Para la extensión de Databricks para Visual Studio Code, haga lo siguiente:
- En el panel Configuración, haga clic en Configurar Databricks.
- En la Paleta de comandos, en Host de Databricks, escriba la dirección URL del área de trabajo, por ejemplo
https://adb-1234567890123456.7.azuredatabricks.net
y, a continuación, presioneEnter
. - Seleccione OAuth (usuario a máquina).
- Siga las instrucciones que aparecen en pantalla en su navegador web para finalizar la autenticación con su cuenta de Azure Databricks y permitir el acceso a todas las API.
Para obtener más información, consulte Autenticación U2M de OAuth con la CLI de Databricks.
Terraform
Nota:
Aún no es admite la autenticación OAuth U2M.
Python
Para las operaciones a nivel de cuenta y a nivel de área de trabajo, debe utilizar la CLI de Databricks para ejecutar el siguiente comando, antes de ejecutar su código Python. Este comando indica a la CLI de Databricks que genere y almacene en caché el token OAuth necesario en la ruta .databricks/token-cache.json
dentro de la carpeta de inicio de su usuario en su máquina:
Configuración de las operaciones a nivel de cuenta de Azure Databricks
databricks auth login --host <account-console-url> --account-id <account-id>
Reemplace los marcadores de posición siguientes:
- Reemplace
<account-console-url>
por el valorhttps://accounts.azuredatabricks.net
. (no lo establezca con el valor de la URL de su área de trabajo de Azure Databricks). - Reemplace
<account-id>
por el valor de su cuenta Azure Databricks. Consulta Localizar el identificador de la cuenta.
Nota:
Si dispone de un perfil de configuración de Azure Databricks con los campos host
y account_id
ya configurados, puede reemplazar --host <account-console-url> --account-id <account-id>
por --profile <profile-name>
.
Después de ejecutar el comando auth login
, se le pedirá que guarde la URL de inicio de sesión de la cuenta y el Id. de la cuenta como un perfil de configuración de Azure Databricks. Cuando se le solicite, introduzca el nombre de un perfil nuevo o existente en su archivo .databrickscfg
. Cualquier perfil existente con el mismo nombre en su archivo .databrickscfg
se sobrescribe.
Si se le solicita, siga las instrucciones en pantalla de su navegador web para completar el inicio de sesión. A continuación, utilice código Python similar a uno de los siguientes fragmentos:
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 = retrieveAccountConsoleUrl(),
account_id = retrieveAccountId()
)
# ...
Configuración de las operaciones a nivel de área de trabajo de Azure Databricks
databricks auth login --host <worskpace-url>
Reemplace el marcador de posición <workspace-url>
por la URL por área de trabajo de Azure Databricks de destino, por ejemplo https://adb-1234567890123456.7.azuredatabricks.net
.
Nota:
Si dispone de un perfil de configuración de Azure Databricks con el campo host
ya configurado, puede reemplazar --host <workspace-url>
por --profile <profile-name>
.
Una vez ejecutado el comando auth login
, se le pedirá que guarde la URL del área de trabajo como un perfil de configuración de Azure Databricks. Cuando se le solicite, introduzca el nombre de un perfil nuevo o existente en su archivo .databrickscfg
. Cualquier perfil existente con el mismo nombre en su archivo .databrickscfg
se sobrescribe.
Si se le solicita, siga las instrucciones en pantalla de su navegador web para completar el inicio de sesión. A continuación, utilice código Python similar a uno de los siguientes fragmentos:
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 = retrieveWorkspaceUrl())
# ...
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:
- Configuración del cliente de Databricks Connect para Python
- Configuración de la autenticación de la extensión de Databricks para Visual Studio Code
- Autenticación del SDK de Databricks para Python con su cuenta o área de trabajo de Azure Databricks
Java
Para las operaciones a nivel de cuenta y a nivel de área de trabajo, debe utilizar la CLI de Databricks para ejecutar el siguiente comando antes de ejecutar el código Java. Este comando indica a la CLI de Databricks que genere y almacene en caché el token OAuth necesario en la ruta .databricks/token-cache.json
de la carpeta de inicio de su usuario en su máquina:
Configuración de las operaciones a nivel de cuenta de Azure Databricks
databricks auth login --host <account-console-url> --account-id <account-id>
Reemplace los marcadores de posición siguientes:
- Reemplace
<account-console-url>
por el valorhttps://accounts.azuredatabricks.net
. (no lo establezca con el valor de la URL de su área de trabajo de Azure Databricks). - Reemplace
<account-id>
por el valor de su cuenta Azure Databricks. Consulta Localizar el identificador de la cuenta.
Nota:
Si dispone de un perfil de configuración de Azure Databricks con los campos host
y account_id
ya configurados, puede reemplazar --host <account-console-url> --account-id <account-id>
por --profile <profile-name>
.
Después de ejecutar el comando auth login
, se le pedirá que guarde la URL de inicio de sesión de la cuenta y el Id. de la cuenta como un perfil de configuración de Azure Databricks. Cuando se le solicite, introduzca el nombre de un perfil nuevo o existente en su archivo .databrickscfg
. Cualquier perfil existente con el mismo nombre en su archivo .databrickscfg
se sobrescribe.
Si se le solicita, siga las instrucciones en pantalla de su navegador web para completar el inicio de sesión. A continuación, utilice código Java similar a uno de los siguientes fragmentos:
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());
AccountClient a = new AccountClient(cfg);
// ...
Configuración de las operaciones a nivel de área de trabajo de Azure Databricks
Para las operaciones a nivel de área de trabajo, primero debe utilizar la CLI de Databricks para ejecutar el siguiente comando, antes de ejecutar el código Java. Este comando indica a la CLI de Databricks que genere y almacene en caché el token OAuth necesario en la ruta .databricks/token-cache.json
dentro de la carpeta de inicio de su usuario en su máquina:
databricks auth login --host <worskpace-url>
Reemplace el marcador de posición <workspace-url>
por la URL por área de trabajo de Azure Databricks de destino, por ejemplo https://adb-1234567890123456.7.azuredatabricks.net
.
Nota:
Si dispone de un perfil de configuración de Azure Databricks con el campo host
ya configurado, puede reemplazar --host <workspace-url>
por --profile <profile-name>
.
Una vez ejecutado el comando auth login
, se le pedirá que guarde la URL del área de trabajo como un perfil de configuración de Azure Databricks. Cuando se le solicite, introduzca el nombre de un perfil nuevo o existente en su archivo .databrickscfg
. Cualquier perfil existente con el mismo nombre en su archivo .databrickscfg
se sobrescribe.
Si se le solicita, siga las instrucciones en pantalla de su navegador web para completar el inicio de sesión. A continuación, utilice código Java similar a uno de los siguientes fragmentos:
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())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...
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:
- Configuración del cliente de Databricks Connect para Scala (el cliente de Databricks Connect para Scala usa el SDK de Databricks para Java incluido para la autenticación)
- Autenticación del SDK de Databricks para Java con su cuenta o área de trabajo de Azure Databricks
Go
Para las operaciones a nivel de cuenta y a nivel de área de trabajo, debe utilizar la CLI de Databricks para ejecutar el siguiente comando antes de ejecutar su código Go. Este comando indica a la CLI de Databricks que genere y almacene en caché el token OAuth necesario en la ruta .databricks/token-cache.json
dentro de la carpeta de inicio de su usuario en su máquina:
Configuración de las operaciones a nivel de cuenta de Azure Databricks
databricks auth login --host <account-login-url> --account-id <account-id>
Reemplace los marcadores de posición siguientes:
- Reemplace
<account-console-url>
por el valorhttps://accounts.azuredatabricks.net
. (no lo establezca con el valor de la URL de su área de trabajo de Azure Databricks). - Reemplace
<account-id>
por el valor de su cuenta Azure Databricks. Consulta Localizar el identificador de la cuenta.
Nota:
Si dispone de un perfil de configuración de Azure Databricks con los campos host
y account_id
ya configurados, puede reemplazar --host <account-console-url> --account-id <account-id>
por --profile <profile-name>
.
Después de ejecutar el comando auth login
, se le pedirá que guarde la URL de inicio de sesión de la cuenta y el Id. de la cuenta como un perfil de configuración de Azure Databricks. Cuando se le solicite, introduzca el nombre de un perfil nuevo o existente en su archivo .databrickscfg
. Cualquier perfil existente con el mismo nombre en su archivo .databrickscfg
se sobrescribe.
Si se le solicita, siga las instrucciones en pantalla de su navegador web para completar el inicio de sesión. A continuación, utilice un código Go similar a uno de los siguientes fragmentos:
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(),
}))
// ...
Configuración de las operaciones a nivel de área de trabajo de Azure Databricks
Para las operaciones a nivel de área de trabajo, primero debe utilizar la CLI de Databricks para ejecutar el siguiente comando, antes de ejecutar su código Go. Este comando indica a la CLI de Databricks que genere y almacene en caché el token OAuth necesario en la ruta .databricks/token-cache.json
dentro de la carpeta de inicio de su usuario en su máquina:
databricks auth login --host <worskpace-url>
Reemplace el marcador de posición <workspace-url>
por la URL por área de trabajo de Azure Databricks de destino, por ejemplo https://adb-1234567890123456.7.azuredatabricks.net
.
Nota:
Si dispone de un perfil de configuración de Azure Databricks con el campo host
ya configurado, puede reemplazar --host <workspace-url>
por --profile <profile-name>
.
Una vez ejecutado el comando auth login
, se le pedirá que guarde la URL del área de trabajo como un perfil de configuración de Azure Databricks. Cuando se le solicite, introduzca el nombre de un perfil nuevo o existente en su archivo .databrickscfg
. Cualquier perfil existente con el mismo nombre en su archivo .databrickscfg
se sobrescribe.
Si se le solicita, siga las instrucciones en pantalla de su navegador web para completar el inicio de sesión. A continuación, utilice un código Go similar a uno de los siguientes fragmentos:
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(),
}))
// ...
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.
Generar y usar tokens de acceso de forma manual para la autenticación OAuth de usuario a máquina (U2M)
Las herramientas y SDK de Azure Databricks que implementan el estándar de autenticación unificada de cliente de Databricks generarán, actualizarán y utilizarán automáticamente tokens de acceso OAuth de Azure Databricks en su nombre según sea necesario para la autenticación OAuth U2M.
Si por alguna razón debe generar, actualizar o usar tokens de acceso de forma manual de acceso Azure Databricks OAuth para la autenticación OAuth U2M, siga las instrucciones de esta sección.
Paso 1: generar un comprobador de código OAuth y un par de desafío de código
Para generar y usar tokens de acceso de forma manual para la autenticación U2M de OAuth, primero debe tener un comprobador de código OAuth y un desafío de código de OAuth derivado del comprobador de código. Utilice el desafío de código en el Paso 2 para generar un de autorización OAuth. Utilice el comprobador de código y el código de autorización en el Paso 3 para generar el token de acceso OAuth.
Nota:
Aunque técnicamente es posible utilizar cadenas de texto plano sin codificar para el comprobador de código y el desafío de código, Databricks recomienda encarecidamente seguir el estándar OAuth para generar el comprobador de código y los desafíos de código.
En concreto, el código comprobador debe ser una cadena criptográficamente aleatoria que utilice caracteres de los conjuntos A-Z
, a-z
, 0-9
,y los caracteres de puntuación -._~
(guión, punto, guión bajo y tilde), de entre 43 y 128 caracteres de longitud. El desafío de código debe ser una cadena codificada en Base64-URL del hash SHA256 del comprobador de código. Para obtener más información, consulte Solicitud de autorización.
Puede ejecutar el siguiente script de Python para generar rápidamente un par único de verificador de código y desafío de código. Aunque puede reutilizar este par de verificador de código y desafío de código generado varias veces, Databricks recomienda que genere un nuevo par de verificador de código y desafío de código cada vez que genere manualmente tokens de acceso para la autenticación OAuth U2M.
import uuid, hashlib, base64
# Generate a UUID.
uuid1 = uuid.uuid4()
# Convert the UUID to a string.
uuid_str1 = str(uuid1).upper()
# Create the code verifier.
code_verifier = uuid_str1 + "-" + uuid_str1
# Create the code challenge based on the code verifier.
code_challenge = base64.urlsafe_b64encode(hashlib.sha256(code_verifier.encode()).digest()).decode('utf-8')
# Remove all padding from the code challenge.
code_challenge = code_challenge.replace('=', '')
# Print the code verifier and the code challenge.
# Use these in your calls to manually generate
# access tokens for OAuth U2M authentication.
print(f"code_verifier: {code_verifier}")
print(f"code_challenge: {code_challenge}")
Paso 2: generar un código de autorización
Utilice un código de autorización OAuth para generar un token de acceso Azure Databricks OAuth. El código de autorización caduca inmediatamente después de utilizarlo para generar un token de acceso Azure Databricks OAuth. El alcance del código de autorización depende del nivel desde el que se genere. Puede generar un código de autorización en el nivel de cuenta de Azure Databricks o en el nivel de área de trabajo, como se indica a continuación:
- Para llamar a las API REST a nivel de cuenta y de área de trabajo dentro de las cuentas y áreas de trabajo a las que tiene acceso su cuenta de usuario de Azure Databricks, genere un código de autorización a nivel de cuenta.
- Para llamar a las API de REST solo dentro de un área de trabajo a la que tenga acceso su cuenta de usuario, puede generar un código de autorización a nivel de área de trabajo solo para esa área de trabajo.
Generar un código de autorización a nivel de cuenta
Como administrador de la cuenta, inicie sesión en la consola de la cuenta.
Haga clic en la flecha hacia abajo situada junto a su nombre de usuario en la esquina superior derecha.
Copie su Id. de cuenta.
En la barra de direcciones de su navegador, vaya a la siguiente URL. Se han agregado saltos de línea para mayor claridad. Su URL no debe contener estos saltos de línea.
En la siguiente URL, reemplace lo siguiente:
- Reemplace
<account-id>
con el Id. de cuenta que copió. - Reemplace
<redirect-url>
con una URL de redirección a su máquina local, por ejemplohttp://localhost:8020
. - Reemplace
<state>
con alguna cadena de texto plano que pueda utilizar para verificar la integridad del código de autorización. - Reemplace
<code-challenge>
con el desafío de código que generó en el Paso 1.
https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/authorize ?client_id=databricks-cli &redirect_uri=<redirect-url> &response_type=code &state=<state> &code_challenge=<code-challenge> &code_challenge_method=S256 &scope=all-apis+offline_access
- Reemplace
Cuando se le solicite, siga las instrucciones en pantalla para iniciar sesión en su cuenta de Azure Databricks.
En la barra de direcciones de su navegador, copie el código de autorización. El código de autorización es la cadena completa de caracteres entre
code=
y el carácter&
de la URL. Por ejemplo, el código de autorización en la siguiente URL esdcod...7fe6
:http://localhost:8020/?code=dcod...7fe6&state=<state>
Debe verificar la integridad de este código de autorización confirmando visualmente que el
<state>
valor de esta URL de respuesta coincide con el valorstate
que proporcionó en su URL de solicitud. Si los valores son diferentes, no debe utilizar este código de autorización, ya que podría estar en peligro.
Generar un código de autorización a nivel del área de trabajo
En la barra de direcciones de su navegador, vaya a la siguiente URL. Se han agregado saltos de línea para mayor claridad. Su URL no debe contener estos saltos de línea.
En la siguiente URL, reemplace lo siguiente:
- Reemplace
<databricks-instance>
por el nombre de instancia de área de trabajo de Azure Databricks, por ejemploadb-1234567890123456.7.azuredatabricks.net
. - Reemplace
<redirect-url>
con una URL de redirección a su máquina local, por ejemplohttp://localhost:8020
. - Reemplace
<state>
con alguna cadena de texto plano que pueda utilizar para verificar la integridad del código de autorización. - Reemplace
<code-challenge>
con el desafío de código que generó en el Paso 1.
https://<databricks-instance>/oidc/v1/authorize ?client_id=databricks-cli &redirect_uri=<redirect-url> &response_type=code &state=<state> &code_challenge=<code-challenge> &code_challenge_method=S256 &scope=all-apis+offline_access
- Reemplace
Cuando se le solicite, siga las instrucciones en pantalla para iniciar sesión en su área de trabajo de Azure Databricks.
En la barra de direcciones de su navegador, copie el código de autorización. El código de autorización es la cadena completa de caracteres entre
code=
y el carácter&
de la URL. Por ejemplo, el código de autorización en la siguiente URL esdcod...7fe6
:http://localhost:8020/?code=dcod...7fe6&state=<state>
Debe verificar la integridad de este código de autorización confirmando visualmente que el
<state>
valor de esta URL de respuesta coincide con el valorstate
que proporcionó en su URL de solicitud. Si los valores son diferentes, no debe utilizar este código de autorización, ya que podría estar en peligro.
Paso 3: utilice el código de autorización para generar un token de acceso OAuth
Utilice el código de autorización OAuth del paso anterior para generar un token de acceso Azure Databricks OAuth, como se indica a continuación:
- Para llamar a las API REST a nivel de cuenta y de área de trabajo dentro de las cuentas y áreas de trabajo a las que tiene acceso su cuenta de usuario de Azure Databricks, utilice el código de autorización a nivel de cuenta para generar un token de acceso a nivel de cuenta.
- Para llamar a las API de REST solo dentro de un área de trabajo a la que tenga acceso su cuenta de usuario, puede utilizar el código de autorización a nivel de área de trabajo para generar un token de acceso a nivel de área de trabajo solo para esa área de trabajo.
Generar un token de acceso a nivel de cuenta
Utilice un cliente como
curl
junto con el código de autorización a nivel de cuenta para generar el token de acceso OAuth a nivel de cuenta. En la siguiente llamadacurl
, sustituya los siguientes marcadores de posición:- Reemplace
<account-id>
con el Id. de cuenta del paso 2. - Reemplace
<redirect-url>
con la URL de redirección del paso 2. - Reemplace
<code-verifier>
con el código verificador que generó en el Paso 1. - Reemplace
<authorization-code>
con el código de autorización a nivel de cuenta que generó en el Paso 2.
curl --request POST \ https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/token \ --data "client_id=databricks-cli" \ --data "grant_type=authorization_code" \ --data "scope=all-apis offline_access" \ --data "redirect_uri=<redirect-url>" \ --data "code_verifier=<code-verifier>" \ --data "code=<authorization-code>"
- Reemplace
En la respuesta, copie en la respuesta el token de acceso OAuth a nivel de cuenta. El token de acceso es la cadena completa de caracteres del objeto
access_token
. Por ejemplo, el token de acceso en la siguiente respuesta eseyJr...Dkag
:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }
Este token de acceso expira en una hora. Para generar un nuevo código de acceso, repita el procedimiento desde el paso 1.
Generar un token de acceso a nivel de área de trabajo
Utilice un cliente como
curl
junto con el código de autorización a nivel de área de trabajo para generar el token de acceso OAuth a nivel de área de trabajo. En la siguiente llamadacurl
, sustituya los siguientes marcadores de posición:- Reemplace
<databricks-instance>
por el nombre de instancia de área de trabajo de Azure Databricks, por ejemploadb-1234567890123456.7.azuredatabricks.net
. - Reemplace
<redirect-url>
con la URL de redirección del paso 2. - Reemplace
<code-verifier>
con el código verificador que generó en el Paso 1. - Reemplace
<authorization-code>
con el código de autorización a nivel de área de trabajo que generó en el Paso 2.
curl --request POST \ https://<databricks-instance>/oidc/v1/token \ --data "client_id=databricks-cli" \ --data "grant_type=authorization_code" \ --data "scope=all-apis offline_access" \ --data "redirect_uri=<redirect-url>" \ --data "code_verifier=<code-verifier>" \ --data "code=<authorization-code>"
- Reemplace
En la respuesta, copie el token de acceso OAuth a nivel de área de trabajo. El token de acceso es la cadena completa de caracteres del objeto
access_token
. Por ejemplo, el token de acceso en la siguiente respuesta eseyJr...Dkag
:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }
Este token de acceso expira en una hora. Para generar un nuevo código de acceso, repita el procedimiento desde el paso 1.
Paso 4: llamar a una API REST de Databricks
Utilice el token de acceso OAuth a nivel de cuenta o a nivel de área de trabajo para autenticarse en las API REST a nivel de cuenta de Azure Databricks y en las API REST a nivel de área de trabajo, en función del alcance del token de acceso. Su cuenta de usuario de Azure Databricks debe ser un administrador de cuenta para llamar a las API REST a nivel de cuenta.
Ejemplo de solicitud de API REST a nivel de cuenta
Este ejemplo utiliza curl
junto con Bearer
la autenticación para obtener una lista de todos las áreas de trabajo asociadas a una cuenta.
- Reemplace
<oauth-access-token>
con el token de acceso OAuth a nivel de cuenta. - Reemplace
<account-id>
por el id. de su cuenta.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://accounts.azuredatabricks.net/api/2.0/accounts/<account-id>/workspaces"
Ejemplo de solicitud de API REST a nivel de área de trabajo
Este ejemplo utiliza curl
junto con Bearer
la autenticación para listar todos los clusters disponibles en el área de trabajo especificada.
- Reemplace
<oauth-access-token>
con el token de acceso OAuth a nivel de cuenta o a nivel de área de trabajo. - Reemplace
<databricks-instance>
por el nombre de instancia de área de trabajo de Azure Databricks, por ejemploadb-1234567890123456.7.azuredatabricks.net
.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"