共用方式為


使用開發人員帳戶在本機開發期間向 Azure 服務驗證 Node.js 應用程式

在本機開發期間,應用程式需要向 Azure 進行驗證,才能存取各種 Azure 服務。 本機驗證的兩種常見方法是 使用服務主體 或使用開發人員帳戶。 本文說明如何使用開發人員帳戶。 在前面的章節中,您將學習:

  • 如何使用 Microsoft Entra 群組有效率地管理多個開發人員帳戶的許可權
  • 如何將角色指派給開發人員帳戶以限定權限範圍
  • 如何登入支援的本機開發工具
  • 如何使用應用程式程式碼中的開發人員帳戶進行驗證

若要讓應用程式在本機開發期間使用開發人員的 Azure 認證向 Azure 進行驗證,開發人員必須從下列其中一個開發人員工具登入 Azure:

  • Azure CLI
  • Azure Developer CLI
  • Azure PowerShell

Azure 身分識別程式庫可以偵測開發人員已從其中一個工具登入。 然後,程式庫可以透過工具取得 Microsoft Entra 存取權杖,以登入使用者身分向 Azure 驗證應用程式。

此方法會利用開發人員現有的 Azure 帳戶來簡化驗證程式。 不過,開發人員帳戶的許可權可能多於應用程式所需的許可權,因此會超出應用程式在生產環境中執行的許可權。 或者,您可以 建立應用程式服務主體以在本機開發期間使用,其範圍可以設定為僅具有應用程式所需的存取權。

建立 Microsoft Entra 群組以進行本機開發

建立 Microsoft Entra 群組,以封裝應用程式在本機開發中所需的角色 (權限),而不是將角色指派給個別服務主體物件。 這種方法具有以下優點:

  • 每個開發人員在群組層級都指派相同的角色。
  • 如果應用程式需要新角色,則只需要將其新增至應用程式的群組即可。
  • 如果新的開發人員加入小組,則會為開發人員建立新的應用程式服務主體,並新增至群組,以確保開發人員具有在應用程式上工作的正確權限。
  1. 流覽至 Azure 入口網站中的 Microsoft Entra ID 概觀頁面。

  2. 從左側功能表中選取 [所有群組 ]。

  3. [群組] 頁面上,選取 [新增群組]。

  4. [新增群組 ] 頁面上,填寫下列表單欄位:

    • 群組類型:選取 安全性
    • 群組名稱:輸入包含應用程式或環境名稱參考的群組名稱。
    • 群組描述:輸入說明群組用途的描述。

    螢幕擷取畫面,示範如何在 Azure 入口網站中建立群組。

  5. 選取 [成員] 下方的 [未選取任何成員] 連結,為群組新增成員。

  6. 在開啟的飛出視窗面板中,搜尋您稍早建立的服務主體,然後從篩選的結果中選取它。 選擇面板底部的「 選取」 按鈕以確認您的選擇。

  7. 選取 [新增群組] 頁面底部的 [建立] 以建立群組,然後返回 [所有群組] 頁面。 如果您沒有看到列出的新群組,請稍等片刻,然後重新整理頁面。

將角色指派給群組

接下來,判斷您的應用程式在哪些資源上需要哪些角色 (許可權),並將這些角色指派給您建立的 Microsoft Entra 群組。 群組可以在資源、資源群組或訂閱範圍指派角色。 此範例示範如何在資源群組範圍指派角色,因為大部分的應用程式都會將其所有 Azure 資源分組到單一資源群組中。

  1. 在 Azure 入口網站中,流覽至包含應用程式之資源群組的 [ 概觀 ] 頁面。

  2. 從左側導覽選擇 存取控制 (IAM)

  3. [存取控制 (IAM)] 頁面上,選取 [+ 新增 ],然後從下拉式功能表中選擇 [ 新增角色指派 ]。 新增 角色指派 頁面提供數個索引標籤來設定和指派角色。

  4. [ 角色 ] 索引標籤上,使用搜尋方塊來尋找您要指派的角色。 選取角色,然後選擇 下一步

  5. 「成員」 標籤上:

    • 針對 [指派存取權] 值,選取 [使用者、群組或服務主體]
    • 針對 [成員] 值,選擇 [+ 選取成員] 以開啟 [選取成員] 彈出面板。
    • 搜尋您稍早建立的 Microsoft Entra 群組,然後從篩選的結果中選取它。 選擇 選擇 以選擇群組,然後關閉彈出面板。
    • 選取位於 [成員] 索引標籤底部的 [檢閱 + 指派]。

    螢幕擷取畫面,示範如何將角色指派給 Microsoft Entra 群組。

  6. 在 [ 檢閱 + 指派 ] 索引標籤上,選取頁面底部的 [ 檢閱 + 指派 ]。

使用開發人員工具登入 Azure

接下來,使用數個開發人員工具之一登入 Azure,這些工具可用來在開發環境中執行驗證。 您驗證的帳戶也應該存在於您稍早建立和設定的 Microsoft Entra 群組中。

開發人員可以使用 Azure CLI 向 Microsoft Entra ID 進行驗證。 使用 DefaultAzureCredentialAzureCliCredential 的應用程式可以在本地執行時使用此帳戶來驗證應用程式的請求。

若要使用 Azure CLI 進行驗證,請執行命令 az login 。 在具有預設 Web 瀏覽器的系統上,Azure CLI 會啟動瀏覽器來驗證使用者。

az login

對於沒有預設網頁瀏覽器的系統,az login 命令會使用裝置程式代碼驗證流程。 使用者也可以強制 Azure CLI 使用裝置程式代碼流程,而不是藉由指定 --use-device-code 自變數來啟動瀏覽器。

az login --use-device-code

從您的應用程式向 Azure 服務進行驗證

Azure 身分識別程式庫提供各種認證,即適合支援不同案例和 Microsoft Entra 驗證流程的實作TokenCredential。 接下來的步驟示範如何在本機使用使用者帳戶時使用 DefaultAzureCredential

實作程式碼

DefaultAzureCredential 是一個具有偏好性且有序的機制序列,用於對 Microsoft Entra ID 進行驗證。 每個驗證機制都是衍生自 TokenCredential 類別的類別,稱為 認證。 在執行階段, DefaultAzureCredential 嘗試使用第一個認證進行驗證。 如果該認證無法取得存取權杖,則會嘗試序列中的下一個認證,以此類推,直到成功取得存取權杖為止。 如此一來,您的應用程式就可以在不同的環境中使用不同的認證,而不需要撰寫環境特定的程式碼。

若要使用 DefaultAzureCredential,請將 @azure/身分套件 新增至您的應用程式。 在您選擇的終端機中,導覽至應用程式專案目錄,然後執行下列命令:

npm install @azure/identity

Azure 服務是使用各種 Azure SDK 用戶端程式庫中的特製化用戶端類別來存取。 這些類別和您自己的自訂服務應該註冊,以便可以在整個應用程式中存取它們。 完成下列程式設計步驟,以建立用戶端類別 DefaultAzureCredential

  1. 匯入 @azure/identity 套件。
  2. 建立 Azure 服務用戶端,並將 的新 DefaultAzureCredential實例傳遞給它。
import { DefaultAzureCredential } from "@azure/identity";
import { SomeAzureServiceClient } from "@azure/arm-some-service";

const client = new SomeAzureServiceClient(new DefaultAzureCredential());