次の方法で共有


Azure CLI を使用してユーザーの Microsoft Entra ID トークンを取得する

重要

この記事では、Azure CLI を使用してユーザー用の Microsoft Entra ID トークンを手動で作成する方法について説明します。

Databricks では、Azure Databricks ユーザー用の Microsoft Entra ID トークンを手動で作成することはお勧めしません。 これは、各 Microsoft Entra ID トークンは有効期間が短く、通常は 1 時間以内に期限切れになるためです。 この時間が経過したら、代わりの Microsoft Entra ID トークンを手動で生成する必要があります。 代わりに、 Databricks クライアント統合認証 標準を実装する参加ツールまたは SDK のいずれかを使用してください。 これらのツールと SDK は、Azure CLI 認証を利用して、期限切れの Microsoft Entra ID トークンを自動的に生成して置き換えます。

Azure CLI を使用して、ユーザーの Microsoft Entra ID アクセス トークンを取得できます。

Azure Active Directory でサービス プリンシパルを定義し、ユーザーではなくそのサービス プリンシパルの Microsoft Entra ID アクセス トークンを取得することもできます。 「サービス プリンシパルの Microsoft Entra ID トークンを取得する」を参照してください。

  1. この ID がわからない場合は、次のいずれかの操作を行って、ユーザー アカウントの正しい Azure サブスクリプション ID を取得します。

    • Azure Databricks ワークスペースの上部のナビゲーション バーで、ユーザー名をクリックし、[ Azure Portal] をクリックします。 Azure Databricks ワークスペース リソース ページが表示されたら、サイドバーの [概要] をクリックします。 次に、サブスクリプション ID が含まれる [サブスクリプション ID] フィールドを探します。

    • azure CLI を使用して az databricks workspace list コマンドを実行し、--queryオプションと-oオプションまたは--outputオプションを使用して結果を絞り込みます。 adb-0000000000000000.0.azuredatabricks.net をご自分のワークスペース インスタンスの名前に置き換えます。https:// は含めません。 この例では、出力の 00000000-0000-0000-0000-000000000000 の後の /subscriptions/ がサブスクリプション ID です。

      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 オプションを使用して正しいテナント ID を指定して、--tenant コマンドをもう一度実行する必要があります。

      Azure Databricks ワークスペースのテナント ID は、curl -v <per-workspace-URL>/aad/auth コマンドを実行し、< location: https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000 という出力で探すことで確認できます。00000000-0000-0000-0000-000000000000 の部分がテナント ID です。 「Azure portal でサブスクリプションとテナントの ID を取得する」も参照してください。

      az login -t <tenant-id>
      
  2. ユーザー アカウントの正しい Azure サブスクリプション ID を取得したら、まず Azure CLI を使用して Azure にサインインし、az login コマンドを実行します。 このコマンドを実行した後、画面の指示に従って、自分のアカウントでのサインインを完了します。

    az login
    
  3. サインインしているユーザーの正しいサブスクリプションにサインインしていることを確認します。 これを行うには、 または -s オプションを使用して、--subscription コマンドを実行して、正しいサブスクリプション ID を指定します。

    az account set -s <subscription-id>
    
  4. az account get-access-token コマンドを実行して、Microsoft Entra ID アクセス トークンを生成します。 --resource オプションを使用して、Azure Databricks サービスの一意のリソース ID (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d) を指定します。 --queryオプションと-oオプションまたは--outputオプションを使用して、コマンドの出力に Microsoft Entra ID トークンの値のみを表示できます。

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

MSAL ベースの Azure CLI では、Microsoft Authentication Library (MSAL) を基になる認証ライブラリとして使用します。 Azure CLI によって生成される Microsoft Entra ID アクセス トークンを正常に使用できない場合は、代わりに MSAL を直接使用してユーザーの Microsoft Entra ID アクセス トークンを取得してみてください。 MSAL を使用してユーザーの Microsoft Entra ID トークンを取得するを参照してください。