Azure CLI を使用して Microsoft Entra ID (旧称 Azure Active Directory) サービス プリンシパルの Microsoft Entra ID トークンを取得する

重要

この記事では、Azure CLI を使用して、Microsoft Entra ID (旧称 Azure Active Directory) サービス プリンシパル用の Microsoft Entra ID トークンを手動で作成する方法について説明します。

Azure Databricks マネージド サービス プリンシパルは、Azure Databricks 内で直接管理されます。 Microsoft Entra ID マネージド サービス プリンシパルは、追加のアクセス許可が必要とされる Microsoft Entra ID 内で管理されます。 Databricks では、ほとんどのユース ケースで Azure Databricks マネージド サービス プリンシパルを使用することをお勧めします。 ただし Databricks では、Azure Databricks と他の Azure リソースを同時に認証する必要がある場合には、Microsoft Entra ID マネージド サービス プリンシパルを使用することをお勧めします。

Microsoft Entra ID マネージド サービス プリンシパルではなく Azure Databricks マネージド サービス プリンシパルを作成するには、「サービス プリンシパルを管理する」をご覧ください。

Databricks では、Microsoft Entra ID サービス プリンシパルの Microsoft Entra ID (旧称 Azure Active Directory) トークンを手動で作成することはお勧めしません。 これは、各 Microsoft Entra ID トークンは有効期間が短く、通常は 1 時間以内に期限切れになるためです。 この時間が経過したら、代わりの Microsoft Entra ID トークンを手動で生成する必要があります。 代わりに、Databricks クライアント統合認証標準を実装している関係ツールまたは SDK のいずれかを使用してください。 これらのツールと SDK は、次の Databricks 認証の種類を利用して、期限切れの Microsoft Entra ID トークンを自動的に生成して置き換えます。

Microsoft Entra ID サービス プリンシパルの Microsoft Entra ID アクセス トークンは、Azure CLI を使用して取得できます。

  1. 次の情報を集めます。

    パラメーター 説明
    Tenant ID Microsoft Entra ID に登録された関連するアプリケーションの Directory (tenant) ID
    Client ID Microsoft Entra ID に登録された関連するアプリケーションの Application (client) ID
    Client secret Microsoft Entra ID に登録された関連するアプリケーションのクライアント シークレットの Value
  2. Microsoft Entra ID サービス プリンシパルの正しい Azure サブスクリプション ID がわからない場合は、次のいずれかを実行してこの ID を取得します。

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

    • Azure CLI を使用して az databricks workspace list コマンドを実行し、--query-o または --output オプションを使用して結果を絞り込みます。 adb-0000000000000000.0.azuredatabricks.net をご自分のワークスペース インスタンスの名前に置き換えます。https:// は含めません。 この例では、出力の /subscriptions/ の後の 00000000-0000-0000-0000-000000000000 がサブスクリプション 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 または --tenant オプションを使用して正しいテナント ID を指定してください。

      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>
      
  3. Microsoft Entra ID サービス プリンシパルの正しい Azure テナント ID、クライアント ID、クライアント シークレット、サブスクリプション ID を取得したら、Azure CLI を使用して az login コマンドを実行し、Azure にサインインします。 --service-principal オプションを使い、Microsoft Entra ID (旧称 Azure Active Directory) に登録されている関連アプリケーションの Tenant ID (Directory (tenant) ID)、Client ID (Application (client) ID)、Client secret (Value) のパラメーターの値を指定します。

    az login \
    --service-principal \
    -t <Tenant-ID> \
    -u <Client-ID> \
    -p <Client-secret>
    
  4. サインインしている Microsoft Entra ID サービス プリンシパルの正しいサブスクリプションにサインインしていることを確認します。 これを行うには、-s または --subscription オプションを使用して正しいサブスクリプション ID を指定して、az account set コマンドを実行します。

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

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

Note

MSAL ベースの Azure CLI では、基になる認証ライブラリとして Microsoft Authentication Library (MSAL) が使用されます。 Azure CLI で生成される Microsoft Entra ID アクセス トークンが正常に使用できない場合は、MSAL を直接使用して Microsoft Entra ID サービス プリンシパルの Microsoft Entra ID アクセス トークンを取得することもできます。 「サービス プリンシパルの Microsoft Entra ID (旧称 Azure Active Directory) トークンを取得する」を参照してください。