Beheerde identiteiten voor Azure-resources gebruiken op een Azure VM om een toegangstoken te verkrijgen

Beheerde identiteiten voor Azure-resources is een functie van Microsoft Entra ID. Voor alle Azure-services die beheerde identiteiten voor Azure-resources ondersteunen, geldt een eigen tijdlijn. Controleer de beschikbaarheidsstatus van beheerde identiteiten voor uw resource en eventuele bekende problemen voordat u begint.

Beheerde identiteiten voor Azure-resources bieden Azure-services met een automatisch beheerde identiteit in Microsoft Entra ID. U kunt deze identiteit gebruiken om te verifiëren bij elke service die ondersteuning biedt voor Microsoft Entra-verificatie, zonder referenties in uw code te hebben.

Dit artikel bevat verschillende code- en scriptvoorbeelden voor het verkrijgen van tokens. Het bevat ook richtlijnen voor het verwerken van het verlopen van tokens en HTTP-fouten.

Vereisten

Als u van plan bent de Azure PowerShell-voorbeelden in dit artikel te gebruiken, moet u de nieuwste versie van Azure PowerShell installeren.

Belangrijk

  • Bij alle voorbeeldcode/-script in dit artikel wordt ervan uitgegaan dat de client wordt uitgevoerd op een virtuele machine met beheerde identiteiten voor Azure-resources. Gebruik de functie 'Verbinding maken' van de virtuele machine in de Azure Portal om extern verbinding te maken met uw VM. Zie Beheerde identiteiten voor Azure-resources configureren op een VM met behulp van de Azure Portal of een van de artikelen over andere varianten (met behulp van PowerShell, CLI, een sjabloon of een Azure SDK) voor meer informatie over het inschakelen van beheerde identiteiten voor Azure-resources op een VM.

Belangrijk

  • De beveiligingsgrens van beheerde identiteiten voor Azure-resources is de resource waarin de identiteit wordt gebruikt. Alle code/scripts die op een virtuele machine worden uitgevoerd, kunnen tokens aanvragen en ophalen voor alle beheerde identiteiten die erop beschikbaar zijn.

Overzicht

Een clienttoepassing kan een toegangstoken voor alleen-app van een beheerde identiteit aanvragen om toegang te krijgen tot een bepaalde resource. Het token is gebaseerd op de service-principal van de beheerde identiteiten voor Azure-resources. Daarom hoeft de client geen toegangstoken te verkrijgen onder een eigen service-principal. Het token is geschikt voor gebruik als Bearer-token in service-naar-service-aanroepen waarvoor clientreferenties zijn vereist.

Koppeling Omschrijving
Een token ophalen met HTTP Protocoldetails voor token-eindpunt van beheerde identiteiten voor Azure-resources
Een token ophalen met behulp van Azure.Identity Haal een token op met behulp van de Azure.Identity-bibliotheek
Een token ophalen met behulp van de bibliotheek Microsoft.Azure.Services.AppAuthentication voor .NET Voorbeeld van het gebruik van de bibliotheek Microsoft.Azure.Services.AppAuthentication vanuit een .NET-client
Een token ophalen met C# Voorbeeld van het gebruik van een REST-eindpunt van beheerde identiteiten voor Azure-resources van een C#-client
Een token ophalen met Java Voorbeeld van het gebruik van een REST-eindpunt van beheerde identiteiten voor Azure-resources van een Java-client
Een token ophalen met Go Voorbeeld van het gebruik van een REST-eindpunt van beheerde identiteiten voor Azure-resources van een Go-client
Een token ophalen met behulp van PowerShell Voorbeeld van het gebruik van een REST-eindpunt van beheerde identiteiten voor Azure-resources van een PowerShell-client
Een token ophalen met CURL Voorbeeld van het gebruik van een REST-eindpunt van beheerde identiteiten voor Azure-resources van een Bash/CURL-client
Opslaan van token in cache verwerken Richtlijnen voor het verwerken van verlopen toegangstokens
Foutafhandeling Richtlijnen voor het verwerken van HTTP-fouten die zijn geretourneerd door het tokeneindpunt van de beheerde identiteiten voor Azure-resources
Resource-id's voor Azure-services Waar kunt u resource-id's ophalen voor ondersteunde Azure-services

Een token ophalen met HTTP

De fundamentele interface voor het verkrijgen van een toegangstoken is gebaseerd op REST, waardoor het toegankelijk is voor elke clienttoepassing die wordt uitgevoerd op de VM die HTTP REST-aanroepen kan uitvoeren. Deze benadering is vergelijkbaar met het Microsoft Entra-programmeermodel, behalve dat de client een eindpunt gebruikt op de virtuele machine (versus een Microsoft Entra-eindpunt).

Voorbeeldaanvraag met behulp van het Eindpunt van Azure Instance Metadata Service (IMDS) (aanbevolen):

GET 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' HTTP/1.1 Metadata: true
Element Omschrijving
GET Het HTTP-woord dat aangeeft dat u gegevens wilt ophalen van het eindpunt. In dit geval een OAuth-toegangstoken.
http://169.254.169.254/metadata/identity/oauth2/token Het eindpunt van de beheerde identiteiten voor Azure-resources voor de Instance Metadata Service.
api-version Een queryreeksparameter die de API-versie voor het IMDS-eindpunt aangeeft. Gebruik API-versie 2018-02-01 of hoger.
resource Een queryreeksparameter die de app-id-URI van de doelresource aangeeft. Het wordt ook weergegeven in de aud-claim (doelgroep) van het uitgegeven token. In dit voorbeeld wordt een token aangevraagd voor toegang tot Azure Resource Manager, met een app-id-URI van https://management.azure.com/.
Metadata Een headerveld voor HTTP-aanvragen dat is vereist voor beheerde identiteiten. Deze informatie wordt gebruikt als een beperking tegen SSRF-aanvallen (aanvraagvervalsing aan de serverzijde). Deze waarde moet worden ingesteld op 'true', in kleine letters.
object_id (Optioneel) Een querytekenreeksparameter die de object_id van de beheerde identiteit aangeeft waarvoor u het token wilt gebruiken. Vereist als uw VM meerdere door de gebruiker toegewezen beheerde identiteiten heeft.
client_id (Optioneel) Een querytekenreeksparameter die de client_id van de beheerde identiteit aangeeft waarvoor u het token wilt gebruiken. Vereist als uw VM meerdere door de gebruiker toegewezen beheerde identiteiten heeft.
msi_res_id (Optioneel) Een queryreeksparameter die de msi_res_id (Azure Resource ID) aangeeft van de beheerde identiteit waarvoor u het token wilt gebruiken. Vereist als uw VM meerdere door de gebruiker toegewezen beheerde identiteiten heeft.

Voorbeeldantwoord:

HTTP/1.1 200 OK
Content-Type: application/json
{
  "access_token": "eyJ0eXAi...",
  "refresh_token": "",
  "expires_in": "3599",
  "expires_on": "1506484173",
  "not_before": "1506480273",
  "resource": "https://management.azure.com/",
  "token_type": "Bearer"
}
Element Omschrijving
access_token Het aangevraagde toegangstoken. Wanneer u een beveiligde REST API aanroept, wordt het token ingesloten in het Authorization aanvraagheaderveld als een Bearer-token, zodat de API de aanroeper kan verifiëren.
refresh_token Niet gebruikt door beheerde identiteiten voor Azure-resources.
expires_in Het aantal seconden dat het toegangstoken geldig blijft, voordat het verloopt, vanaf het moment van uitgifte. Het moment van uitgifte vindt u in de iat-claim van het token.
expires_on Het tijdsbestek waarin het token verloopt. De datum wordt weergegeven als het aantal seconden van "1970-01-01T0:0:0Z UTC" (komt overeen met de exp-claim van het token).
not_before Het tijdsbestek waarin het toegangstoken van kracht wordt en kan worden geaccepteerd. De datum wordt weergegeven als het aantal seconden van "1970-01-01T0:0:0Z UTC" (komt overeen met de nbf-claim van het token).
resource De resource waarvoor het toegangstoken is aangevraagd, dat overeenkomt met de resource-queryreeksparameter van de aanvraag.
token_type Het type token is een Bearer-toegangstoken, wat betekent dat de resource toegang kan verlenen tot de bearer van dit token.

Een token ophalen met behulp van de Azure Identity-clientbibliotheek

Het gebruik van de Azure Identity-clientbibliotheek is de aanbevolen manier om beheerde identiteiten te gebruiken. Alle Azure-SDK's zijn geïntegreerd met de Azure.Identity-bibliotheek die ondersteuning biedt voor DefaultAzureCredential. Met deze klasse kunt u eenvoudig beheerde identiteiten gebruiken met Azure SDK's. Meer informatie

  1. Installeer het Azure.Identity-pakket en andere vereiste Azure SDK-bibliotheekpakketten, zoals Azure.Security.KeyVault.Secrets.

  2. Gebruik de voorbeeldcode hieronder. U hoeft zich geen zorgen te maken over het ophalen van tokens. U kunt de Azure SDK-clients rechtstreeks gebruiken. De code is bedoeld om te laten zien hoe u het token kunt ophalen, als dat nodig is.

    using Azure.Core;
    using Azure.Identity;
    
    string userAssignedClientId = "<your managed identity client Id>";
    var credential = new DefaultAzureCredential(new DefaultAzureCredentialOptions { ManagedIdentityClientId = userAssignedClientId });
    var accessToken = credential.GetToken(new TokenRequestContext(new[] { "https://vault.azure.net" }));
    // To print the token, you can convert it to string 
    String accessTokenString = accessToken.Token.ToString();
    
    //You can use the credential object directly with Key Vault client.     
    var client = new SecretClient(new Uri("https://myvault.vault.azure.net/"), credential);
    

Een token ophalen met behulp van de bibliotheek Microsoft.Azure.Services.AppAuthentication voor .NET

Voor .NET-toepassingen en -functies is de eenvoudigste manier om te werken met beheerde identiteiten voor Azure-resources via het pakket Microsoft.Azure.Services.AppAuthentication. Met deze bibliotheek kunt u ook uw code lokaal testen op uw ontwikkelcomputer. U kunt uw code testen met behulp van uw gebruikersaccount vanuit Visual Studio, de Azure CLI of geïntegreerde Active Directory-verificatie. Zie de naslaginformatie Microsoft.Azure.Services.AppAuthentication voor meer informatie over lokale ontwikkelopties met deze bibliotheek. In deze sectie wordt beschreven hoe u aan de slag gaat met de bibliotheek in uw code.

  1. Voeg verwijzingen toe naar de NuGet-pakkettenMicrosoft.Azure.Services.AppAuthentication en Microsoft.Azure.KeyVault aan uw toepassing.

  2. Voeg de volgende code toe aan uw toepassing:

    using Microsoft.Azure.Services.AppAuthentication;
    using Microsoft.Azure.KeyVault;
    // ...
    var azureServiceTokenProvider = new AzureServiceTokenProvider();
    string accessToken = await azureServiceTokenProvider.GetAccessTokenAsync("https://management.azure.com/");
    // OR
    var kv = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
    

Voor meer informatie over Microsoft.Azure.Services.AppAuthentication en de bewerkingen die dit beschikbaar maakt, raadpleegt u de referentie Microsoft.Azure.Services.AppAuthentication en het .NET-voorbeeld van App Service en KeyVault met beheerde identiteiten voor Azure-resources.

Een token ophalen met C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Web.Script.Serialization; 

// Build request to acquire managed identities for Azure resources token
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/");
request.Headers["Metadata"] = "true";
request.Method = "GET";

try
{
    // Call /token endpoint
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    // Pipe response Stream to a StreamReader, and extract access token
    StreamReader streamResponse = new StreamReader(response.GetResponseStream()); 
    string stringResponse = streamResponse.ReadToEnd();
    JavaScriptSerializer j = new JavaScriptSerializer();
    Dictionary<string, string> list = (Dictionary<string, string>) j.Deserialize(stringResponse, typeof(Dictionary<string, string>));
    string accessToken = list["access_token"];
}
catch (Exception e)
{
    string errorText = String.Format("{0} \n\n{1}", e.Message, e.InnerException != null ? e.InnerException.Message : "Acquire token failed");
}

Een token ophalen met Java

Gebruik deze JSON-bibliotheek om een token op te halen met Java.

import java.io.*;
import java.net.*;
import com.fasterxml.jackson.core.*;
 
class GetMSIToken {
    public static void main(String[] args) throws Exception {
 
        URL msiEndpoint = new URL("http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/");
        HttpURLConnection con = (HttpURLConnection) msiEndpoint.openConnection();
        con.setRequestMethod("GET");
        con.setRequestProperty("Metadata", "true");
 
        if (con.getResponseCode()!=200) {
            throw new Exception("Error calling managed identity token endpoint.");
        }
 
        InputStream responseStream = con.getInputStream();
 
        JsonFactory factory = new JsonFactory();
        JsonParser parser = factory.createParser(responseStream);
 
        while(!parser.isClosed()){
            JsonToken jsonToken = parser.nextToken();
 
            if(JsonToken.FIELD_NAME.equals(jsonToken)){
                String fieldName = parser.getCurrentName();
                jsonToken = parser.nextToken();
 
                if("access_token".equals(fieldName)){
                    String accesstoken = parser.getValueAsString();
                    System.out.println("Access Token: " + accesstoken.substring(0,5)+ "..." + accesstoken.substring(accesstoken.length()-5));
                    return;
                }
            }
        }
    }
}

Een token ophalen met Go

package main

import (
  "fmt"
  "io/ioutil"
  "net/http"
  "net/url"
  "encoding/json"
)

type responseJson struct {
  AccessToken string `json:"access_token"`
  RefreshToken string `json:"refresh_token"`
  ExpiresIn string `json:"expires_in"`
  ExpiresOn string `json:"expires_on"`
  NotBefore string `json:"not_before"`
  Resource string `json:"resource"`
  TokenType string `json:"token_type"`
}

func main() {
    
    // Create HTTP request for a managed services for Azure resources token to access Azure Resource Manager
    var msi_endpoint *url.URL
    msi_endpoint, err := url.Parse("http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01")
    if err != nil {
      fmt.Println("Error creating URL: ", err)
      return 
    }
    msi_parameters := msi_endpoint.Query()
    msi_parameters.Add("resource", "https://management.azure.com/")
    msi_endpoint.RawQuery = msi_parameters.Encode()
    req, err := http.NewRequest("GET", msi_endpoint.String(), nil)
    if err != nil {
      fmt.Println("Error creating HTTP request: ", err)
      return 
    }
    req.Header.Add("Metadata", "true")

    // Call managed services for Azure resources token endpoint
    client := &http.Client{}
    resp, err := client.Do(req) 
    if err != nil{
      fmt.Println("Error calling token endpoint: ", err)
      return
    }

    // Pull out response body
    responseBytes,err := ioutil.ReadAll(resp.Body)
    defer resp.Body.Close()
    if err != nil {
      fmt.Println("Error reading response body : ", err)
      return
    }

    // Unmarshall response body into struct
    var r responseJson
    err = json.Unmarshal(responseBytes, &r)
    if err != nil {
      fmt.Println("Error unmarshalling the response:", err)
      return
    }

    // Print HTTP response and marshalled response body elements to console
    fmt.Println("Response status:", resp.Status)
    fmt.Println("access_token: ", r.AccessToken)
    fmt.Println("refresh_token: ", r.RefreshToken)
    fmt.Println("expires_in: ", r.ExpiresIn)
    fmt.Println("expires_on: ", r.ExpiresOn)
    fmt.Println("not_before: ", r.NotBefore)
    fmt.Println("resource: ", r.Resource)
    fmt.Println("token_type: ", r.TokenType)
}

Een token ophalen met behulp van PowerShell

In het volgende voorbeeld ziet u hoe u het REST-eindpunt van een PowerShell-client van de beheerde identiteiten voor Azure-resources gebruikt om:

  1. Een toegangstoken verkrijgen.
  2. Gebruik het toegangstoken om een Azure Resource Manager REST API aan te roepen en informatie over de VM op te halen. Zorg ervoor dat u uw abonnements-id, resourcegroepnaam en naam van de virtuele machine vervangt door respectievelijk <SUBSCRIPTION-ID>, <RESOURCE-GROUP>, en <VM-NAME>.
Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F' -Headers @{Metadata="true"}

