使用開發人員帳戶在本機開發期間向 Azure 服務驗證 JavaScript 應用程式
當您建立雲端應用程式時,開發人員必須在其本機工作站上偵錯及測試應用程式。 當應用程式在本機開發期間於開發人員的工作站上執行時,仍必須向應用程式使用的任何 Azure 服務進行驗證。 本文涵蓋如何使用開發人員的 Azure 認證,在本機開發期間向 Azure 驗證應用程式。
若要讓應用程式在使用開發人員的 Azure 認證進行本機開發期間向 Azure 進行驗證,開發人員必須從 Visual Studio Code Azure Tools 擴充功能、Azure CLI 或 Azure PowerShell 登入 Azure。 Azure SDK for JavaScript 能夠偵測開發人員已從其中一個工具登入,然後從認證快取取得必要的認證,以以登入使用者身分向 Azure 驗證應用程式。
這種方法對開發小組而言最容易設定,因為使用的是開發人員現有 Azure 帳戶。 不過,開發人員帳戶的許可權可能會超過應用程式所需的許可權,因此超過應用程式在生產環境中執行的許可權。 您可以改為建立在本機開發期間使用的應用程式服務主體,設定其權限範圍與應用程式需要的存取權相符。
1 - 建立 Microsoft Entra 群組以進行本機開發
由於幾乎一律有多個開發人員在應用程式上工作,因此建議您先建立Microsoft Entra 群組,以封裝應用程式在本機開發中所需的角色(許可權)。 這具有以下優點。
- 由於角色是在群組層級指派,因此指派給每位開發人員的角色都能保證相同。
- 如果應用程式需要新的角色,則只需要將它新增至應用程式的 Microsoft Entra 群組。
- 如果新的開發人員加入小組,他們只需要新增至正確的Microsoft Entra 群組,才能取得正確的許可權來處理應用程式。
如果您的開發小組已經有 Microsoft Entra 群組,您可以使用該群組。 否則,請完成下列步驟以建立 Microsoft Entra 群組。
2 - 將角色指派給 Microsoft Entra 群組
接著,您必須決定應用程式針對哪些資源需要哪些角色 (權限),並將這些角色指派給應用程式。 在此範例中,角色會指派給在步驟 1 中建立的 Microsoft Entra 群組。 角色可在資源、資源群組或訂閱範圍內獲派其他角色。 此範例示範如何在資源群組範圍中指派角色,因為大部分的應用程式都會將其所有 Azure 資源群組組成單一資源群組。
3 - 使用 VS Code、Azure CLI 或 Azure PowerShell 登入 Azure
在開發人員工作站上開啟終端,然後從 Azure PowerShell 登入 Azure。
Connect-AzAccount
4 - 在應用程式中實作 DefaultAzureCredential
若要向 Azure 驗證 Azure SDK 用戶端物件,您的應用程式應該使用 DefaultAzureCredential
套件中的 @azure/identity
類別。 在此案例中, DefaultAzureCredential
會循序檢查開發人員是否已使用 VS Code Azure 工具擴充功能、Azure CLI 或 Azure PowerShell 登入 Azure。 如果開發人員使用任何這些工具登入 Azure,則應用程式會使用用來登入工具的認證向 Azure 進行驗證。
首先,將 @azure/身分 識別套件新增至您的應用程式。
npm install @azure/identity
接下來,針對在應用程式中建立 Azure SDK 用戶端物件的任何 JavaScript 程式代碼,您會想要:
- 從模組匯入
DefaultAzureCredential
@azure/identity
類別。 - 建立
DefaultAzureCredential
物件。 - 將
DefaultAzureCredential
對象傳遞至 Azure SDK 用戶端物件建構函式。
下列程式碼區段示範其中一種範例。
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
// Acquire a credential object
const tokenCredential = DefaultAzureCredential();
const blobServiceClient = BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
tokenCredential
);
DefaultAzureCredential
會自動偵測為應用程式設定的驗證機制,並取得向 Azure 驗證應用程式所需的令牌。 如果應用程式使用多個SDK用戶端,則相同的認證物件可以與每個SDK客戶端物件搭配使用。