Autentisera till Azure för utvecklings- och körningsmiljöer
Om du vill autentisera till Azure skapar du ett huvudnamn för tjänsten för att använda Azure-SDK:er för JavaScript.
Autentisera till Azure-plattformen
I allmänhet för de flesta tjänster och funktioner måste du autentisera med en identitetsautentitetsmetod för att skapa en token. Token skickas till SDK:n för att godkänna din användning. Det finns flera autentiseringsmetoder, vissa kräver mer omfattande konfiguration men är byggda för användning av produktionstjänsten.
Hitta paketspecifika instruktioner för autentisering i varje npm Azure SDK-pakets .
Interaktiv autentisering för snabbstarter och självstudier
Om du vill använda en snabbstart eller självstudie för Azure-tjänsterna är den snabbaste autentiseringsmetoden interaktiv inloggning. Med den här metoden utför du några enkla steg:
- Du kör koden.
- Ett meddelande visas med en autentiserings-URL och en token.
- Öppna en webbläsare till url:en och ange token. Beroende på dina krav för Azure-autentisering kan ett andra autentiseringssteg krävas.
- När du har slutfört autentiseringen kan du stänga webbläsaren.
- Koden fortsätter att köras.
Ett exempel på interaktiv inloggningsautentisering i en webbläsare kräver konfigurationsinställningen för klientorganisationen och klient-ID:t för det Azure Active Directory-program som du autentiserar för. Ett exempel på den här koden är:
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);
}
Eftersom den här metoden kräver en interaktiv inloggning varje gång koden körs, bör du ersätta den här metoden med en icke-interaktiv autentiseringsmetod när du är redo att påbörja utvecklingsarbetet för Azure-plattformen.
Eftersom den här koden inte använder några autentiseringshemligheter kan du kontrollera den här koden för källkodskontroll.
Azure-autentisering för utveckling och produktionsanvändning
När du är redo att påbörja utvecklingsarbetet rekommenderar vi att du väljer följande autentiseringsuppgifter:
| Lokal utveckling | Distribuerat program |
|---|---|
| ClientSecretCredential. När du har skapat tjänstens huvudnamn och hämtat ditt klient-ID, ditt klient-ID och din hemlighet är autentiseringshemligheten snabb att använda och kräver inte miljövariabler. | När du planerar att distribuera till produktion använder du DefaultAzureCredential som kräver miljövariabler. Den här autentiseringsmetoden ger fördelen att du inte behöver lagra eller använda hemligheter i källkontrollen. |
Det finns andra autentiseringsklassersom gör att du kan styra autentiseringen för specifika ändamål.
1. Skapa ett huvudnamn för tjänsten
Skapa ett huvudnamn för tjänsten och konfigurera dess åtkomst till Azure-resurser. Tjänstens huvudnamn krävs för att använda DefaultAzureCredential.
Skapa tjänstens huvudnamn med kommandot Azure az ad sp create-for-rbac med Azure CLI eller Cloud Shell.
az ad sp create-for-rbac --name YOUR-SERVICE-PRINCIPAL-NAME --role ContributorSvaret från kommandot innehåller hemligheter som du behöver lagra på ett säkert sätt, till exempel i Azure Key Vault:
{ "appId": "YOUR-SERVICE-PRINCIPAL-ID", "displayName": "YOUR-SERVICE-PRINCIPAL-NAME", "name": "http://YOUR-SERVICE-PRINCIPAL-NAME", "password": "!@#$%", "tenant": "YOUR-TENANT-ID" }
Du kan också skapa ett huvudnamn för tjänsten med:
2. Konfigurera miljövariabler
I Azure-molnmiljöerna måste du konfigurera följande miljövariabler. Ändra inte namnen eftersom Azure Identity SDK kräver dessa exakta miljönamn. Dessa miljövariabler krävs för att kontexten ska kunna använda DefaultAzureCredential.
AZURE_TENANT_ID:tenantfrån utdata för tjänstens huvudnamn ovan.AZURE_CLIENT_ID:appIdfrån utdata för tjänstens huvudnamn ovan.AZURE_CLIENT_SECRET:passwordfrån utdata för tjänstens huvudnamn ovan.
3. Lista Azure-prenumerationer med tjänstens huvudnamn
Använd det nya tjänsthuvudnamn för att autentisera med Azure och lista dina prenumerationer.
Installera beroendena: Azure SDK för Identity, Azure Subscriptions SDK.
npm install @azure/identity @azure/arm-subscriptions --saveSkapa en JavaScript-fil medlist.js, med följande kod:
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))Om du inte anger miljövariabler ersätter du autentiseringssträngarna med dina värden.
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";Kör filen för att visa listan över resursgrupper:
node list.jsVisa fullständig exempelkod och package.json:
Nästa steg
- Visa resursåtgärdshistorik
- Skapa en webbapp med ett säkert domännamn
- Du kan också skapa ett huvudnamn för tjänsten med: