為使用者使用 Azure CLI 產生 Get Microsoft Entra ID 令牌
重要
本文說明如何使用 Azure CLI 為用戶手動建立Microsoft Entra 識別碼令牌。
Databricks 不建議手動為 Azure Databricks 使用者建立Microsoft Entra ID 令牌。 這是因為每個Microsoft Entra ID 令牌都是短期的,通常會在一小時內到期。 在這段時間之後,您必須手動 generate 取代專案標識符令牌Microsoft。 請改用其中一個參與的工具或 SDK 來實 作 Databricks 用戶端統一驗證 標準。 這些工具和 SDK 會自動 generate,利用 Azure CLI 驗證,並為您取代過期的 Microsoft Entra 識別碼令牌。
您可以使用 Azure CLI,為使用者 get Microsoft Entra ID 存取令牌。
注意
您也可以在 Azure Active Directory 中定義服務主體,然後 get 該服務主體的 Microsoft Entra ID 存取令牌,而不是針對使用者。 如需服務主體,請參閱
Get 使用者帳戶的正確 Azure 訂用帳戶識別碼,如果您還不知道此識別碼,請執行下列其中一項:
在 Azure Databricks 工作區的頂端導覽列中,按兩下您的使用者名稱,然後按兩下 [Azure 入口網站]。 在出現的 [Azure Databricks 工作區資源] 頁面上,按兩下 提要欄位中的 [概觀 ]。 然後尋找 [ 訂用帳戶標識符 ] 字段,其中包含訂用帳戶標識符。
使用 Azure CLI 執行 az databricks workspace list 命令,並使用
--query
和(-o
或--output
)選項來縮小結果範圍。adb-0000000000000000.0.azuredatabricks.net
取代為工作區實例的名稱,不包括https://
。 在此範例中,00000000-0000-0000-0000-000000000000
輸出中的 後面/subscriptions/
是訂用帳戶標識碼。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'.
若要登入正確的租使用者,您必須使用-t
或--tenant
選項再次執行az login
命令,以指定正確的租使用者標識符。您可以執行 命令
curl -v <per-workspace-URL>/aad/auth
並查看輸出< location: https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000
,where00000000-0000-0000-0000-000000000000
是租用戶標識符,以 get Azure Databricks 工作區的租用戶標識符。 另請參閱 Azure 入口網站中的訂用帳戶和租使用者標識碼。 az login -t <tenant-id>
為使用者帳戶設定正確的 Azure 訂用帳戶標識碼之後,請使用 Azure CLI 執行 az login 命令來開始登入 Azure。 執行此命令之後,請遵循螢幕上的指示,以使用您的帳戶完成登入。
az login
確認您登入的使用者已登入正確的訂用帳戶。 若要這樣做,請使用
-s
或--subscription
選項,執行 az account set 命令,以指定正確的訂用帳戶標識符。az account set -s <subscription-id>
執行 az account
-access-token 命令,以 您的 Microsoft Entra ID 存取令牌。 --resource
使用 選項來指定 Azure Databricks 服務的唯一資源識別碼,也就是2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
。 您可以使用 和-o
或--output
選項,在命令--query
的輸出中只顯示Microsoft Entra ID 令牌的值。az account get-access-token \ --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d \ --query "accessToken" \ -o tsv
注意
以 MSAL 為基礎的 Azure CLI 會使用 Microsoft 驗證連結庫 (MSAL) 作為基礎驗證連結庫。 如果您無法成功使用 Azure CLI 產生的Microsoft Entra ID 存取令牌,或者您可以嘗試直接使用 MSAL 來 get 使用者的Microsoft Entra ID 存取令牌。 請參閱使用 MSAL的使用者