Verifiëren bij Azure voor ontwikkel- en runtime-omgevingen
Als u zich wilt verifiëren bij Azure, maakt u een service-principal om de Azure SDK's voor JavaScript te gebruiken.
Verifiëren bij het Azure-platform
Over het algemeen moet u voor de meeste services en functionaliteit verifiëren met een methode voor identiteitsreferenties om een token te maken. Het token wordt doorgegeven aan de SDK om uw gebruik te autor toestemming te geven. Er zijn verschillende referentiemethoden. Sommige methoden vereisen een uitgebreidere installatie, maar zijn gebouwd voor gebruik door de productieservice.
Zoek pakketspecifieke instructies voor verificatie in elk npm Azure SDK-pakket.
Interactieve verificatie voor quickstarts en zelfstudies
Als u een quickstart of zelfstudie wilt gebruiken voor de Azure-services, is interactieve aanmelding de snelste referentiemethode. Met deze methode voltooit u een paar snelle stappen:
- U kunt de code uitvoeren.
- Er wordt een bericht weergegeven met een verificatie-URL en een token.
- Open een browser naar die URL en voer het token in. Afhankelijk van uw Azure-verificatievereisten is mogelijk een tweede verificatiestap vereist.
- Wanneer u de verificatie hebt voltooid, kunt u de browser sluiten.
- De code blijft worden uitgevoerd.
Een voorbeeld van interactieve aanmeldingsverificatie in een browser vereist de configuratie-instelling voor de tenant en client-id voor de Azure Active Directory toepassing die u wilt authenticeren. Een voorbeeld van deze code is:
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);
}
Omdat voor deze methode elke keer dat de code wordt uitgevoerd een interactieve aanmelding is vereist, moet u deze methode vervangen door een niet-interactieve referentiemethode zodra u klaar bent om te beginnen met het ontwikkelwerk voor het Azure-platform.
Omdat deze code geen verificatiegeheimen gebruikt, kunt u deze code controleren op broncodebeheer.
Azure-verificatie voor ontwikkelings- en productiegebruik
Wanneer u klaar bent om aan de slag te gaan met ontwikkelen, raden we u aan de volgende referenties te selecteren:
| Lokale ontwikkeling | Geïmplementeerde toepassing |
|---|---|
| ClientSecretCredential. Nadat u uw service-principal hebt gemaakt en uw client-id, tenant-id en geheim hebt opgehaald, is deze referentie snel te gebruiken en zijn er geen omgevingsvariabelen vereist. | Wanneer u van plan bent om te implementeren naar productie, gebruikt u de DefaultAzureCredential waarvoor omgevingsvariabelen zijn vereist. Deze referentiemethode biedt het voordeel dat u geen geheimen hoeft op te slaan of te gebruiken in broncodebeheer. |
Er zijn andere referentieklassenwaarmee u verificatie voor specifieke doeleinden kunt controleren.
1. Een service-principal maken
Maak een service-principal en configureer de toegang tot Azure-resources. De service-principal is vereist voor het gebruik van de DefaultAzureCredential.
Maak de service-principal met de Azure az ad sp create-for-rbac-opdracht met de Azure CLI of Cloud Shell.
az ad sp create-for-rbac --name YOUR-SERVICE-PRINCIPAL-NAME --role ContributorHet antwoord van de opdracht bevat geheimen die u veilig moet opslaan, zoals in Azure Key Vault:
{ "appId": "YOUR-SERVICE-PRINCIPAL-ID", "displayName": "YOUR-SERVICE-PRINCIPAL-NAME", "name": "http://YOUR-SERVICE-PRINCIPAL-NAME", "password": "!@#$%", "tenant": "YOUR-TENANT-ID" }
U kunt ook een service-principal maken met:
2. Uw omgevingsvariabelen configureren
In de Azure-cloudomgevingen moet u de volgende omgevingsvariabelen configureren. Wijzig de namen niet omdat de Azure Identity SDK deze exacte omgevingsnamen vereist. Deze omgevingsvariabelen zijn VEREIST voor de context om DefaultAzureCredential te gebruiken.
AZURE_TENANT_ID:tenantuit de bovenstaande uitvoer van de service-principal.AZURE_CLIENT_ID:appIduit de bovenstaande uitvoer van de service-principal.AZURE_CLIENT_SECRET:passworduit de bovenstaande uitvoer van de service-principal.
3. Azure-abonnementen met een service-principal opnaalen
Gebruik de nieuwe service-principal voor verificatie bij Azure en vermeld uw abonnementen.
Installeer de afhankelijkheden: Azure SDK voor Identiteit,Azure Subscriptions SDK.
npm install @azure/identity @azure/arm-subscriptions --saveMaak een JavaScript-bestand met de naamlist.js, met de volgende code:
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))Als u geen omgevingsvariabelen instelt, vervangt u de referentiereeksen door uw waarden.
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";Voer het bestand uit om de lijst met resourcegroep weer te geven:
node list.jsVolledige voorbeeldcode en package.json weergeven:
Volgende stappen
- Geschiedenis van resourcebewerkingen weergeven
- Een web-app maken met een beveiligde domeinnaam
- U kunt ook een service-principal maken met: