Ověřování v prostředí Azure pro vývoj a modul runtime
Pokud chcete provést ověření v Azure, vytvořte instanční objekt pro použití sad Azure SDK pro JavaScript.
Ověření na platformě Azure
Obecně platí pro většinu služeb a funkcí, které je třeba ověřit pomocí metody přihlašovacích údajů identity k vytvoření tokenu. Token se předává sadě SDK pro autorizaci vašeho použití. Existuje několik metod přihlašovacích údajů, některé vyžadují rozsáhlejší nastavení, ale jsou sestavené pro použití v produkční službě.
Vyhledejte pokyny pro konkrétní balíček pro ověření v každém balíčku sady Azure SDK npm .
Interaktivní ověřování pro rychlé starty a kurzy
Pokud chcete používat rychlý Start nebo kurz pro služby Azure, je metoda nejrychlejší přihlašovací údaje interaktivní přihlášení. Pomocí této metody dokončíte několik rychlých kroků:
- Kód spustíte.
- Zobrazí se zpráva s adresou URL pro ověřování a tokenem.
- Otevřete v prohlížeči tuto adresu URL a zadejte token. V závislosti na požadavcích ověřování Azure může být potřeba druhý krok ověřování.
- Po dokončení ověřování můžete prohlížeč zavřít.
- Kód pokračuje v běhu.
příklad interaktivního ověřování přihlášení v prohlížeči vyžaduje nastavení konfigurace pro klienta a ID klienta pro aplikaci Azure Active Directory, pro kterou ověřujete. Příklad tohoto kódu:
function withInteractiveBrowserCredential() {
const credential = new InteractiveBrowserCredential({
tenantId: "<YOUR_TENANT_ID>",
clientId: "<YOUR_CLIENT_ID>"
});
const client = new SecretClient("https://key-vault-name.vault.azure.net", credential);
}
Vzhledem k tomu, že tato metoda vyžaduje interaktivní přihlášení pokaždé, když se kód spustí, budete chtít tuto metodu nahradit metodou neinteraktivních přihlašovacích údajů, až budete připraveni začít s vývojovou prací pro platformu Azure.
Vzhledem k tomu, že tento kód nepoužívá žádné ověřovací tajné kódy, můžete tento kód kontrolovat do správy zdrojového kódu.
Ověřování Azure pro vývoj a produkční použití
Až budete připraveni začít pracovat s vývojem, doporučujeme vybrat následující přihlašovací údaje:
| Místní vývoj | Nasazená aplikace |
|---|---|
| ClientSecretCredential. Po vytvoření instančního objektu a načtení ID klienta, ID tenanta a tajného klíče se tyto přihlašovací údaje rychle používají a nevyžadují proměnné prostředí. | Při plánování nasazení do produkčního prostředí použijte DefaultAzureCredential , který vyžaduje proměnné prostředí. Tato metoda přihlašovacích údajů poskytuje výhodu, že nepotřebujete ukládat nebo používat tajné klíče ve správě zdrojového kódu. |
Existují další třídy přihlašovacích údajů, které vám umožňují řídit ověřování pro konkrétní účely.
1. Vytvoření instančního objektu
Vytvořte instanční objekt a nakonfigurujte jeho přístup k prostředkům Azure. Instanční objekt je vyžadován pro použití DefaultAzureCredential.
Vytvořte instanční objekt pomocí příkazu AZ AD SP Create-for-RBAC pomocí Azure CLI nebo Cloud Shell.
az ad sp create-for-rbac --name YOUR-SERVICE-PRINCIPAL-NAME --role ContributorOdpověď z příkazu obsahuje tajné kódy, které je třeba ukládat bezpečně, například v Azure Key Vault:
{ "appId": "YOUR-SERVICE-PRINCIPAL-ID", "displayName": "YOUR-SERVICE-PRINCIPAL-NAME", "name": "http://YOUR-SERVICE-PRINCIPAL-NAME", "password": "!@#$%", "tenant": "YOUR-TENANT-ID" }
Instanční objekt můžete vytvořit také pomocí:
2. konfigurace proměnných prostředí
V cloudových prostředích Azure je potřeba nakonfigurovat následující proměnné prostředí. Neměňte názvy, protože sada Azure identity SDK vyžaduje tyto přesné názvy prostředí. Tyto proměnné prostředí jsou vyžadovány pro kontext, který používá DefaultAzureCredential.
AZURE_TENANT_ID:tenantvýše uvedený výstup instančního objektu.AZURE_CLIENT_ID:appIdvýše uvedený výstup instančního objektu.AZURE_CLIENT_SECRET:passwordvýše uvedený výstup instančního objektu.
3. seznam předplatných Azure s instančním objektem
Použijte nový instanční objekt k ověření pomocí Azure a seznamte se s předplatnými.
Nainstalujte závislosti: sadu Azure SDK pro identity, sadu SDK předplatných Azure.
npm install @azure/identity @azure/arm-subscriptions --saveVytvořte soubor JavaScriptu s názvem list.jss následujícím kódem:
const { ClientSecretCredential, DefaultAzureCredential } = require("@azure/identity"); const { SubscriptionClient } = require("@azure/arm-subscriptions"); let credentials = null; const tenantId = process.env["AZURE_TENANT_ID"] || "REPLACE-WITH-YOUR-TENANT-ID"; const clientId = process.env["AZURE_CLIENT_ID"] || "REPLACE-WITH-YOUR-CLIENT-ID"; const secret = process.env["AZURE_CLIENT_SECRET"] || "REPLACE-WITH-YOUR-CLIENT-SECRET"; if(process.env.production){ // production credentials = new DefaultAzureCredential(); }else{ // development credentials = new ClientSecretCredential(tenantId, clientId, secret); console.log("development"); } // use credential to authenticate with Azure SDKs let client = new SubscriptionClient(credentials); const subscriptions = async() =>{ // get list of Azure subscriptions const listOfSubscriptions = await client.subscriptions.list(); // get details of each subscription for (const item of listOfSubscriptions) { const subscriptionDetails = await client.subscriptions.get(item.subscriptionId); /* Each item looks like: { id: '/subscriptions/123456', subscriptionId: '123456', displayName: 'YOUR-SUBSCRIPTION-NAME', state: 'Enabled', subscriptionPolicies: { locationPlacementId: 'Internal_2014-09-01', quotaId: 'Internal_2014-09-01', spendingLimit: 'Off' }, authorizationSource: 'RoleBased' }, */ console.log(subscriptionDetails) } } subscriptions() .then(()=>console.log("done")) .catch(ex=>console.log(ex))Pokud nenastavujete proměnné prostředí, nahraďte řetězce přihlašovacích údajů hodnotami.
const tenantId = process.env["AZURE_TENANT_ID"] || "REPLACE-WITH-YOUR-TENANT-ID"; const clientId = process.env["AZURE_CLIENT_ID"] || "REPLACE-WITH-YOUR-CLIENT-ID"; const secret = process.env["AZURE_CLIENT_SECRET"] || "REPLACE-WITH-YOUR-CLIENT-SECRET";Spuštěním souboru zobrazte seznam skupin prostředků:
node list.jsZobrazit kompletní vzorový kód a Package. JSON:
Další kroky
- Zobrazit historii operací prostředků
- Vytvoření webové aplikace s názvem zabezpečené domény
- Instanční objekt můžete vytvořit také pomocí: