Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Doporučeným přístupem k ověření Azure hostované aplikace u jiných prostředků Azure je použití managed identity. Tento přístup je podporován pro většinu služeb Azure, včetně aplikací hostovaných na Azure App Service, Azure Container Apps a Azure Virtual Machines. Další informace o různých technikách ověřování a přístupech najdete na stránce přehledu ověřování . V dalších částech se dozvíte:
- Základní koncepty spravované identity
- Vytvoření spravované identity přiřazené uživatelem pro vaši aplikaci
- Přiřazení rolí spravované identitě přiřazené uživatelem
- Jak autentizovat pomocí uživatelsky přiřazené spravované identity z kódu vaší aplikace
Základní koncepty spravované identity
Spravovaná identita umožňuje aplikaci bezpečně připojit k dalším Azure prostředkům bez použití tajných klíčů nebo jiných tajných kódů aplikací. Interně Azure sleduje identitu a prostředky, ke kterým 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 dalším Azure prostředkům.
Při konfiguraci hostované aplikace je potřeba zvážit dva typy spravovaných identit:
- Systemem přiřazené spravované identity jsou povoleny přímo na prostředku Azure a jsou vázány na jeho životní cyklus. Po odstranění prostředku Azure automaticky odstraní identitu za vás. Identity přiřazené systémem poskytují minimalistický přístup k používání spravovaných identit.
- Uživatelsky přiřazené spravované identity se vytvářejí jako samostatné prostředky Azure a nabízejí větší flexibilitu a schopnosti. Jsou ideální pro řešení zahrnující více Azure prostředků, které potřebují sdílet stejnou identitu a oprávnění. Pokud například více virtuálních počítačů potřebuje přístup ke stejné sadě Azure prostředků, poskytuje spravovaná identita přiřazená uživatelem možnost opakovaného použití a optimalizovanou správu.
Návod
Další informace o výběru a správě spravovaných identit přiřazených systémem a přiřazených uživatelem najdete v článku s doporučeními k osvědčeným postupům spravované identity .
Následující části popisují postup povolení a použití spravované identity přiřazené uživatelem pro Azure hostované aplikace. Pokud potřebujete použít spravovanou identitu přiřazenou systémem, další informace najdete v článku o spravovaných identitách přiřazených systémem .
Vytvořit uživatelsky přiřazenou spravovanou identitu
Spravované identity přiřazené uživatelem se ve vašem Azure předplatném vytvářejí jako samostatné prostředky pomocí portálu Azure nebo Azure CLI. Azure CLI příkazy je možné spouštět v Azure Cloud Shell nebo na pracovní stanici s nainstalovaným Azure CLI.
Na portálu Azure zadejte na hlavním panelu hledání Spravované identity a v části Services vyberte odpovídající výsledek.
Na stránce Spravované identity vyberte + Vytvořit.
Na stránce Vytvořit spravovanou identitu přiřazenou uživatelem vyberte předplatné, skupinu prostředků a oblast spravované identity přiřazené uživatelem a zadejte název.
Vyberte Zkontrolovat a vytvořit , abyste zkontrolovali a ověřili vaše vstupy.
Výběrem možnosti Vytvořit vytvořte spravovanou identitu přiřazenou uživatelem.
Po vytvoření identity vyberte Pokračovat k prostředku.
Na stránce Přehled nové identity zkopírujte hodnotu ID klienta , která se použije pro pozdější použití při konfiguraci kódu aplikace.
Přiřazení spravované identity k aplikaci
Spravovanou identitu přiřazenou uživatelem je možné přidružit k jednomu nebo více prostředkům Azure. Všechny prostředky, které používají tuto identitu, získají oprávnění spojená s rolemi identity.
Na portálu Azure přejděte k prostředku, který je hostitelem kódu aplikace, jako je Azure App Service nebo instance Azure Container Apps.
Na stránce Přehled prostředku rozbalte Nastavení a v navigaci vyberte Identita .
Na stránce Identita přepněte na záložku Uživatelem přiřazené.
Výběrem + Přidat otevřete panel Přidat spravovanou identitu přiřazenou uživatelem .
Na panelu Přidat uživatelsky přiřazenou spravovanou identitu použijte rozevírací seznam Předplatné k filtrování výsledků hledání mezi vašimi identitami. Pomocí vyhledávacího pole Uživateli přiřazené spravované identity vyhledejte spravovanou identitu přiřazenou uživatelem, kterou jste povolili pro prostředek Azure hostující vaši aplikaci.
Vyberte identitu a pokračujte výběrem možnosti Přidat v dolní části panelu.
Přiřazení rolí ke spravované identitě
Dále určete, které role vaše aplikace potřebuje, a přiřaďte tyto role spravované identitě. Spravované identitě můžete přiřadit role v následujících oborech:
- Prostředek: Přiřazené role se vztahují pouze na tento konkrétní prostředek.
- Skupina prostředků: Přiřazené role se vztahují na všechny prostředky obsažené ve skupině prostředků.
- Předplatné: Přiřazené role se vztahují na všechny prostředky obsažené v předplatném.
Následující příklad ukazuje, jak přiřadit role v oboru skupiny prostředků, protože mnoho aplikací spravuje všechny související Azure prostředky pomocí jedné skupiny prostředků.
Přejděte na stránku Přehled skupiny prostředků, která obsahuje aplikaci se spravovanou identitou přiřazenou uživatelem.
V levém navigačním panelu vyberte Řízení přístupu (IAM ).
Na stránce Řízení přístupu (IAM) v horní nabídce vyberte + Přidat a pak zvolte Přidat přiřazení role a přejděte na stránku Přidat přiřazení role .
Stránka Přidat přiřazení role představuje vícestupňový pracovní postup se záložkami pro přiřazení rolí identitám. Na úvodní kartě Role vyhledejte pomocí vyhledávacího pole v horní části roli, kterou chcete přiřadit k identitě.
Ve výsledcích vyberte roli a pak zvolte Další a přejděte na kartu Členové .
U možnosti Přiřadit přístup vyberte Spravovaná identita.
U možnosti Členové zvolte + Vybrat členy a otevřete panel Vybrat spravované identity .
Na panelu Vybrat spravované identity použijte rozevírací nabídky Předplatné a Spravovaná identita ke filtrování výsledků hledání pro vaše identity. Pomocí vyhledávacího pole Select vyhledejte spravovanou identitu přiřazenou uživatelem, kterou jste povolili pro prostředek Azure hostující vaši aplikaci.
Vyberte identitu a pokračujte výběrem možnosti Vybrat v dolní části panelu.
V dolní části stránky vyberte Zkontrolovat a přiřadit .
Na poslední kartě Revize a přiřazení vyberte Zkontrolovat a přiřadit a dokončete pracovní postup.
Autentizace ke službám Azure z vaší aplikace
Knihovna identit Azure poskytuje různé pověření – implementace upravené tak, aby podporovaly různé scénáře a ověřovací tok služby Microsoft Entra. Vzhledem k tomu, že spravovaná identita není při místním spuštění dostupná, následující kroky ukazují, kterou pověření použít v jednotlivých případech.
-
Místní vývojové prostředí: Pouze při místním vývoji použijte třídu DefaultAzureCredential pro jasně vymezený a předkonfigurovaný řetězec přihlašovacích údajů.
DefaultAzureCredentialzjišťuje přihlašovací údaje uživatele z místního nástroje nebo integrovaného vývojového prostředí ( například Azure CLI nebo Visual Studio Code). Poskytuje také flexibilitu a pohodlí pro opakování, doby čekání na odpovědi a podporu více možností ověřování. Další informace najdete v článku Autentizace ke službám Azure během místního vývoje. -
Azure hostované aplikace: Když aplikace běží v Azure, použijte
ManagedIdentityCredentialk bezpečnému zjištění spravované identity nakonfigurované pro vaši aplikaci. Zadáním tohoto přesného typu přihlašovacích údajů zabráníte neočekávanému vyzvednutí dalších dostupných přihlašovacích údajů.
Implementace kódu
V projektu JavaScriptu přidejte balíček @azure/identity . V terminálu podle vašeho výběru přejděte do adresáře projektu aplikace a spusťte následující příkazy:
npm install @azure/identity
Azure služby jsou přístupné pomocí specializovaných klientských tříd z různých Azure SDK klientských knihoven. Provedením index.jsnásledujících kroků nakonfigurujte ověřování na základě tokenu:
- Importujte
@azure/identitybalíček. - Předejte klientovi příslušnou
TokenCredentialinstanci:- Použijte
DefaultAzureCredential, když je vaše aplikace spuštěná místně. - Při spuštění aplikace v Azure použijte
ManagedIdentityCredentiala nakonfigurujte ID klienta, ID prostředku nebo ID objektu.
- Použijte
- ID klienta
- Identifikátor prostředku
- ID objektu
ID klienta slouží k identifikaci spravované identity při konfiguraci aplikací nebo služeb, které je potřeba ověřit pomocí této identity.
Pomocí následujícího příkazu načtěte ID klienta přiřazené spravované identitě přiřazené uživatelem:
az identity show \ --resource-group <resource-group-name> \ --name <identity-name> \ --query 'clientId'Konfigurujte
ManagedIdentityCredentials ID klienta:import { BlobServiceClient } from '@azure/storage-blob'; import { ManagedIdentityCredential, DefaultAzureCredential } from '@azure/identity'; console.log(process.env); function createBlobServiceClient() { const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME; if (!accountName) throw Error('Azure Storage accountName not found'); const url = `https://${accountName}.blob.core.windows.net`; if (process.env.NODE_ENV === "production") { const clientId = process.env.AZURE_CLIENT_ID; if (!clientId) throw Error('AZURE_CLIENT_ID not found for Managed Identity'); return new BlobServiceClient(url, new ManagedIdentityCredential(clientId)); } else { return new BlobServiceClient(url, new DefaultAzureCredential()); } } async function main() { try { const blobServiceClient = createBlobServiceClient(); const containerClient = blobServiceClient.getContainerClient(process.env.AZURE_STORAGE_CONTAINER_NAME); // do something with client const properties = await containerClient.getProperties(); console.log(properties); } catch (err) { console.error("Error retrieving container properties:", err.message); throw err; } } main().catch((err) => { console.error("Error running sample:", err.message); process.exit(1); });
Implementace kódu
V projektu TypeScript přidejte balíček @azure/identity . V terminálu podle vašeho výběru přejděte do adresáře projektu aplikace a spusťte následující příkazy:
npm install typescript @azure/identity @types/node
Azure služby jsou přístupné pomocí specializovaných klientských tříd z různých Azure SDK klientských knihoven. Provedením index.jsnásledujících kroků nakonfigurujte ověřování na základě tokenu:
- Importujte
@azure/identitybalíček. - Předejte klientovi příslušnou
TokenCredentialinstanci:- Použití
DefaultAzureCredentialpři místním spuštění aplikace - Při spuštění aplikace v Azure použijte
ManagedIdentityCredentiala nakonfigurujte ID klienta, ID prostředku nebo ID objektu.
- Použití
- ID klienta
- Identifikátor prostředku
- ID objektu
ID klienta slouží k identifikaci spravované identity při konfiguraci aplikací nebo služeb, které je potřeba ověřit pomocí této identity.
Pomocí následujícího příkazu načtěte ID klienta přiřazené spravované identitě přiřazené uživatelem:
az identity show \ --resource-group <resource-group-name> \ --name <identity-name> \ --query 'clientId'Konfigurujte
ManagedIdentityCredentials ID klienta:import { BlobServiceClient } from '@azure/storage-blob'; import { ManagedIdentityCredential, DefaultAzureCredential } from '@azure/identity'; function createBlobServiceClient(): BlobServiceClient { const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME; if (!accountName) throw Error('Azure Storage accountName not found'); const url = `https://${accountName}.blob.core.windows.net`; if (process.env.NODE_ENV === "production") { const clientId = process.env.AZURE_CLIENT_ID; if (!clientId) throw Error('AZURE_CLIENT_ID not found for Managed Identity'); return new BlobServiceClient(url, new ManagedIdentityCredential(clientId)); } else { return new BlobServiceClient(url, new DefaultAzureCredential()); } } async function main(): Promise<void> { try { const blobServiceClient = createBlobServiceClient(); const containerClient = blobServiceClient.getContainerClient(process.env.AZURE_STORAGE_CONTAINER_NAME!); const properties = await containerClient.getProperties(); console.log(properties); } catch (err: any) { console.error("Error retrieving container properties:", err.message); throw err; } } main().catch((err: Error) => { console.error("Error running sample:", err.message); process.exit(1); });
Předchozí kód se chová jinak v závislosti na prostředí, ve kterém je spuštěný:
- Na místní vývojové pracovní stanici
DefaultAzureCredentialhledá v proměnných prostředí aplikační Service Principal nebo v lokálně nainstalovaných nástrojích pro vývojáře, jako je Visual Studio Code, přihlašovací údaje vývojáře. - Když se nasadí do Azure,
ManagedIdentityCredentialautomaticky zjistí konfigurace spravované identity, které umožňují ověřování v jiných službách.