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í aplikace hostované v Azure u jiných prostředků Azure je použití spravované identity. Tento přístup je podporovaný pro většinu služeb Azure, včetně aplikací hostovaných v 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é systémem pro vaši aplikaci
- Přiřazení rolí spravované identitě přiřazené systémem
- Ověření pomocí spravované identity přiřazené systémem z kódu aplikace
Základní koncepty spravované identity
Spravovaná identita umožňuje aplikaci bezpečně připojit k jiným prostředkům Azure bez použití tajných klíčů nebo jiných tajných kódů aplikací. Azure interně 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 prostředkům Azure.
Při konfiguraci hostované aplikace je potřeba zvážit dva typy spravovaných identit:
- Spravované identity přiřazené systémem jsou povolené přímo u prostředku Azure a jsou svázané s jeho životním cyklem. Když se prostředek odstraní, Azure automaticky odstraní identitu za vás. Identity přiřazené systémem poskytují minimalistický přístup k používání spravovaných identit.
- Spravované identity přiřazené uživatelem se vytvářejí jako samostatné prostředky Azure a nabízejí větší flexibilitu a možnosti. Jsou ideální pro řešení zahrnující více prostředků Azure, 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ě prostředků Azure, spravovaná identita přiřazená uživatelem poskytuje opakovaně použitelný 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é systémem pro aplikaci hostované v Azure. Pokud potřebujete použít spravovanou identitu přiřazenou uživatelem, další informace najdete v článku o spravovaných identitách přiřazených uživatelem .
Povolení spravované identity přiřazené systémem na hostitelském prostředku Azure
Pokud chcete začít používat spravovanou identitu přiřazenou systémem s vaší aplikací, povolte identitu na prostředku Azure, který je hostitelem vaší aplikace, jako je Azure App Service, Azure Container App nebo Virtuální počítač Azure.
Spravovanou identitu přiřazenou systémem pro prostředek Azure můžete povolit pomocí webu Azure Portal nebo Azure CLI.
Na webu Azure Portal přejděte k prostředku, který je hostitelem kódu vaší aplikace, jako je azure App Service nebo instance azure Container App.
Na stránce Přehled prostředku rozbalte Nastavení a v navigaci vyberte Identita .
Na stránce Identita přepněte posuvník Stav na Zapnuto.
Výběrem možnosti Uložit se vaše změny uplatní.
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í prostředky Azure 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 systémem.
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 obsahuje záložku s vícekrokovým pracovním postupem 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 pomocí rozevíracích nabídek Předplatné a Spravovaná identita vyfiltrujte výsledky hledání pro vaše identity. Pomocí vyhledávacího pole Vybrat vyhledejte systémovou identitu, 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.
Ověřování ve službách Azure z vaší aplikace
Knihovna Identit Azure poskytuje různé přihlašovací údaje – implementace TokenCredential přizpůsobené podpoře různých scénářů a toků ověřování Microsoft Entra. Vzhledem k tomu, že spravovaná identita není při místním spuštění dostupná, předvádějí kroky, které se mají použít v tomto scénáři:
-
Místní vývojové prostředí: Pouze při místním vývoji použijte třídu s názvem DefaultAzureCredential pro předkonfigurovaný řetězec přihlašovacích údajů.
DefaultAzureCredentialzjistí přihlašovací údaje uživatele z místního nástroje nebo integrovaného vývojového prostředí(IDE), jako je 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 o ověřování ve službách Azure v místním vývojovém článku. -
Aplikace hostované v Azure: Když je vaše aplikace spuštěná 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
Ke službám Azure se přistupuje pomocí specializovaných klientských tříd z různých klientských knihoven Azure SDK. 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 - Použijte
ManagedIdentityCredential, když je vaše aplikace spuštěná v Azure.
import { BlobServiceClient } from '@azure/storage-blob'; import { ManagedIdentityCredential, DefaultAzureCredential } from '@azure/identity'; 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") { return new BlobServiceClient(url, new ManagedIdentityCredential()); } else { return new BlobServiceClient(url, new DefaultAzureCredential()); } } async function main() { try { const blobServiceClient = createBlobServiceClient(); const containerClient = blobServiceClient.getContainerClient(process.env.AZURE_STORAGE_CONTAINER_NAME); 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); });- Použití
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 @types/node
Ke službám Azure se přistupuje pomocí specializovaných klientských tříd z různých klientských knihoven Azure SDK. 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 - Použijte
ManagedIdentityCredential, když je vaše aplikace spuštěná v Azure.
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") { return new BlobServiceClient(url, new ManagedIdentityCredential()); } 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); });- Použití
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á proměnné prostředí pro instanční objekt aplikace nebo v místně nainstalovaných vývojářských nástrojích, jako je Visual Studio Code, pro sadu přihlašovacích údajů vývojáře. - Při nasazení do Azure zjistí konfigurace spravované identity,
ManagedIdentityCredentialkteré se automaticky ověřují v jiných službách.