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.
Aplikace hostované mimo Azure, například místně nebo v datacentru třetí strany, by měly k ověřování ve službách Azure používat instanční objekt aplikace prostřednictvím ID Microsoft Entra . V dalších částech se dozvíte:
- Jak zaregistrovat aplikaci v Microsoft Entra ke vytvoření zástupce služby
- Přiřazení rolí k oprávněním oboru
- Ověření pomocí služebního principálu z kódu vaší aplikace
Použití vyhrazených uživatelských účtů aplikace umožňuje dodržovat zásadu nejnižších oprávnění při přístupu k prostředkům Azure. Oprávnění jsou omezená na konkrétní požadavky aplikace během vývoje, což brání náhodnému přístupu k prostředkům Azure určeným pro jiné aplikace nebo služby. Tento přístup také pomáhá vyhnout se problémům při přesunu aplikace do produkčního prostředí tím, že zajišťuje, že ve vývojovém prostředí není příliš privilegovaný.
Pro každé prostředí, ve které je aplikace hostovaná, by se měla vytvořit jiná registrace aplikace. To umožňuje nakonfigurovat pro každý instanční objekt oprávnění specifická pro prostředí a zajistit, aby aplikace nasazená do jednoho prostředí nemluvila s prostředky Azure v jiném prostředí.
Registrace aplikace v Azure
Objekty tenantů služby aplikace se vytvářejí prostřednictvím registrace aplikace v Azure pomocí Azure portálu nebo Azure CLI.
Na webu Azure Portal pomocí panelu hledání přejděte na stránku Registrace aplikací.
Na stránce Registrace aplikací vyberte + Nová registrace.
Na stránce registrace aplikace :
- Do pole Název zadejte popisnou hodnotu, která obsahuje název aplikace a cílové prostředí.
- Pro Podporované typy účtůvyberte Účty pouze v tomto organizačním adresáři (pouze Microsoft Customer Led – jednotná instance), nebo vyberte možnost, která nejlépe vyhovuje vašim požadavkům.
Vyberte Register pro registraci vaší aplikace a vytvoření service principal.
Na stránce registrace aplikace aplikace zkopírujte ID aplikace (klienta) a ID adresáře (tenanta) a vložte je do dočasného umístění pro pozdější použití v konfiguracích kódu aplikace.
Vyberte Přidání certifikátu nebo tajného kódu pro nastavení přihlašovacích údajů pro vaši aplikaci.
Na stránce Certifikáty a tajemství vyberte + Nový tajný klíč klienta.
V panelu, který se otevře Přidat tajný klíč klienta:
- Jako popiszadejte hodnotu Current.
- Pro hodnotu u Expires ponechte výchozí doporučenou hodnotu 180 dnů.
- Chcete-li přidat tajný kód, vyberte Přidat .
Na stránce Certifikáty & tajných kódů zkopírujte vlastnost Hodnota tajného klíče klienta pro použití v dalším kroku.
Poznámka:
Hodnota tajného klíče klienta se zobrazí jenom jednou po vytvoření registrace aplikace. Můžete přidat další tajné kódy klienta bez zneplatnění tohoto tajného klíče klienta, ale neexistuje způsob, jak tuto hodnotu znovu zobrazit.
Přiřazení rolí k instančnímu objektu aplikace
Dále určete, jaké role (oprávnění) vaše aplikace potřebuje k jakým prostředkům, a přiřaďte tyto role k vytvořenému služebnímu principalu. Role je možné přiřadit na úrovni prostředků, skupin 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ů.
Na webu Azure Portal přejděte na stránku Přehled skupiny prostředků, která obsahuje vaši aplikaci.
V levém navigačním panelu vyberte řízení přístupu (IAM).
Na stránce Řízení přístupu (IAM) vyberte + Přidat a pak v rozevírací nabídce zvolte Přidat přiřazení role . Stránka Přidat přiřazení role poskytuje několik záložek pro konfiguraci a přiřazení rolí.
Na kartě Role vyhledejte roli, kterou chcete přiřadit, pomocí vyhledávacího pole. Vyberte roli a pak zvolte Další.
Na kartě Členové :
- V části Přiřadit přístup k hodnotě vyberte Uživatel, skupina nebo instanční objekt .
- Pro hodnotu Členové zvolte + Vybrat členy , aby se otevřel informační panel Vybrat členy .
- Vyhledejte služební objekt, který jste vytvořili dříve, a vyberte ho z výsledků filtrování. Výběrem možnosti Vybrat vyberte skupinu a zavřete informační panel.
- V dolní části karty Členové vyberte Zkontrolovat a přiřadit.
Na kartě Revize a Přiřazení vyberte Revize a Přiřazení v dolní části stránky.
Nastavení proměnných prostředí aplikace
Za běhu určité přihlašovací údaje z knihovny Azure Identity Library, jako jsou DefaultAzureCredential, EnvironmentCredentiala ClientSecretCredential, vyhledávají informace instančního objektu podle konvence v proměnných prostředí. V závislosti na nástrojích a prostředích existuje několik způsobů konfigurace proměnných prostředí při práci s JavaScriptem.
Bez ohledu na zvolený přístup nakonfigurujte pro instanční objekt následující proměnné prostředí:
-
AZURE_CLIENT_ID: Slouží k identifikaci registrované aplikace v Azure. -
AZURE_TENANT_ID: ID tenanta Microsoft Entra. -
AZURE_CLIENT_SECRET: Tajné přihlašovací údaje vygenerované pro aplikaci.
V editoru Visual Studio Code lze proměnné prostředí nastavit v souboru launch.json projektu. Tyto hodnoty se automaticky načítají při spuštění aplikace. Tyto konfigurace ale během nasazování necestují s vaší aplikací, takže potřebujete nastavit proměnné prostředí v cílovém hostitelském prostředí.
"configurations": [
{
"env": {
"NODE_ENV": "development",
"AZURE_CLIENT_ID": "<your-client-id>",
"AZURE_TENANT_ID":"<your-tenant-id>",
"AZURE_CLIENT_SECRET": "<your-client-secret>"
}
}
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. Následující kroky ukazují, jak používat ClientSecretCredential při práci se služebními identitami lokálně a v produkčním prostředí.
Implementace kódu
Do projektu Node.js přidejte balíček @azure/identity :
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. Pro jakýkoli javascriptový kód, který ve vaší aplikaci vytvoří objekt klienta sady Azure SDK, postupujte takto:
- Naimportujte třídu
ClientSecretCredentialz@azure/identitymodulu. - Vytvoření objektu
ClientSecretCredentialpomocí objektutenantId,clientIdaclientSecret. - Předejte instanci
ClientSecretCredentialkonstruktoru klientského objektu Azure SDK.
Příklad tohoto přístupu je znázorněn v následujícím segmentu kódu:
import { BlobServiceClient } from '@azure/storage-blob';
import { ClientSecretCredential } from '@azure/identity';
// Authentication
const tenantId = process.env.AZURE_TENANT_ID;
const clientId = process.env.AZURE_CLIENT_ID;
const clientSecret = process.env.AZURE_CLIENT_SECRET;
// Azure Storage account name
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!tenantId || !clientId || !clientSecret || !accountName) {
throw Error('Required environment variables not found');
}
const credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
credential
);
Alternativním přístupem je předat ClientSecretCredential objekt přímo konstruktoru klienta sady Azure SDK:
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
new ClientSecretCredential(tenantId, clientId, clientSecret)
);