使用 Microsoft Entra ID 服务主体登录 PowerShell

按照以下步骤,通过 Microsoft Entra ID 服务主体使用 PowerShell 登录到 Azure Databricks。 有关 Azure Databricks 服务主体的信息,请参阅 服务主体

重要

Databricks 建议对大多数用例使用 Azure Databricks 托管服务主体 。 仅当需要访问 Azure 资源时,才使用 Microsoft Entra ID 托管服务主体,因为它们需要其他Microsoft Entra ID 权限。

  1. 收集以下信息:

    参数 DESCRIPTION
    Tenant ID 在 Microsoft Entra ID 中注册的相关应用程序的 Directory (tenant) ID
    Client ID 在 Microsoft Entra ID 中注册的相关应用程序的 Application (client) ID
    Client secret 在 Microsoft Entra ID 中注册的相关应用程序的客户端密码的 Value
  2. 使用 PowerShell 一行一行地运行以下代码,使用服务主体登录到 Azure,最后调用 Connect-AzAccount -Environment AzureChinaCloud cmdlet。

    $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 -Environment AzureChinaCloud -ServicePrincipal -TenantId $TenantId -Credential $Credential
    

    注释

    如果错误消息指出无法识别 Connect-AzAccount -Environment AzureChinaCloud cmdlet,请通过运行以下 cmdlet 来安装它:

    Install-Module -Name Az -Repository PSGallery -Force
    
  3. 确认你已登录到已登录服务主体的正确订阅。 要获取已登录订阅的名称和 ID 以及订阅的相关租户 ID,请运行以下 cmdlet:

    Get-AzContext | Select-Object -ExpandProperty Subscription
    

    例如,如果不确定正确的订阅应该是什么,可通过在工作区导航栏中单击用户名>“Azure 门户”来获取 Azure Databricks 工作区的订阅 ID。 在显示的 Azure Databricks 工作区资源页上,单击边栏中的“概述”。 然后查找“订阅 ID”字段,其中包含订阅 ID。

    如果无法访问 Azure 门户,但有权访问 Azure Databricks 帐户控制台,则可以获取 Azure Databricks 工作区的正确订阅,如下所示:

    1. 记下工作区的编程名称,该名称位于工作区导航栏中用户名旁边。

    2. 在工作区导航栏中点击你的用户名 >,然后选择管理帐户

    3. 在边栏中单击“工作区”。

    4. 在“筛选工作区”框中,输入工作区的编程名称,然后按 Enter

    5. 在结果列表中单击工作区的编程名称。

    6. 记下包含订阅 ID 的“订阅”字段。

    如果需要切换到其他订阅,请运行 Set-AzContext cmdllet,并使用 -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 -Environment AzureChinaCloud cmdlet,并使用 -Tenant 选项指定正确的租户 ID。

    可以通过运行命令 curl -v <per-workspace-URL>/aad/auth 并查看输出 < location: https://login.chinacloudapi.cn/00000000-0000-0000-0000-000000000000 来获取 Azure Databricks 工作区的租户 ID,其中的 00000000-0000-0000-0000-000000000000 是租户 ID。 另请参阅在 Azure 门户中获取订阅和租户 ID

    Connect-AzAccount -Environment AzureChinaCloud -Tenant <tenant-id>