Ověřování prostředků Azure z místních aplikací JavaScriptu
Článek
Aplikace spuštěné mimo Azure (například v místním nebo datovém centru třetí strany) by měly při přístupu k prostředkům Azure používat instanční objekt aplikace k ověřování v Azure. Objekty instančního objektu aplikace se vytvářejí pomocí procesu registrace aplikace v Azure. Po vytvoření instančního objektu aplikace se pro vaši aplikaci vygeneruje ID klienta a tajný klíč klienta. ID klienta, tajný klíč klienta a ID tenanta uložíte do proměnných prostředí, aby sada Azure SDK pro JavaScript používala proměnné prostředí k ověření aplikace v Azure za běhu.
Pro každé prostředí (například testovací, fáze, produkční) by se měla vytvořit jiná registrace aplikace. To umožňuje konfiguraci oprávnění prostředků specifických pro konkrétní prostředí pro každý instanční objekt a ujistěte se, že aplikace nasazená do jednoho prostředí nemluví s prostředky Azure, které jsou součástí jiného prostředí.
1. Registrace aplikace v Azure
Aplikaci je možné zaregistrovat v Azure pomocí webu Azure Portal nebo Azure CLI.
Přihlaste se k webu Azure Portal a postupujte podle těchto kroků.
Pokyny
Snímek obrazovky
Na webu Azure Portal:
Na panelu hledání v horní části webu Azure Portal zadejte registrace aplikací.
Vyberte položku označenou Registrace aplikací pod nadpisem Služby v nabídce, která se zobrazí pod panelem hledání.
Na stránce Registrace aplikací vyberte + Nová registrace.
Na stránce Zaregistrovat aplikaci vyplňte formulář následujícím způsobem.
Název → Zadejte název registrace aplikace v Azure. Tento název se doporučuje zahrnout název aplikace a prostředí (test, prod), pro které je registrace aplikace určená.
Podporované typy účtů → Účty pouze v tomto organizačním adresáři.
Vyberte Zaregistrovat a zaregistrujte aplikaci a vytvořte instanční objekt aplikace.
Na stránce Registrace aplikace pro vaši aplikaci:
ID aplikace (klienta) → Toto je ID aplikace, které bude vaše aplikace používat pro přístup k Azure během místního vývoje. Tuto hodnotu zkopírujte do dočasného umístění v textovém editoru, protože ji budete potřebovat v dalším kroku.
ID adresáře (tenanta) → Tuto hodnotu bude vaše aplikace potřebovat také při ověřování v Azure. Zkopírujte tuto hodnotu do dočasného umístění v textovém editoru, bude ji také potřeba v dalším kroku.
Přihlašovací údaje klienta → Před ověřením aplikace v Azure a používáním služeb Azure musíte pro aplikaci nastavit přihlašovací údaje klienta. Vyberte Přidat certifikát nebo tajný klíč a přidejte přihlašovací údaje pro vaši aplikaci.
Na stránce Certifikáty a tajné kódy vyberte + Nový tajný klíč klienta.
Dialogové okno Pro přidání tajného klíče klienta se zobrazí na pravé straně stránky. V tomto dialogovém okně:
Popis → Zadejte hodnotu Current.
Vyprší → Vyberte hodnotu 24 měsíců.
Chcete-li přidat tajný kód, vyberte Přidat .
DŮLEŽITÉ: Nastavte připomenutí v kalendáři před datem vypršení platnosti tajného kódu. Tímto způsobem můžete před vypršením platnosti tohoto tajného kódu přidat nový tajný kód a aktualizovat aplikace a vyhnout se přerušení služby ve vaší aplikaci.
Na stránce Certifikáty a tajné kódy se zobrazuje hodnota tajného klíče klienta.
Tuto hodnotu zkopírujte do dočasného umístění v textovém editoru, protože ji potřebujete v dalším kroku.
DŮLEŽITÉ: Toto je jediný čas, kdy uvidíte tuto hodnotu. Po opuštění nebo aktualizaci této stránky už tuto hodnotu neuvidíte. Můžete přidat další tajný klíč klienta bez zneplatnění tohoto tajného klíče klienta, ale tuto hodnotu znovu neuvidíte.
az ad sp create-for-rbac --name <app-name>
Výstup příkazu bude podobný následujícímu. Poznamenejte si tyto hodnoty nebo nechte toto okno otevřené, protože je budete potřebovat v dalším kroku a nebudete moct znovu zobrazit hodnotu hesla (tajný klíč klienta).
Dále musíte určit, jaké role (oprávnění) vaše aplikace potřebuje k jakým prostředkům, a přiřadit tyto role k aplikaci. Role je možné přiřadit roli v oboru prostředku, skupiny prostředků nebo předplatného. Tento příklad ukazuje, jak přiřadit role instančního objektu v oboru skupiny prostředků, protože většina aplikací seskupuje všechny prostředky Azure do jedné skupiny prostředků.
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ů.
Na stránce skupiny prostředků v nabídce vlevo vyberte Řízení přístupu (IAM ).
Na stránce Řízení přístupu (IAM):
Vyberte kartu Přiřazení rolí.
V horní nabídce vyberte + Přidat a potom přidejte přiřazení role z výsledné rozevírací nabídky.
Na stránce Přidat přiřazení role jsou uvedeny všechny role, které je možné přiřadit skupině prostředků.
Pomocí vyhledávacího pole vyfiltrujte seznam na lépe spravovatelnou velikost. Tento příklad ukazuje, jak filtrovat role objektů blob služby Storage.
Vyberte roli, kterou chcete přiřadit.
Výběrem možnosti Další přejdete na další obrazovku.
Další stránka Přidat přiřazení role umožňuje určit, k jakému uživateli se má role přiřadit.
V části Přiřadit přístup vyberte Uživatele, skupinu nebo instanční objekt.
Vyberte a vyberte členy v části Členové.
Otevře se dialogové okno na pravé straně webu Azure Portal.
V dialogovém okně Vybrat členy :
Textové pole Vybrat lze použít k filtrování seznamu uživatelů a skupin ve vašem předplatném. V případě potřeby zadejte několik prvních znaků instančního objektu, který jste vytvořili pro aplikaci pro filtrování seznamu.
Vyberte instanční objekt přidružený k vaší aplikaci.
Pokračujte výběrem možnosti Vybrat v dolní části dialogového okna.
Instanční objekt 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 .
az role definition list \
--query "sort_by([].{roleName:roleName, description:description}, &roleName)" \
--output table
Pokud například chcete instančnímu objektu umožnit čtení, zápis a odstranění přístupu ke kontejnerům objektů blob a datům služby Azure Storage ke všem účtům úložiště ve skupině prostředků msdocs-sdk-auth-example , přiřaďte instanční objekt aplikace k roli Přispěvatel dat v objektech blob služby Storage pomocí následujícího příkazu.
az role assignment create --assignee "aaaaaaaa-bbbb-cccc-7777-888888888888" \
--role "Storage Blob Data Contributor" \
--scope /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-javascript-sdk-auth-example \
Pro proces, který spouští aplikaci JavaScript, AZURE_CLIENT_SECRET musíte nastavit AZURE_CLIENT_IDproměnné prostředí , AZURE_TENANT_IDaby byly přihlašovací údaje instančního objektu aplikace k dispozici pro vaši aplikaci za běhu. Objekt DefaultAzureCredential vyhledá informace instančního objektu v těchto proměnných prostředí.
V dalším kroku pro libovolný javascriptový kód, který ve vaší aplikaci vytvoří objekt klienta sady Azure SDK, budete chtít:
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()
);
Když výše uvedený kód vytvoří instanci objektuDefaultAzureCredential, DefaultAzureCredential přečte proměnné AZURE_SUBSCRIPTION_IDprostředí , AZURE_TENANT_IDAZURE_CLIENT_IDa AZURE_CLIENT_SECRET informace o instančním objektu aplikace pro připojení k Azure.