Microsoft Entra ID サービス プリンシパルを使った PowerShell ログイン

次の手順に従って、PowerShell を使用して Microsoft Entra ID サービス プリンシパルで Azure Databricks にログインします。 Azure Databricks サービス プリンシパルについて詳しくは、「サービス プリンシパルを管理する」をご参照ください。

重要

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 マネージド サービス プリンシパルを作成するには、「サービス プリンシパルを管理する」をご覧ください。

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

    パラメーター 説明
    Tenant ID Microsoft Entra ID に登録された関連するアプリケーションの Directory (tenant) ID
    Client ID Microsoft Entra ID に登録された関連するアプリケーションの Application (client) ID
    Client secret Microsoft Entra ID に登録された関連するアプリケーションのクライアント シークレットの Value
  2. PowerShell を使用して次のコード行を 1 行ずつ実行して、最後に Connect-AzAccount コマンドレットを呼び出すことで、サービス プリンシパルを Azure にサインインさせます。

    $SecurePassword = ConvertTo-SecureString -String "<Client-secret>" -AsPlainText -Force
    $TenantId = "<Tenant-ID>"
    $ApplicationId = "<Client-ID>"
    $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $SecurePassword
    Connect-AzAccount -ServicePrincipal -TenantId $TenantId -Credential $Credential
    

    Note

    Connect-AzAccount コマンドレットが認識されないことを示すエラー メッセージが表示された場合、次のコマンドレットを実行してインストールします。

    Install-Module -Name Az -Repository PSGallery -Force
    
  3. サインイン済みのサービス プリンシパルの正しいサブスクリプションにサインインしていることを確認します。 サインイン済みのサブスクリプションの名前と ID、およびサブスクリプションに関連するテナント ID を取得するには、次のコマンドレットを実行します。

    Get-AzContext | Select-Object -ExpandProperty Subscription
    

    正しいサブスクリプションがわからない場合、たとえば、ワークスペース ナビゲーション バーでユーザー名をクリックし、Azure portal をクリックすることで Azure Databricks ワークスペースのサブスクリプション ID を取得できます。 Azure Databricks ワークスペース リソース ページが表示されたら、サイドバーの [概要] をクリックします。 次に、サブスクリプション ID が含まれる [サブスクリプション ID] フィールドを探します。

    Azure portal にアクセスできないが、Azure Databricks アカウント コンソールにアクセスできる場合、次のように Azure Databricks ワークスペースの正しいサブスクリプションを取得できます。

    1. ワークスペースのプログラム名を書き留めてください。これはワークスペース ナビゲーション バーのユーザー名の横にあります。
    2. ワークスペース ナビゲーション バーでユーザー名をクリックし、[アカウントの管理] をクリックします。
    3. サイドバーで、[ワークスペース] をクリックします。
    4. [フィルター ワークスペース] ボックスにワークスペースのプログラム名を入力し、Enter を押します。
    5. 結果の一覧でワークスペースのプログラム名をクリックします。
    6. サブスクリプション ID が含まれる [サブスクリプション ID] フィールドを書き留めます。

    別のサブスクリプションに切り替える必要がある場合、Set-AzContext コマンドレットを実行します。-Name または -Subscription パラメーターを使用して正しいサブスクリプション名または ID を指定します。

    Set-AzContext -Name "<subscription-name>"
    
    # Or ...
    
    Set-AzContext -Subscription <subscription-id>
    

    "The subscription of '<subscription-id>' doesn't exist in cloud 'AzureCloud'." というメッセージが表示された場合、間違ったテナントにサインインしています。正しいテナントにサインインするためには、Connect-AzAccount コマンドレットをもう一度実行する必要があります。-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 を取得する」も参照してください。

    Connect-AzAccount -Tenant <tenant-id>