使用 Azure CLI 取得Microsoft Entra ID 服務主體的Microsoft專案標識碼令牌
重要
本文說明如何使用 Azure CLI 手動建立Microsoft Entra ID 服務主體Microsoft Entra ID 令牌。
Azure Databricks 受控服務主體會直接在 Azure Databricks 中管理。 Microsoft Entra ID 受控服務主體是在 Microsoft Entra ID 中管理,這需要額外的許可權。 Databricks 建議您針對大部分使用案例使用 Azure Databricks 受控服務主體。 不過,Databricks 建議您在必須同時向 Azure Databricks 和其他 Azure 資源進行驗證的情況下,使用 Microsoft Entra ID 受控服務主體。
若要建立 Azure Databricks 受控服務主體,而不是Microsoft Entra ID 受控服務主體,請參閱 管理服務主體。
Databricks 不建議手動為Microsoft Entra ID 服務主體建立Microsoft Entra ID 令牌。 這是因為每個Microsoft Entra ID 令牌都是短期的,通常會在一小時內到期。 在這段時間之後,您必須手動產生取代專案標識碼令牌Microsoft。 請改用其中一個參與的工具或 SDK 來實 作 Databricks 用戶端統一驗證 標準。 這些工具和 SDK 會自動為您產生並取代過期Microsoft Entra ID 令牌,並利用下列 Databricks 驗證類型:
您可以使用 Azure CLI 來取得Microsoft Entra ID 服務主體Microsoft Entra ID 存取令牌。
收集以下資訊:
參數 描述 Tenant ID
Directory (tenant) ID
Microsoft Entra ID 中註冊之相關應用程式的 。Client ID
Application (client) ID
Microsoft Entra ID 中註冊之相關應用程式的 。Client secret
Value
Microsoft Entra ID 中註冊之相關應用程式的客戶端密碼。如果您還不知道此標識碼,請執行下列其中一項,取得Microsoft Entra ID 服務主體的正確 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
,其中00000000-0000-0000-0000-000000000000
是租用戶標識碼,以取得 Azure Databricks 工作區的租使用者標識碼。 另請參閱取得 Azure 入口網站 中的訂用帳戶和租用戶標識碼。az login -t <tenant-id>
在您擁有正確的 Azure 租使用者標識碼、用戶端標識碼、用戶端密碼和訂用帳戶標識符之後,Microsoft Entra ID 服務主體,使用 Azure CLI 執行 az login 命令來登入 Azure。
--service-principal
使用 選項,並針對在 entra ID Microsoft 中註冊的相關應用程式,指定 (Directory (tenant) ID
)、Client ID
和Application (client) ID
Client secret
(Value
) 參數Tenant ID
的值。az login \ --service-principal \ -t <Tenant-ID> \ -u <Client-ID> \ -p <Client-secret>
確認您已登入 Microsoft Entra ID 服務主體登入正確的訂用帳戶。 若要這樣做,請使用
-s
或--subscription
選項來執行 az account set 命令,以指定正確的訂用帳戶標識碼。az account set -s <subscription-id>
執行 az account get-access-token 命令,為 已登入Microsoft Entra ID 服務主體產生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 來取得Microsoft Entra ID 服務主體的Microsoft Entra ID 存取令牌。 請參閱 取得服務主體的Microsoft項目標識碼令牌。