按照以下步骤,通过 Microsoft Entra ID 服务主体使用 Azure CLI 登录到 Azure Databricks。 有关 Azure Databricks 服务主体的信息,请参阅 服务主体。
收集以下信息:
参数 DESCRIPTION Tenant ID在 Microsoft Entra ID 中注册的相关应用程序的 Directory (tenant) ID。Client ID在 Microsoft Entra ID 中注册的相关应用程序的 Application (client) ID。Client secret在 Microsoft Entra ID 中注册的相关应用程序的客户端密码的 Value。请通过执行以下操作之一获取 Microsoft Entra ID 服务主体的正确 Azure 订阅 ID(如果你尚不知道此 ID):
在 Azure Databricks 工作区的顶部导航栏中,单击用户名,然后单击 Azure 门户。 在显示的 Azure Databricks 工作区资源页上,单击边栏中的“概述”。 然后查找“订阅 ID”字段,其中包含订阅 ID。
使用 Azure CLI 运行 az databricks workspace list 命令,使用
--query和-o或--output选项缩小结果范围。 将adb-0000000000000000.0.databricks.azure.cn替换为你的工作区实例的名称,不包括https://。 在此示例中,输出中00000000-0000-0000-0000-000000000000后的/subscriptions/是订阅 ID。az databricks workspace list --query "[?workspaceUrl==\`adb-0000000000000000.0.databricks.azure.cn\`].{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。可以通过运行命令
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。az cloud set -n AzureChinaCloud az login -t <tenant-id> # az cloud set -n AzureCloud //means return to Public Azure.
获得 Microsoft Entra ID 服务主体的正确 Azure 租户 ID、客户端 ID、客户端密码和订阅 ID 后,请使用 Azure CLI 运行 az login 命令来登录到 Azure。 使用
--service-principal选项,同时为在 Microsoft Entra ID 中注册的相关应用程序指定Tenant ID(Directory (tenant) ID)、Client ID(Application (client) ID) 和Client secret(Value) 参数的值。az cloud set -n AzureChinaCloud # az cloud set -n AzureCloud //means return to Public Azure. az login \ --service-principal \ -t <Tenant-ID> \ -u <Client-ID> \ -p <Client-secret>确认你已登录到已登录 Microsoft Entra ID 服务主体的正确订阅。 为此,请运行 az account set 命令,使用
-s或--subscription选项来指定正确的订阅 ID。az account set -s <subscription-id>