Use tokens de um provedor de identidade para se autenticar no Databricks
Neste artigo, o senhor seguirá as etapas para passar tokens de um provedor de identidade federado para chamar com segurança Databricks REST APIs e acessar seu recurso Databricks.
Antes de começar
Antes de iniciar essa tarefa, o senhor deve ter configurado uma política de federação para o seu Databricks account ou entidade de serviço.
Depois de configurá-lo, o senhor pode obter e usar um JSON web tokens (JWT) do seu provedor de identidade para acessar Databricks APIs. Os tokens devem ser JWTs válidos e assinados usando os algoritmos RS256 ou ES256.
O processo de autenticação de acesso ao site Databricks APIs começa com tokens de um provedor de identidade federado:

Emita uma solicitação a um provedor de identidade para obter um JWT federado. Os detalhes de como obter um JWT federado variam de acordo com o provedor de identidade. Consulte a documentação do seu provedor de identidade ou um administrador para obter detalhes.
Troque o JWT do seu provedor de identidade por um token Databricks OAuth .
Use os tokens Databricks OAuth para acessar Databricks APIs.
Etapa 1: Emitir uma solicitação a um provedor de identidade para obter um JWT federado
Os detalhes de como obter um JWT federado variam de acordo com o provedor de identidade. Consulte a documentação do seu provedor de identidade ou um administrador para obter detalhes.
Etapa 2: Troque um JWT de seu provedor de identidade por tokens Databricks OAuth
O senhor troca um JWT do seu provedor de identidade por tokens Databricks OAuth enviando uma solicitação aos tokens Databricks endpoint para o seu account ou workspace, usando o OAuth 2.0 tokens Exchange(RFC 8693).
Por exemplo, esse comando troca um JWT federado do seu provedor de identidade por tokens Databricks OAuth usando uma política de federação account:
curl --request POST https://<databricks-workspace-host>/oidc/v1/token \
--data "subject_token=${FEDERATED_JWT_TOKEN}" \
--data 'subject_token_type=urn:ietf:params:oauth:token-type:jwt' \
--data 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange' \
--data 'scope=all-apis'
Dica
Para usar OAuth para acessar Databricks account recurso, use o URL https://<databricks-account-host>/oidc/accounts/<account-id>/v1/token
.
O comando de exemplo a seguir troca um JWT federado por um Databricks OAuth tokens usando uma política de federação de entidade de serviço:
curl --request POST https://<databricks-workspace-host>/oidc/v1/token \
--data "client_id=${CLIENT_ID}" \
--data "subject_token=${FEDERATED_JWT_TOKEN}" \
--data 'subject_token_type=urn:ietf:params:oauth:token-type:jwt' \
--data 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange' \
--data 'scope=all-apis'
Substitua CLIENT_ID
pelo UUID da entidade de serviço (por exemplo, 7cb2f8a4-49a7-4147-83db-35cb69e5cede
).
Se os tokens do seu provedor de identidade forem válidos e corresponderem à sua política de federação, o senhor receberá uma resposta padrão JSON que inclui um Databricks OAuth tokens no campo access_token
. Esses tokens OAuth podem ser usados para acessar Databricks APIs. Os tokens Databricks OAuth resultantes têm a mesma reivindicação de expiração (exp
) que o JWT fornecido no parâmetro subject_token
.
A seguir, um exemplo de resposta OAuth tokens endpoint:
{
"access_token": "eyJraWQ...odi0WFNqQw",
"scope": "all-apis",
"token_type": "Bearer",
"expires_in": 3600
}
Etapa 3: Use os tokens Databricks OAuth trocados para se autenticar no Databricks API
O senhor pode então usar os tokens Databricks OAuth resultantes como tokens portadores para acessar Databricks APIs. Por exemplo, para chamar a API SCIM Me da Databricks para recuperar seu usuário e nome de exibição da Databricks:
TOKEN='<your-databricks-oauth-token>'
curl --header "Authorization: Bearer $TOKEN" \
--url https://${DATABRICKS_WORKSPACE_HOSTNAME}/api/2.0/preview/scim/v2/Me
A resposta deve ser semelhante à seguinte:
{
"userName": "username@mycompany.com",
"displayName": "Firstname Lastname",
}