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.

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

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:

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