Ověřování javascriptových aplikací v Azure hostovaných v Azure pomocí knihovny identit Azure
Když je aplikace hostovaná v Azure (pomocí služby, jako je Azure App Service, Azure Functions nebo Azure Container Apps), můžete k bezpečnému ověření aplikace v prostředcích Azure použít spravovanou identitu.
Spravovaná identita poskytuje identitu pro vaši aplikaci, která umožňuje připojení k jiným prostředkům Azure bez nutnosti používat tajný klíč (například připojovací řetězec nebo klíč). Azure interně rozpozná identitu vaší aplikace a ví, ke kterým prostředkům má aplikace oprávnění přistupovat. Azure tyto informace používá k automatickému získání tokenů Microsoft Entra pro aplikaci, což umožňuje připojení k jiným prostředkům Azure bez nutnosti spravovat (vytvářet nebo obměňovat) tajné kódy ověřování.
Typy spravovaných identit
Existují dva typy spravovaných identit:
- Spravované identity přiřazené systémem – jeden prostředek Azure
- Spravované identity přiřazené uživatelem – více prostředků Azure
Tento článek popisuje postup povolení a použití spravované identity přiřazené systémem pro aplikaci. Pokud potřebujete použít spravovanou identitu přiřazenou uživatelem, přečtěte si článek Správa spravovaných identit přiřazených uživatelem a zjistěte, jak vytvořit spravovanou identitu přiřazenou uživatelem.
Spravované identity přiřazené systémem pro jeden prostředek
Spravované identity přiřazené systémem jsou poskytovány a svázané přímo s prostředkem Azure. Když povolíte spravovanou identitu u prostředku Azure, získáte spravovanou identitu přiřazenou systémem pro tento prostředek. Spravovaná identita je svázaná s životním cyklem prostředku Azure. Když se prostředek odstraní, Azure automaticky odstraní identitu za vás. Vzhledem k tomu, že stačí povolit spravovanou identitu pro prostředek Azure hostující váš kód, je tento typ identity nejjednodušším typem spravované identity, který se má použít.
Spravované identity přiřazené uživatelem pro více prostředků
Spravovaná identita přiřazená uživatelem je samostatný prostředek Azure. Tento typ identity se nejčastěji používá, když má vaše řešení více úloh, které běží na několika prostředcích Azure, které potřebují sdílet stejnou identitu a stejná oprávnění. Předpokládejme například, že vaše řešení zahrnuje aplikace, které běží na několika instancích služby App Service a virtuálních počítačů. Všechny aplikace potřebují přístup ke stejné sadě prostředků Azure. Vytvoření a použití spravované identity přiřazené uživatelem napříč těmito prostředky je nejlepší volbou návrhu.
1. Povolení spravované identity přiřazené systémem v hostované aplikaci
Prvním krokem je povolení spravované identity na prostředku Azure hostujícím vaši aplikaci. Pokud například hostujete Express.js aplikaci pomocí služby Azure App Service, musíte pro tuto webovou aplikaci App Service povolit spravovanou identitu. Pokud k hostování aplikace používáte virtuální počítač, povolíte virtuálnímu počítači používat spravovanou identitu.
Spravovanou identitu můžete povolit pro prostředek Azure pomocí webu Azure Portal nebo Azure CLI.
2. Přiřazení rolí ke spravované identitě
Dále musíte určit, jaké role (oprávnění) vaše aplikace potřebuje, a přiřadit spravovanou identitu těmto rolím v Azure. Spravovanou identitu je možné přiřadit role v oboru prostředku, skupiny prostředků nebo předplatného. Tento příklad ukazuje, jak přiřadit role v oboru skupiny prostředků, protože většina aplikací seskupuje všechny prostředky Azure do jedné skupiny prostředků.
3. Implementace defaultAzureCredential ve vaší aplikaci
DefaultAzureCredential automaticky zjistí, že se používá spravovaná identita a používá spravovanou identitu k ověření v jiných prostředcích Azure. Jak je popsáno v knihovně Identit Azure pro javascriptové ověřování článku, DefaultAzureCredential
podporuje více metod ověřování a určuje metodu ověřování, která se používá za běhu. Aplikace tak může používat různé metody ověřování v různých prostředích bez implementace kódu specifického pro prostředí.
Nejprve do aplikace přidejte balíček @azure/identity .
npm install @azure/identity
V dalším kroku pro libovolný javascriptový kód, který ve vaší aplikaci vytvoří objekt klienta sady Azure SDK, chcete:
- Naimportujte třídu
DefaultAzureCredential
z@azure/identity
modulu. - Vytvoření objektu
DefaultAzureCredential
-
DefaultAzureCredential
Předejte objekt konstruktoru klientského objektu sady Azure SDK.
Příklad těchto kroků je znázorněn v následujícím segmentu kódu.
// connect-with-default-azure-credential.js
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
import 'dotenv/config'
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!accountName) throw Error('Azure Storage accountName not found');
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
new DefaultAzureCredential()
);