Partilhar via


Ativar a federação de identidade de carga de trabalho para Pipelines do Azure DevOps

A federação de tokens OAuth do Databricks, também conhecida como OpenID Connect (OIDC), permite que suas cargas de trabalho automatizadas executadas fora do Databricks acessem com segurança o Databricks sem a necessidade de segredos do Databricks. Consulte Autenticar o acesso ao Azure Databricks usando a federação de tokens OAuth.

Para habilitar a federação de identidade de carga de trabalho para o Azure DevOps Pipelines:

  1. Criar uma política de federação
  2. Configurar o Azure DevOps Pipeline YAML

Depois de habilitar a federação de identidades de carga de trabalho, os SDKs do Databricks e a CLI do Databricks buscam automaticamente tokens de identidade de carga de trabalho dos Pipelines de DevOps do Azure e os trocam por tokens OAuth do Databricks.

Criar uma política de federação

Primeiro, crie uma política de federação de identidade de carga de trabalho personalizada. Para obter instruções, consulte Configurar uma política de federação da entidade de serviço. Para o Azure DevOps, defina os seguintes valores para a política:

  • URL do emissor:https://vstoken.dev.azure.com/<org_id>, onde <org-id> é o GUID da sua organização do Azure DevOps
  • Audiências:api://AzureADTokenExchange
  • Assunto:p://<org-name>/<project-name>/<pipeline-name> onde <org-name> é o nome da sua organização do Azure DevOps, <project-name> é o nome do seu projeto do Azure DevOps e <pipeline-name> é o nome do seu pipeline do Azure DevOps

Por exemplo, o seguinte comando da CLI do Databricks cria uma política de federação para um ID 7f1078d6-b20d-4a20-9d88-05a2f0d645a3 da organização e um ID numérico da entidade de serviço do Databricks de 5581763342009999:

databricks account service-principal-federation-policy create 5581763342009999 --json '{
  "oidc_policy": {
	"issuer": "https://vstoken.dev.azure.com/7f1078d6-b20d-4a20-9d88-05a2f0d645a3",
	"audiences": [
  	    "api://AzureADTokenExchange"
	],
	"subject": "p://my-org/my-project/my-pipeline"
  }
}
'

Configurar o Azure DevOps Pipeline YAML

Em seguida, configure o arquivo YAML do Pipeline do Azure DevOps. Defina as seguintes variáveis de ambiente:

  • DATABRICKS_AUTH_TYPE: azure-devops-oidc
  • DATABRICKS_HOST: URL do espaço de trabalho do Databricks
  • DATABRICKS_CLIENT_ID: O ID da entidade de serviço (aplicativo)
  • SYSTEM_ACCESSTOKEN: Mapear a variável de pipeline $(System.AccessToken) para esta variável de ambiente
trigger: none
pool: test # my self-hosted pool name

variables:
  DATABRICKS_HOST: https://my-workspace.cloud.databricks.com/
  DATABRICKS_AUTH_TYPE: azure-devops-oidc
  DATABRICKS_CLIENT_ID: a1b2c3d4-ee42-1eet-1337-f00b44r

steps:
  - script: |
      databricks current-user me
    displayName: 'Display Databricks current user information'
    env:
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)