分享方式:


使用 Azure CLI 取得使用者的Microsoft項目標識碼令牌

重要

本文說明如何使用 Azure CLI 為用戶手動建立Microsoft Entra 識別碼令牌。

Databricks 不建議手動為 Azure Databricks 使用者建立Microsoft Entra ID 令牌。 這是因為每個Microsoft Entra ID 令牌都是短期的,通常會在一小時內到期。 在這段時間之後,您必須手動產生取代專案標識碼令牌Microsoft。 請改用其中一個參與的工具或 SDK 來實 作 Databricks 用戶端統一驗證 標準。 這些工具和 SDK 會自動為您產生並取代過期Microsoft Entra ID 令牌,並利用 Azure CLI 驗證

您可以使用 Azure CLI 為使用者取得Microsoft Entra ID 存取令牌。

注意

您也可以在 Azure Active Directory 中定義服務主體,然後取得該服務主體的 Microsoft Entra ID 存取令牌,而不是針對使用者。 請參閱 取得服務主體的Microsoft項目標識碼令牌。

  1. 如果您還不知道此標識碼,請執行下列其中一項,取得使用者帳戶的正確 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>
      
  2. 為使用者帳戶設定正確的 Azure 訂用帳戶標識碼之後,請使用 Azure CLI 執行 az login 命令來開始登入 Azure。 執行此命令之後,請遵循螢幕上的指示,以使用您的帳戶完成登入。

    az login
    
  3. 確認您登入的使用者已登入正確的訂用帳戶。 若要這樣做,請使用 -s--subscription 選項來執行 az account set 命令,以指定正確的訂用帳戶標識碼。

    az account set -s <subscription-id>
    
  4. 執行 az account get-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 來取得使用者的Microsoft Entra ID 存取令牌。 請參閱 使用 MSAL 取得使用者的Microsoft專案標識碼令牌。