Voorbeeld van het parseren van het toegangstoken uit het antwoord:

# Get an access token for managed identities for Azure resources
$response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F' `
                              -Headers @{Metadata="true"}
$content =$response.Content | ConvertFrom-Json
$access_token = $content.access_token
echo "The managed identities for Azure resources access token is $access_token"

# Use the access token to get resource information for the VM
$vmInfoRest = (Invoke-WebRequest -Uri 'https://management.azure.com/subscriptions/<SUBSCRIPTION-ID>/resourceGroups/<RESOURCE-GROUP>/providers/Microsoft.Compute/virtualMachines/<VM-NAME>?api-version=2017-12-01' -Method GET -ContentType "application/json" -Headers @{ Authorization ="Bearer $access_token"}).content
echo "JSON returned from call to get VM info:"
echo $vmInfoRest

Een token ophalen met CURL

curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F' -H Metadata:true -s

Voorbeeld van het parseren van het toegangstoken uit het antwoord:

response=$(curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F' -H Metadata:true -s)
access_token=$(echo $response | python -c 'import sys, json; print (json.load(sys.stdin)["access_token"])')
echo The managed identities for Azure resources access token is $access_token

Token opslaan in cache

Het subsysteem voor beheerde identiteiten slaat tokens in de cache op, maar we raden u nog steeds aan om het opslaan van tokens in de cache in uw code te implementeren. U moet zich voorbereiden op scenario's waarin de resource aangeeft dat het token is verlopen.

On-the-wire-aanroepen naar Microsoft Entra ID-resultaat alleen wanneer:

  • Cachemisser treedt op omdat er geen token is in de cache van het subsysteem van beheerde identiteiten voor Azure-resources.
  • Het token in de cache is verlopen.

Foutafhandeling

Het eindpunt van de beheerde identiteiten geeft fouten aan via het statuscodeveld van de header van het HTTP-antwoordbericht, als 4xx- of 5xx-fouten:

Statuscode Reden voor de fout Hoe kan ik het afhandelen
404 Niet gevonden. Het IMDS-eindpunt wordt bijgewerkt. Probeer het opnieuw met Exponentieel uitstel. Zie de richtlijnen hieronder.
410 IMDS doorloopt updates IMDS is binnen 70 seconden beschikbaar
429 Te veel aanvragen. IMDS Beperkingslimiet is bereikt. Probeer het opnieuw met Exponentieel uitstel. Zie de richtlijnen hieronder.
4xx Fout in aanvraag. Een of meer van de aanvraagparameters zijn onjuist. Probeer het niet opnieuw. Bestudeer de foutdetails voor meer informatie. 4xx-fouten zijn ontwerptijdfouten.
5xx Tijdelijke fout van de service. De beheerde identiteiten voor het subsysteem van Azure-resources of de Microsoft Entra-id hebben een tijdelijke fout geretourneerd. Het is veilig om het opnieuw te proberen nadat u ten minste 1 seconde hebt gewacht. Als u het te snel of te vaak opnieuw probeert, kunnen IMDS en/of Microsoft Entra ID een frequentielimietfout retourneren (429).
timeout Het IMDS-eindpunt wordt bijgewerkt. Probeer het opnieuw met Exponentieel uitstel. Zie de richtlijnen hieronder.

Als er een fout optreedt, bevat de bijbehorende HTTP-antwoordtekst JSON met de foutdetails:

Element Omschrijving
error Fout-id.
error_description Uitgebreide beschrijving van fout. Foutbeschrijvingen kunnen op elk moment wijzigen. Schrijf geen code die vertakkingen maakt op basis van waarden in de foutbeschrijving.

HTTP-antwoordreferentie

In deze sectie worden de mogelijke foutreacties beschreven. De status '200 OK' is een geslaagd antwoord en het toegangstoken bevindt zich in de JSON van de antwoordtekst, in het element access_token.

Statuscode Fout Beschrijving van de fout Oplossing
400 Ongeldige aanvraag invalid_resource AADSTS50001: De toepassing met de naam <URI> is niet gevonden in de tenant met de naam <TENANT-ID>. Dit bericht geeft aan of de tenantbeheerder de toepassing niet heeft geïnstalleerd of dat er geen tenantgebruiker toestemming voor heeft gegeven. Mogelijk hebt u de verificatieaanvraag naar de verkeerde tenant verzonden.\ (Alleen Linux)
400 Ongeldige aanvraag bad_request_102 Vereiste metagegevensheader niet opgegeven Het aanvraagheaderveld Metadata ontbreekt in uw aanvraag of is onjuist opgemaakt. De waarde moet worden opgegeven als true, in kleine letters. Zie de 'Voorbeeldaanvraag' in de voorgaande REST-sectie voor een voorbeeld.
401 Onbevoegd unknown_source Onbekende bron <URI> Controleer of de URI van uw HTTP GET-aanvraag correct is opgemaakt. Het gedeelte scheme:host/resource-path moet worden opgegeven als http://localhost:50342/oauth2/token. Zie de 'Voorbeeldaanvraag' in de voorgaande REST-sectie voor een voorbeeld.
invalid_request Er ontbreekt een vereiste parameter aan de aanvraag, de aanvraag bevat een ongeldige parameterwaarde, bevat meerdere keren een parameter of is op een andere manier onjuist ingedeeld.
unauthorized_client De client is niet gemachtigd om een toegangstoken aan te vragen met behulp van deze methode. Dit wordt veroorzaakt door een aanvraag op een VM waarvoor de beheerde identiteiten voor Azure-resources niet correct zijn geconfigureerd. Zie Beheerde identiteiten voor Azure-resources configureren op een VM met behulp van de Azure Portal als u hulp nodig hebt met de VM-configuratie.
access_denied De resource-eigenaar of autorisatieserver heeft de aanvraag geweigerd.
unsupported_response_type De autorisatieserver biedt geen ondersteuning voor het verkrijgen van een toegangstoken met behulp van deze methode.
invalid_scope Het aangevraagde bereik is ongeldig, onbekend of onjuist.
500 Interne serverfout onbekend Kan het token niet ophalen uit de Actieve map. Zie de logboeken in het <bestandspad> voor meer informatie Controleer of de VM beheerde identiteiten voor Azure-resources heeft ingeschakeld. Zie Beheerde identiteiten voor Azure-resources configureren op een VM met behulp van de Azure Portal als u hulp nodig hebt met de VM-configuratie.

Controleer ook of de URI van de HTTP GET-aanvraag correct is opgemaakt, met name de resource-URI die is opgegeven in de querytekenreeks. Zie de voorbeeldaanvraag in de voorgaande REST-sectie voor een voorbeeld of Azure-services die Ondersteuning bieden voor Microsoft Entra-verificatie voor een lijst met services en de bijbehorende resource-id's.

Belangrijk

Richtlijnen opnieuw proberen

Het is raadzaam om het opnieuw te proberen als u een foutcode 404, 429 of 5xx ontvangt (zie Foutafhandeling hierboven). Als u een 410-fout ontvangt, geeft dit aan dat IMDS updates doorloopt en in maximaal 70 seconden beschikbaar is.

Beperkingslimieten zijn van toepassing op het aantal aanroepen dat is gedaan op het IMDS-eindpunt. Wanneer de drempelwaarde voor beperking wordt overschreden, beperkt het IMDS-eindpunt verdere aanvragen terwijl de beperking van kracht is. Gedurende deze periode retourneert het IMDS-eindpunt de HTTP-statuscode 429 ('Te veel aanvragen') en mislukken de aanvragen.

Voor nieuwe pogingen raden we de volgende strategie aan:

Strategie voor opnieuw proberen Instellingen Waarden Hoe werkt het?
ExponentialBackoff Aantal nieuwe pogingen
Min. uitstel
Max. uitstel
Delta-uitstel
Eerste snelle poging
5
0 sec.
60 sec.
2 sec.
false
Poging 1, vertraging 0 sec.
Poging 2, vertraging ~2 sec.
Poging 3, vertraging ~6 sec.
Poging 4, vertraging ~14 sec.
Poging 5, vertraging ~30 sec.

Resource-id's voor Azure-services

Zie Azure-services met ondersteuning voor beheerde identiteiten voor een lijst met resources die beheerde identiteiten voor Azure-resources ondersteunen.

Volgende stappen