Ověřování aplikací hostovaných v Azure v prostředcích Azure pomocí sady Azure SDK pro JavaScript
Pokud je aplikace hostovaná v Azure (pomocí služby, jako je Aplikace Azure Service, Azure Virtual Machines nebo Azure Container Instances), doporučeným přístupem k ověřování aplikace v prostředcích Azure je použití spravované identity.
Spravovaná identita poskytuje identitu pro vaši aplikaci, aby se vaše aplikace připojuje k jiným prostředkům Azure bez nutnosti používat tajný klíč (například připojovací řetězec klíče). Azure interně zná identitu vaší aplikace a prostředky, ke které se může připojit. Azure tyto informace používá k automatickému získání tokenů Microsoft Entra pro aplikaci, aby se mohla připojit k jiným prostředkům Azure, aniž byste museli 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. 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 to nejjednodušší typ spravované identity, kterou chcete použít.
Spravované identity přiřazené uživatelem pro více prostředků
Koncepčně je tato identita samostatným prostředkem Azure. Nejčastěji se 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í. Pokud například vaše řešení obsahovalo komponenty, které běžely na několika instancích služby App Service a virtuálních počítačů a všechny potřebovaly 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 by mělo smysl.
1. Přiřazení systému: Povolení v hostované aplikaci
Prvním krokem je povolení spravované identity na prostředku Azure hostujícím vaši aplikaci. Pokud například hostujete aplikaci Django pomocí služby Aplikace Azure Service, musíte pro tuto webovou aplikaci App Service povolit spravovanou identitu. Pokud jste k hostování aplikace používali virtuální počítač, povolili byste 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
Třída DefaultAzureCredential
automaticky zjistí, že se používá spravovaná identita, a použije spravovanou identitu k ověření v jiných prostředcích Azure. Jak je popsáno v článku s přehledem ověřování v sadě Azure SDK pro JavaScript, 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 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()
);
Pokud se výše uvedený kód spustí na místní pracovní stanici během místního vývoje, metoda SDK, DefaultAzureCredential() vyhledejte proměnné prostředí pro instanční objekt aplikace nebo v editoru VS Code, Azure CLI nebo Azure PowerShell pro sadu přihlašovacích údajů pro vývojáře, z nichž je možné použít k ověření aplikace v prostředcích Azure během místního vývoje. Tímto způsobem se stejný kód dá použít k ověření aplikace v prostředcích Azure během místního vývoje i při nasazení do Azure.