Sdílet prostřednictvím


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.

Pokyny Snímek obrazovky
Na webu Azure Portal přejděte k prostředku, který je hostitelem kódu vaší aplikace.

Můžete například zadat název prostředku do vyhledávacího pole v horní části stránky a přejít na něj tak, že ho vyberete v dialogovém okně.
Snímek obrazovky znázorňující použití horního panelu hledání na webu Azure Portal k vyhledání a přechodu na prostředek v Azure
Na stránce vašeho prostředku vyberte položku nabídky Identita z levé nabídky.

Všechny prostředky Azure, které podporují spravovanou identitu, budou mít položku nabídky Identita , i když se rozložení nabídky může mírně lišit.
Snímek obrazovky znázorňující umístění položky nabídky Identita v nabídce vlevo pro prostředek Azure
Na stránce Identita:
  1. Změňte posuvník Stav na Zapnuto.
  2. Zvolte Uložit.
Potvrzovací dialog ověřuje, že chcete pro vaši službu povolit spravovanou identitu. Pokud chcete povolit spravovanou identitu pro prostředek Azure, odpovězte ano.
Snímek obrazovky znázorňující povolení spravované identity pro prostředek Azure na stránce Identita prostředku

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ů.

Pokyny Snímek obrazovky
Vyhledejte skupinu prostředků pro vaši aplikaci vyhledáním názvu skupiny prostředků pomocí vyhledávacího pole v horní části webu Azure Portal.

Přejděte do skupiny prostředků tak, že v dialogovém okně vyberete název skupiny prostředků pod nadpisem Skupiny prostředků.
Snímek obrazovky znázorňující použití horního panelu hledání na webu Azure Portal k vyhledání a přechodu na skupinu prostředků v Azure
Na stránce skupiny prostředků v nabídce vlevo vyberte Řízení přístupu (IAM ). Snímek obrazovky znázorňující umístění položky nabídky Řízení přístupu (I A M) v levé nabídce skupiny prostředků Azure
Na stránce Řízení přístupu (IAM):
  1. Vyberte kartu Přiřazení rolí.
  2. V horní nabídce vyberte + Přidat a potom přidejte přiřazení role z výsledné rozevírací nabídky.
Snímek obrazovky znázorňující, jak přejít na kartu Přiřazení rolí a umístění tlačítka použitého k přidání přiřazení rolí do skupiny prostředků
Na stránce Přidat přiřazení role jsou uvedeny všechny role, které je možné přiřadit skupině prostředků.
  1. Pomocí vyhledávacího pole vyfiltrujte seznam na lépe spravovatelnou velikost. Tento příklad ukazuje, jak filtrovat role objektů blob služby Storage.
  2. Vyberte roli, kterou chcete přiřadit.
    Výběrem možnosti Další přejdete na další obrazovku.
Snímek obrazovky znázorňující, jak filtrovat a vybrat přiřazení rolí, která se mají přidat do skupiny prostředků
Další stránka Přidat přiřazení role umožňuje určit, k jakému uživateli se má role přiřadit.
  1. V části Přiřadit přístup vyberte spravovanou identitu.
  2. Vyberte a vyberte členy v části Členové.
Otevře se dialogové okno na pravé straně webu Azure Portal.
Snímek obrazovky znázorňující, jak vybrat spravovanou identitu jako typ uživatele, kterému chcete přiřadit roli (oprávnění) na stránce přidat přiřazení rolí
V dialogovém okně Vybrat spravované identity :
  1. Rozevírací seznam Spravované identity a textové pole Vybrat lze použít k filtrování seznamu spravovaných identit ve vašem předplatném. V tomto příkladu se zobrazí jenom spravované identity přidružené ke službě App Service.
  2. Vyberte spravovanou identitu pro prostředek Azure hostující vaši aplikaci.
Pokračujte výběrem možnosti Vybrat v dolní části dialogového okna.
Snímek obrazovky znázorňující, jak pomocí dialogového okna Vybrat spravované identity filtrovat a vybrat spravovanou identitu pro přiřazení role
Spravovaná identita se zobrazí jako vybraná na obrazovce Přidat přiřazení role.

Výběrem možnosti Zkontrolovat a přiřadit přejděte na poslední stránku a pak proces dokončete opětovnou kontrolou a přiřazením .
Snímek obrazovky s obrazovkou posledního přidání přiřazení role, kde uživatel musí vybrat tlačítko Zkontrolovat a přiřadit k dokončení přiřazení role

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:

  1. Naimportujte třídu DefaultAzureCredential z @azure/identity modulu.
  2. Vytvoření objektu DefaultAzureCredential
  3. 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()
);