Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
La federación de tokens de OAuth de Databricks está en versión preliminar pública.
En este artículo se explica cómo pasar un token de un proveedor de identidades federado para llamar de forma segura a las API REST de Databricks y acceder a los recursos de Databricks.
Antes de empezar
Antes de comenzar esta tarea, debe haber creado una directiva de federación para su cuenta de Databricks o su principal de servicio.
Después de crear una directiva, puede obtener y usar un token web JSON (JWT) del proveedor de identidades para acceder a las API de Databricks. Los tokens deben ser JWT válidos firmados mediante los algoritmos RS256 o ES256.
El proceso para autenticar el acceso a las API de Databricks a partir de un token de un proveedor de identidades federado es:
- Emita una solicitud a un proveedor de identidades para obtener un JWT federado. Los detalles de cómo obtener un JWT federado variarán en función del proveedor de identidades. Consulte la documentación del proveedor de identidades o un administrador para obtener más información.
- Intercambie el JWT del proveedor de identidades para un token de OAuth de Databricks.
- Use el token de OAuth de Databricks para acceder a las API REST de Databricks.
Paso 1: Emitir una solicitud a un proveedor de identidades para obtener un JWT federado
Los detalles de cómo obtener un JWT federado variarán en función del proveedor de identidades. Consulte la documentación del proveedor de identidades o un administrador para obtener más información.
Paso 2: Intercambio de un JWT desde el proveedor de identidades para un token de OAuth de Databricks
Puede intercambiar un JWT desde el proveedor de identidades para un token de OAuth de Databricks mediante el envío de una solicitud al punto de conexión del token de Databricks para su cuenta o área de trabajo mediante el intercambio de tokens de OAuth 2.0 (RFC 8693).
Por ejemplo, este comando intercambia un JWT federado del proveedor de identidades para un token de OAuth de Databricks mediante una directiva de federación de cuenta:
curl --request POST https://<databricks-workspace-host>/oidc/v1/token \
--data "subject_token=${FEDERATED_JWT_TOKEN}" \
--data 'subject_token_type=urn:ietf:params:oauth:token-type:jwt' \
--data 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange' \
--data 'scope=all-apis'
Sugerencia
Para usar OAuth para acceder a los recursos de la cuenta de Databricks, use la dirección URL https://<databricks-account-host>/oidc/accounts/<account-id>/v1/token
.
El siguiente comando de ejemplo intercambia un JWT federado por un token de OAuth de Databricks mediante una directiva de federación de principal de servicio.
curl --request POST https://<databricks-workspace-host>/oidc/v1/token \
--data "client_id=${CLIENT_ID}" \
--data "subject_token=${FEDERATED_JWT_TOKEN}" \
--data 'subject_token_type=urn:ietf:params:oauth:token-type:jwt' \
--data 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange' \
--data 'scope=all-apis'
Reemplaza CLIENT_ID
por el UUID del principal de servicio (por ejemplo, 7cb2f8a4-49a7-4147-83db-35cb69e5cede
).
Si el token del proveedor de identidades es válido y coincide con la directiva de federación, recibirá una respuesta JSON estándar que incluye un token de OAuth de Databricks en el campo access_token
. Este token de OAuth se puede usar para acceder a las API de Databricks. El token de OAuth de Databricks resultante tiene la misma notificación de expiración (exp
) que el JWT proporcionado en el parámetro subject_token
.
A continuación se muestra un ejemplo de respuesta del punto de acceso del token OAuth:
{
"access_token": "eyJraWQ...odi0WFNqQw",
"scope": "all-apis",
"token_type": "Bearer",
"expires_in": 3600
}
Paso 3: Uso del token de OAuth de Databricks intercambiado para autenticarse en la API de Databricks
A continuación, puede usar el token de OAuth de Databricks resultante como token de portador para acceder a las API de Databricks. Por ejemplo, para utilizar la API SCIM Me de Databricks y recuperar tu usuario de Databricks y tu nombre mostrado:
TOKEN='<your-databricks-oauth-token>'
curl --header "Authorization: Bearer $TOKEN" \
--url https://${DATABRICKS_WORKSPACE_HOSTNAME}/api/2.0/preview/scim/v2/Me
La respuesta debe ser similar a la siguiente:
{
"userName": "username@mycompany.com",
"displayName": "Firstname Lastname"
}