共用方式為


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

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

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

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

  • Azure CLI
  • Azure Developer CLI
  • Azure PowerShell
  • Visual Studio Code

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 Identity 函式庫提供支援各種情境及 Microsoft Entra 認證流程的 TokenCredential 實作。 以下步驟示範如何在本地處理使用者帳號時使用 DefaultAzureCredential 或特定的開發工具憑證。

小提示

當你的團隊使用多個開發工具與 Azure 進行認證時,建議使用本地開發優化的實例 DefaultAzureCredential ,而非工具專屬憑證。

實作程式碼

  1. @azure/identity 套件加入你的應用程式。

    npm install @azure/identity
    

    備註

    如果你想使用 VisualStudioCodeCredential,也必須安裝 @azure/identity-vscode 外掛套件。 然後明確載入憑證。 舉例可參考 @azure/identity-vscode 的 README。

  2. 根據你的情境選擇 一個實作 憑證。

使用你開發工具專屬的憑證

將對應特定開發工具的實例傳 TokenCredential 給 Azure 服務客戶端建構子,例如 AzureCliCredential

import { AzureCliCredential } from "@azure/identity";
import { BlobServiceClient } from "@azure/storage-blob";

const credential = new AzureCliCredential();

const client = new BlobServiceClient(
    "https://<storage-account-name>.blob.core.windows.net",
    credential
);

使用可用於任何開發工具的憑證

使用針對所有在地開發工具優化的 DefaultAzureCredential 實例。 此範例需要將環境變數 AZURE_TOKEN_CREDENTIALS 設定為 dev。 如需詳細資訊,請參閱 排除認證類型類別

import { DefaultAzureCredential } from "@azure/identity";
import { BlobServiceClient } from "@azure/storage-blob";

// Set environment variable AZURE_TOKEN_CREDENTIALS to "dev"
const credential = new DefaultAzureCredential({
    requiredEnvVars: ["AZURE_TOKEN_CREDENTIALS"]
});

const client = new BlobServiceClient(
    "https://<storage-account-name>.blob.core.windows.net",
    credential
);