Los tokens de golpe personal (PAT) son una forma conveniente de aceptar a servicios como Azure Databricks o Azure DevOps sin iniciar sesión con su contraseña. Hoy en día, muchos clientes usan tokens PAT de Azure DevOps como credenciales de Git para repositorios remotos en carpetas Git de Databricks (anteriormente Repos). Desafortunadamente, el uso de tokens PAT tiene algunas desventajas. En Azure DevOps, los tokens PAT no se pueden emitir a entidades de servicio ni a identidades administradas, lo que significa que los clientes recurren a una cuenta de servicio o incluso a la identidad de un afortunado. Adicionalmente, la vida útil máxima de los tokens PAT suele ser de días, semanas o incluso meses. Si adecuadamente su rotación (el proceso de desempolvar los tokens de modo que los más antiguos ya no se puedan usar) puede ser gobernadoesto significa que un token filtrado con una vida útil prolongada puede representar un peligro significativo. Una alternativa más segura es aceptar a los fortuna de Azure DevOps mediante un token de golpe de Microsoft Entra ID (anteriormente Azure Active Directory).
De los documentos de Microsoft:
Como los PAT son simplemente tokens al portador, es aseverar, cadenas de tokens que representan el nombre de afortunado y la contraseña de un afortunado, su uso es increíblemente riesgoso, ya que pueden caer fácilmente en manos de la persona equivocada. Los tokens de Microsoft Entra caducan cada hora (…), lo que limita el negociador de peligro caudillo en caso de filtración.1) Al considerar el golpe a los repositorios Git de Azure DevOps vinculados a sus carpetas Git de Databricks, ya no necesita someterse de PAT. Ahora, puede usar tokens de golpe de Microsoft Entra ID, que tienen controles más estrictos en torno a la rotación y el vencimiento de tokens.
En este blog, aprenderemos cómo usar un token de golpe de Entra ID como credencial de Git en las carpetas de Git de Databricks para proteger la postura de seguridad al extraer repositorios alojados en Azure DevOps.
Prerrequisitos | Crear entidad principal de servicio
Para comenzar, Necesita una identidad administrada o entidad de servicio. Si no tiene una, siga este documento: Registrar una aplicación de Microsoft Entra y crear una entidad de servicioAl final, tendrás un principal de servicio que podrás utilizar. Tenga en cuenta que en este ambiente no se requiere ninguna URL de redireccionamiento, por lo que puede dejar ese ambiente de formulario en blanco. Asegúrese de crear un secreto y anotarlo, unido con el ID de la entidad de servicio. (Los siguientes pasos muestran cómo usar una entidad de servicio como mecanismo de autenticación, pero los mismos pasos además se aplican a una identidad administrada).
Este proceso supone que tiene un esquema de Azure DevOps configurado con un repositorio Git que desea vincular a una carpeta Git de Databricks.
Paso 1 | Otorgue a su entidad de servicio permisos de recital en su esquema

En Azure DevOps Configuración del esquema > Permisos > Lectores Agregue su entidad de servicio.

Asegúrese de que el nivel de golpe sea suficiente para la operación requerida. Configuración de la ordenamiento > Usuarios.
Paso 2 | Otorgar a la entidad de servicio los permisos necesarios en Databricks

Si usa Unity Catalog, fiordo otra pestaña del navegador y vaya a la consola de su cuenta de Databricks, y luego agregue la entidad de servicio a su cuenta.

Ahora, genere un secreto OAuth para autenticarse contra la API de Databricks (usando la CLI)) y copiarlo en algún zona seguro.

Por postrer, otorgue al afortunado principal del servicio permisos en su espacio de trabajo.
Paso 3 | Use la CLI para crear un token de identificación de Entra y almacenarlo en la credencial Git de Databricks
Para este paso, utilizará la CLI de Azure y Databricks. Para autenticarse en Databricks, necesita una perfil de configuración (.databrickscfg) configurado con el token OAuth que acabamos de crear, la URL de su espacio de trabajo y una ID de entidad de servicio. Su modernización a .databrickscfg Debería estar poco como esto:
(DEFAULT)
host = https://.azuredatabricks.net/
client_id =
client_secret =
Para registrar la entidad de servicio con AzureCLI, usamos el secreto que hemos creado anteriormente. El script solicita un token de golpe de ID de Entra con capacidad para Azure DevOps (indicado por el UUID) 499b84ac-1321-427f-aa17-267ca6975798), luego configura una credencial de Git con la CLI de Databricks y la usa para configurar nuestra nueva carpeta de Git:
#!/bin/bash
# Prompt user for required inputs and assign to variables
read -p "Enter Service Principal ID: " service_principal_id
read -p "Enter Tenant ID: " tenant_id
read -p "Enter Service Principal Secret: " service_principal_secret
read -p "Enter Service Principal Name: " service_principal_name
read -p "Enter your Azure DevOps Organization name: " devops_organization
read -p "Enter your Azure DevOps project name: " devops_project
read -p "Enter your Azure DevOps repository name: " devops_repo
#Login to Azure as the service principal
az login --allow-no-subscriptions --service-principal -u $service_principal_id -p $service_principal_secret --tenant $tenant_id
#As the service principal, request an EntraID access token scoped to Azure DevOps.
ENTRA_ID_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv)
#Use the access token instead of a PAT to create a Git credential in Databricks with the service principal's name as git username.
#This assumes you have already setup the Databricks CLI .databrickscfg file with workspace, client_id, and client_secret
databricks git-credentials create azureDevOpsServices --personal-access-token $ENTRA_ID_TOKEN --git-username $service_principal_name
#Create a new Databricks repository using the service principal name as the user name
databricks repos create https://$service_principal_name@dev.azure.com/$devops_organization/$devops_project/_git/$devops_repo
Breviario | ¿Qué sigue?
Ahora aprendió a difundir tokens de golpe de ID de Microsoft Entra con capacidad para Azure DevOps y luego almacenarlos como una credencial de Git de Databricks en zona de como un token PAT de DevOps. Como el token de golpe de ID de MS Entra tiene una vida útil corta, su canalización debe desempolvar la credencial de Git mediante la modernización de credenciales de Git de Databricks y luego puede activar una extirpación llamando a la modernización de repos de Databricks. Como este proceso solo muestra la configuración de credenciales, generalmente se requieren medidas de seguridad adicionales en un entorno de producción, como acumular el secreto del cliente principal del servicio y el token OAuth de Databricks en un almacén de secretos seguro como Azure Key Vault.
Ver Usar secretos de Azure Key Vault en Azure Pipelines y Ámbitos secretos Para más detalles.