Pular para o conteúdo principal

Habilitar a federação de identidade de carga de trabalho para o pipeline 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 o Databricks com segurança sem a necessidade de segredos do Databricks. Consulte Autenticar o acesso ao Databricks usando a federação de tokens OAuth.

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

  1. Crie uma política de federação
  2. Configurar o YAML

Depois que o senhor ativar a federação de identidade de carga de trabalho, os SDKs Databricks e o Databricks CLI buscarão automaticamente a identidade da carga de trabalho tokens do pipeline Azure DevOps e a trocarão pelo Databricks OAuth tokens.

Crie uma política de federação

Primeiro, crie uma política personalizada de federação de identidades de carga de trabalho. Para obter instruções, consulte Configurar uma política de federação de 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 de sua organização do Azure DevOps
  • Públicos: api://AzureADTokenExchange
  • Assunto: p://<org-name>/<project-name>/<pipeline-name> onde <org-name> é o nome da organização do Azure DevOps, <project-name> é o nome do projeto do Azure DevOps e <pipeline-name> é o nome do pipeline do Azure DevOps

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

Bash
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 YAML

Em seguida, modifique o arquivo de configuração. Além de definir o seguinte workspace variável de ambiente, use o Azure CLI para obter um tokens no Job e armazená-lo em DATABRICKS_OIDC_TOKEN.

  • DATABRICKS_AUTH_TYPE: env-oidc
  • DATABRICKS_HOST: seu URL Databricks workspace
  • DATABRICKS_CLIENT_IDID da entidade de serviço (aplicativo)
YAML
trigger: none
pool: test # my self-hosted pool name

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

steps:
- script: |
OIDC_REQUEST_URL="${SYSTEM_OIDCREQUESTURI}?api-version=7.1"
export DATABRICKS_OIDC_TOKEN=$(curl -s -H "Content-Length: 0" -H "Content-Type: application/json" -H "Authorization: Bearer $(System.AccessToken)" -X POST $OIDC_REQUEST_URL | jq -r '.oidcToken')
databricks current-user me
displayName: 'Display Databricks current user information'