Поделиться через


Получение токенов идентификатора Microsoft Entra для пользователей с помощью Azure CLI

Это важно

В этой статье описывается, как вручную создать маркеры идентификатора Microsoft Entra для пользователей с помощью Azure CLI.

Databricks не рекомендует создавать маркеры идентификатора Microsoft Entra для пользователей Azure Databricks вручную. Это связано с тем, что каждый токен идентификатора Microsoft Entra имеет короткий срок действия и обычно истекает в течение одного часа. После этого необходимо вручную создать заменяющий маркер идентификатора Microsoft Entra. Вместо этого используйте один из участвующих средств или пакетов SDK, реализующих стандарт унифицированной аутентификации клиента Databricks. Эти инструменты и пакеты SDK автоматически создают и заменяют истекшие токены Microsoft Entra ID для вас, используя проверку подлинности Azure CLI.

Вы можете использовать Azure CLI, чтобы получить токены доступа Microsoft Entra ID для пользователей.

Замечание

Вы также можете определить сервисный принципал в Azure Active Directory, а затем получить токен доступа Microsoft Entra ID для этого сервисного принципала вместо пользователя. См. Получение токенов Microsoft Entra ID для служебных принципалов.

  1. Получите правильный идентификатор подписки Azure для учетной записи пользователя, если вы еще не знаете этот идентификатор, выполнив одно из следующих действий:

    • В верхней панели навигации рабочей области Azure Databricks щелкните имя пользователя и выберите портал Azure. На открывшейся странице ресурса рабочей области Azure Databricks щелкните Обзор в навигационной панели. Затем найдите поле "Идентификатор подписки ", содержащее идентификатор подписки.

    • Используйте Azure CLI для выполнения команды az databricks workspace list, используя параметры --query, -o или --output для сужения результатов. Замените adb-0000000000000000.0.azuredatabricks.net названием экземпляра рабочей области, не включая https://. В этом примере 00000000-0000-0000-0000-000000000000 после /subscriptions/ в выходных данных — это идентификатор подписки.

      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
      

      Если появится следующее сообщение, вы вошли в неправильного арендатора: The subscription of '<subscription-id>' doesn't exist in cloud 'AzureCloud'. Чтобы войти в правильного арендатора, необходимо выполнить команду az login еще раз, используя параметр -t или --tenant, чтобы указать правильный идентификатор арендатора.

      Вы можете получить идентификатор клиента для рабочей области Azure Databricks, выполнив команду curl -v <per-workspace-URL>/aad/auth, и посмотрев на вывод < location: https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000, где 00000000-0000-0000-0000-000000000000 является идентификатором клиента. См. также получение идентификаторов подписок и клиентов в портале Azure.

      az login -t <tenant-id>
      
  2. После получения правильного идентификатора подписки Azure для учетной записи пользователя начните вход в Azure с помощью Azure CLI для выполнения команды az login . После выполнения этой команды следуйте инструкциям на экране, чтобы завершить вход с помощью учетной записи.

    az login
    
  3. Убедитесь, что вы вошли в правильную подписку для вошедшего пользователя. Для этого выполните команду az account set, используя -s или --subscription параметр, чтобы указать правильный идентификатор подписки.

    az account set -s <subscription-id>
    
  4. Сгенерируйте токен доступа Microsoft Entra ID, выполнив команду az account get-access-token. Используйте --resource опцию, чтобы указать уникальный ID ресурса для службы Azure Databricks, который является 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d. Значение маркера идентификатора Microsoft Entra можно отобразить в выходных данных команды, используя параметры --query и -o или --output.

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

Замечание

Azure CLI на основе MSAL использует библиотеку аутентификации Microsoft (MSAL) в качестве базовой библиотеки аутентификации. Если вы не можете успешно использовать маркер доступа идентификатора Microsoft Entra, создаваемый Azure CLI, в качестве альтернативы можно попробовать использовать MSAL напрямую, чтобы получить маркер доступа идентификатора Microsoft Entra для пользователя. См. получение токенов идентификатора Microsoft Entra для пользователей с помощью MSAL.