Share via


使用 Azure CLI 取得 Microsoft Entra ID (先前稱為 Azure Active Directory) 令牌的 Microsoft Entra ID 服務主體

重要

本文說明如何使用 Azure CLI 手動建立 Microsoft Entra ID(先前稱為 Azure Active Directory)令牌的 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(先前稱為 Azure Active Directory)令牌。 這是因為每個 Microsoft Entra ID 令牌都是短期的,通常會在一小時內到期。 在這段時間之後,您必須手動產生取代的 Microsoft Entra ID 令牌。 請改用其中一個參與的工具或 SDK 來實 作 Databricks 用戶端統一驗證 標準。 這些工具和 SDK 會自動為您產生並取代過期的 Microsoft Entra ID 令牌,並利用下列 Databricks 驗證類型:

您可以使用 Azure CLI 來取得 Microsoft Entra ID 服務主體的 Microsoft Entra ID 存取令牌。

  1. 收集以下資訊:

    參數 描述
    Tenant ID Directory (tenant) ID在 Microsoft Entra ID 中註冊之相關應用程式的 。
    Client ID Application (client) ID在 Microsoft Entra ID 中註冊之相關應用程式的 。
    Client secret Value Microsoft Entra ID 中註冊之相關應用程式的用戶端密碼的 。
  2. 如果您還不知道此標識符,請執行下列其中一項,取得 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>
      
  3. 取得 Microsoft Entra ID 服務主體的正確 Azure 租使用者識別碼、用戶端識別碼、用戶端密碼和訂用帳戶標識碼之後,請使用 Azure CLI 執行 az login 命令來登入 Azure。 使用 --service-principal 選項,並針對在 Microsoft Entra ID 中註冊的相關應用程式,指定 (Directory (tenant) IDClient IDApplication (client) IDClient secretValue) 的參數Tenant ID值(先前稱為 Azure Active Directory)。

    az login \
    --service-principal \
    -t <Tenant-ID> \
    -u <Client-ID> \
    -p <Client-secret>
    
  4. 確認您已登入登入 Microsoft Entra ID 服務主體的正確訂用帳戶。 若要這樣做,請使用 -s--subscription 選項來執行 az account set 命令,以指定正確的訂用帳戶標識碼。

    az account set -s <subscription-id>
    
  5. 執行 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 (先前稱為 Azure Active Directory) 令牌的值。

    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 Entra 識別碼(先前稱為 Azure Active Directory) 令牌。