Pular para o conteúdo principal

Habilitar a federação de identidade de carga de trabalho para o pipeline Azure DevOps

info

Visualização

A federação de tokens OAuth da Databricks está em Public Preview.

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, use a CLI da Databricks para criar uma política de federação de identidade de carga de trabalho. Para o Azure DevOps, defina os seguintes valores para a política:

  • issuer: https://vstoken.dev.azure.com/<org_id>, onde <org-id> é o GUID de sua organização do Azure DevOps
  • audiences: api://AzureADTokenExchange
  • subject: p://<org-name>/<project-name>/<pipeline-name> em que <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, dado um ID de organização 7f1078d6-b20d-4a20-9d88-05a2f0d645a3 com um ID numérico de entidade de serviço Databricks de 5581763342009999, crie uma política de federação usando o seguinte Databricks CLI comando:

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'