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 :
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
:
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 YAML do pipeline do Azure DevOps
Em seguida, configure o arquivo YAML do pipeline Azure DevOps . Defina a seguinte variável de ambiente:
DATABRICKS_AUTH_TYPE
:azure-devops-oidc
DATABRICKS_HOST
: URL do seu workspace DatabricksDATABRICKS_CLIENT_ID
: O ID da entidade de serviço (aplicativo)SYSTEM_ACCESSTOKEN
: Mapeie 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)