Compartilhar via


Obter tokens do Microsoft Entra ID para entidades de serviço do Microsoft Entra ID usando a CLI do Azure

Importante

Este artigo descreve como criar manualmente tokens do Microsoft Entra ID para entidades de serviço do Microsoft Entra ID usando a CLI do Azure.

As entidades de serviço gerenciadas do Azure Databricks são gerenciadas diretamente no Azure Databricks. As entidades de serviços gerenciadas do Microsoft Entra ID são gerenciadas no Microsoft Entra ID, o que requer permissões adicionais. O Databricks recomenda que você use as entidades de serviço gerenciadas do Azure Databricks para a maioria dos casos de uso. No entanto, o Databricks recomenda que você use as entidades de serviço gerenciadas do Microsoft Entra ID nos casos em que você precisa se autenticar no Azure Databricks e em outros recursos do Azure ao mesmo tempo.

Para criar uma entidade de serviço gerenciada do Azure Databricks em vez de uma entidade de serviço gerenciada do Microsoft Entra ID, consulte Gerenciar entidades de serviço.

O Databricks não recomenda criar manualmente tokens do Microsoft Entra ID para entidades de serviço do Microsoft Entra ID. Isso ocorre porque cada token do Microsoft Entra ID tem curta duração, normalmente expirando em uma hora. Após esse tempo, você precisará gerar manualmente um token de substituição do Microsoft Entra ID. Em vez disso, use uma das ferramentas ou SDKs participantes que implementam o padrão de autenticação unificada do cliente Databricks. Essas ferramentas e SDKs geram e substituem automaticamente os tokens expirados do Microsoft Entra ID, aproveitando os seguintes tipos de autenticação do Databricks:

Você pode usar a CLI do Azure para obter tokens de acesso do Microsoft Entra ID para entidades de serviço do Microsoft Entra ID.

  1. Reúna as seguintes informações:

    Parâmetro Descrição
    Tenant ID O Directory (tenant) ID do aplicativo relacionado registrado no Microsoft Entra ID.
    Client ID O Application (client) ID do aplicativo relacionado registrado no Microsoft Entra ID.
    Client secret O Value do segredo do cliente para o aplicativo relacionado registrado no Microsoft Entra ID.
  2. Obtenha a ID da assinatura correta do Azure para a entidade de serviço do Microsoft Entra ID, se você ainda não conhece essa ID, fazendo um dos seguintes procedimentos:

    • Na barra de navegação superior do workspace do Azure Databricks, clique em seu nome de usuário e, em seguida, no Portal do Azure. Na página de recursos do workspace do Azure Databricks exibida, clique em Visão geral na barra lateral. Em seguida, procure o campo ID da Assinatura, que contém a ID da assinatura.

    • Use a CLI do Azure para executar o comando az databricks workspace list, usando as opções --query e -o ou --output para restringir os resultados. Substitua adb-0000000000000000.0.azuredatabricks.net pelo nome da instância do workspace, sem incluir o https://. Neste exemplo, o 00000000-0000-0000-0000-000000000000 após /subscriptions/ na saída é a ID da assinatura.

      az databricks workspace list --query "[?workspaceUrl==\`adb-0000000000000000.0.azuredatabricks.net\`].{id:id}" -o tsv
      
      # /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Databricks/workspaces/my-ws
      

      Se a seguinte mensagem é exibida, você está conectado ao locatário errado: The subscription of '<subscription-id>' doesn't exist in cloud 'AzureCloud'. para entrar no locatário correto, execute o comando az login novamente usando a opção -t ou --tenant para especificar a ID de locatário correta.

      Você pode obter a ID do locatário de um workspace do Azure Databricks executando o comando curl -v <per-workspace-URL>/aad/auth e examinando a saída < location: https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000, em que 00000000-0000-0000-0000-000000000000 é a ID do locatário. Veja também Obter IDs de assinatura e locatário no portal do Azure.

      az login -t <tenant-id>
      
  3. Depois de ter a ID de locatário do Azure, a ID do cliente, o segredo do cliente e a ID da assinatura corretos da entidade de serviço do Microsoft Entra ID, entre no Azure usando a CLI do Azure para executar o comando az login. Use a opção --service-principal juntamente com a especificação dos valores para os parâmetros de Tenant ID (Directory (tenant) ID), Client ID (Application (client) ID) e Client secret (Value) para o aplicativo relacionado registrado no Microsoft Entra ID.

    az login \
    --service-principal \
    -t <Tenant-ID> \
    -u <Client-ID> \
    -p <Client-secret>
    
  4. Confirme se você entrou na assinatura correta para sua entidade de serviço do Microsoft Entra ID conectada. Para fazer isso, execute o comando az account set, usando a opção -s ou --subscription para especificar a ID da assinatura correta.

    az account set -s <subscription-id>
    
  5. Gere o token de acesso do Microsoft Entra ID para a entidade de serviço do Microsoft Entra ID assinada, executando o comando az account get-access-token. Use a opção --resource para especificar a ID de recurso exclusiva para o serviço do Azure Databricks, que é 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d. Exiba apenas o valor do token do Microsoft Entra ID na saída do comando usando as opções --query, -o ou --output.

    az account get-access-token \
    --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d \
    --query "accessToken" \
    -o tsv
    

Observação

A CLI do Azure baseada em MSAL usa a MSAL (Biblioteca de Autenticação da Microsoft) como a biblioteca de autenticação subjacente. Se você não conseguir usar com êxito o token de acesso do Microsoft Entra ID que a CLI do Azure gera, como alternativa, poderá tentar usar a MSAL diretamente para obter um token de acesso do Microsoft Entra ID para uma entidade de serviço do Microsoft Entra ID. Consulte Obter tokens do Microsoft Entra ID para entidades de serviço.