Habilitar a federação de identidade de carga de trabalho para o pipeline Azure DevOps
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 :
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 DevOpsaudiences
: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:
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 workspaceDATABRICKS_CLIENT_ID
ID da entidade de serviço (aplicativo)
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'