Cara menggunakan identitas terkelola untuk sumber daya Azure pada komputer virtual Azure untuk memperoleh token akses

Identitas terkelola untuk sumber daya Azure adalah fitur ID Microsoft Entra. Setiap layanan Azure yang mendukung identitas terkelola untuk sumber daya Azure tunduk pada garis waktu mereka masing-masing. Pastikan Anda meninjau status ketersediaan identitas terkelola untuk sumber daya dan masalah yang diketahui sebelum Anda memulai.

Identitas terkelola untuk sumber daya Azure memberikan layanan Azure identitas terkelola otomatis di Microsoft Entra ID. Anda dapat menggunakan identitas ini untuk mengautentikasi ke layanan apa pun yang mendukung autentikasi Microsoft Entra, tanpa memiliki kredensial dalam kode Anda.

Artikel ini menyediakan berbagai contoh kode dan skrip untuk akuisisi token. Artikel ini juga berisi panduan tentang penanganan kedaluwarsa token dan kesalahan HTTP.

Prasyarat

Jika Anda berencana menggunakan contoh Azure PowerShell di artikel ini, pastikan untuk memasang versi terbaru Azure PowerShell.

Penting

  • Semua contoh kode/skrip dalam artikel ini mengasumsikan klien berjalan pada komputer virtual dengan identitas terkelola untuk sumber daya Azure. Gunakan fitur "Sambungkan" komputer virtual di portal Microsoft Azure, untuk menyambungkan ke komputer virtual Anda dari jarak jauh. Untuk detail tentang mengaktifkan identitas terkelola untuk sumber daya Azure pada komputer virtual, lihat Mengonfigurasi identitas terkelola untuk sumber daya Azure pada komputer virtual menggunakan portal Microsoft Azure, atau salah satu artikel varian (menggunakan PowerShell, CLI, templat, atau Azure SDK).

Penting

  • Batas keamanan identitas terkelola untuk sumber daya Azure, adalah sumber daya tempat identitas digunakan. Semua kode/skrip yang berjalan pada komputer virtual dapat meminta dan mengambil token untuk setiap identitas terkelola yang tersedia di dalamnya.

Gambaran Umum

Aplikasi klien dapat meminta token akses khusus aplikasi dari identitas terkelola untuk mengakses sumber daya tertentu. Token didasarkan pada identitas terkelola untuk prinsip layanan sumber daya Azure. Dengan demikian, klien tidak perlu mendapatkan token akses di bawah perwakilan layanannya sendiri. Token ini cocok untuk digunakan sebagai token pembawa dalam panggilan layanan ke layanan yang membutuhkan info masuk klien.

Tautkan Deskripsi
Dapatkan token menggunakan HTTP Detail protokol untuk identitas terkelola untuk titik akhir token sumber daya Azure
Mendapatkan token menggunakan Azure.Identity Mendapatkan token menggunakan Azure.Identity
Dapatkan token menggunakan pustaka Microsoft.Azure.Services.AppAuthentication untuk .NET Contoh penggunaan pustaka Microsoft.Azure.Services.AppAuthentication dari klien .NET
Mendapatkan token menggunakan C # Contoh penggunaan identitas terkelola untuk sumber daya Azure titik akhir REST dari klien C#
Dapatkan token menggunakan Java Contoh penggunaan identitas terkelola untuk titik akhir REST sumber daya Azure dari klien Java
Dapatkan token menggunakan Go Contoh penggunaan identitas terkelola untuk titik akhir REST sumber daya Azure dari klien Go
Dapatkan token menggunakan PowerShell Contoh penggunaan identitas terkelola untuk titik akhir REST sumber daya Azure dari klien PowerShell
Dapatkan token menggunakan CURL Contoh penggunaan identitas terkelola untuk titik akhir REST sumber daya Azure dari klien Bash/CURL
Menangani penembolokan token Panduan untuk menangani token akses yang kedaluwarsa
Penanganan kesalahan Panduan untuk menangani kesalahan HTTP yang dikembalikan dari identitas terkelola untuk titik akhir token sumber daya Azure
Sumber Daya untuk layanan Azure Tempat mendapatkan ID sumber daya untuk layanan Azure yang didukung

Dapatkan token menggunakan HTTP

Antarmuka mendasar untuk memperoleh token akses didasarkan pada REST, membuatnya dapat diakses oleh aplikasi klien yang berjalan pada komputer virtual yang dapat melakukan panggilan HTTP REST. Pendekatan ini mirip dengan model pemrograman Microsoft Entra, kecuali klien menggunakan titik akhir pada komputer virtual (vs titik akhir Microsoft Entra).

Contoh permintaan menggunakan titik akhir Azure Instance Metadata Service (IMDS) (disarankan):

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
Elemen Deskripsi
GET Metode permintaan HTTP, menunjukkan Anda ingin mengambil data dari titik akhir. Dalam hal ini, token akses OAuth.
http://169.254.169.254/metadata/identity/oauth2/token Identitas terkelola untuk titik akhir sumber daya Azure untuk Instance Metadata Service.
api-version Parameter untai (karakter) kueri, menunjukkan versi API untuk titik akhir IMDS. Gunakan versi API 2018-02-01 atau yang lebih baru.
resource Parameter untai (karakter) kueri, menunjukkan URI ID Aplikasi dari sumber daya target. Ini juga merupakan klaim aud (audiens) dari token yang dikeluarkan. Contoh ini meminta token untuk mengakses Azure Resource Manager, yang memiliki URI ID Aplikasi https://management.azure.com/.
Metadata Bidang header permintaan HTTP yang diperlukan oleh identitas terkelola. Informasi ini digunakan sebagai mitigasi terhadap serangan pemalsuan permintaan sisi server (SSRF). Nilai ini harus diatur ke "true", dalam semua huruf kecil.
object_id (Opsional) Parameter untai (karakter) kueri, menunjukkan object_id identitas terkelola yang Anda inginkan untuk token. Diperlukan, jika komputer virtual Anda memiliki beberapa identitas terkelola yang ditetapkan pengguna.
client_id (Opsional) Parameter untai (karakter) kueri, menunjukkan client_id identitas terkelola yang Anda inginkan untuk token. Diperlukan, jika komputer virtual Anda memiliki beberapa identitas terkelola yang ditetapkan pengguna.
msi_res_id (Opsional) Parameter string kueri, menunjukkan msi_res_id (ID Sumber Daya Azure) dari identitas terkelola yang Anda inginkan untuk token. Diperlukan, jika komputer virtual Anda memiliki beberapa identitas terkelola yang ditetapkan pengguna.

Respons sampel:

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"
}
Elemen Deskripsi
access_token Token akses yang diminta. Saat Anda memanggil REST API yang aman, token disematkan di bidang header permintaan Authorization sebagai token "pembawa", yang memungkinkan API untuk mengautentikasi pemanggil.
refresh_token Tidak digunakan oleh identitas terkelola untuk sumber daya Azure.
expires_in Jumlah detik token akses terus valid, sebelum kedaluwarsa, dari waktu penerbitan. Waktu penerbitan dapat ditemukan dalam klaim iat token.
expires_on Rentang waktu kapan token akses kedaluwarsa. Tanggal tersebut dinyatakan sebagai jumlah detik dari "1970-01-01T0:0:0Z UTC" (sesuai dengan klaim exp token).
not_before Rentang waktu kapan token akses berlaku. Tanggal tersebut dinyatakan sebagai jumlah detik dari "1970-01-01T0:0:0Z UTC" (sesuai dengan klaim nbf token).
resource Sumber daya token akses diminta, yang cocok dengan parameter string kueri resource dari permintaan tersebut.
token_type Jenis token, yang merupakan token akses "Pembawa", yang berarti sumber daya dapat memberikan akses ke pembawa token ini.

Mendapatkan token menggunakan pustaka klien identitas Azure

Menggunakan pustaka klien identitas Azure adalah cara yang disarankan untuk menggunakan identitas terkelola. Semua SDK Azure terintegrasi dengan pustaka Azure.Identityyang menyediakan dukungan untuk DefaultAzureCredential. Kelas ini memudahkan penggunaan Identitas Terkelola dengan SDK Azure.Pelajari selengkapnya

  1. Instal paket Azure.Identity dan paket pustaka SDK Azure lainnya yang diperlukan, seperti Azure.Security.KeyVault.Secrets.

  2. Gunakan sampel kode di bawah ini. Anda tidak perlu khawatir untuk mendapatkan token. Anda dapat langsung menggunakan klien SDK Azure. Kode ini untuk menunjukkan cara mendapatkan token, jika diperlukan.

    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);
    

Dapatkan token menggunakan pustaka Microsoft.Azure.Services.AppAuthentication untuk .NET

Untuk aplikasi dan fungsi .NET, cara paling sederhana untuk bekerja dengan identitas terkelola untuk sumber daya Azure adalah melalui paket Microsoft.Azure.Services.AppAuthentication. Pustaka ini juga akan memungkinkan Anda untuk menguji kode secara lokal pada mesin pengembangan. Anda dapat menguji kode menggunakan akun pengguna dari Visual Studio, Azure CLI, atau Autentikasi Terintegrasi AD DS. Untuk informasi selengkapnya tentang opsi pengembangan lokal dengan pustaka ini, lihat referensi Microsoft.Azure.Services.AppAuthentication. Bagian ini memperlihatkan kepada Anda cara memulai pustaka di kode Anda.

  1. Tambahkan referensi ke paket Microsoft.Azure.Services.AppAuthentication dan Microsoft.Azure.KeyVault NuGet ke aplikasi Anda.

  2. Tambahkan kode berikut ke fungsi Anda:

    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));
    

Untuk mempelajari selengkapnya tentang Microsoft.Azure.Services.AppAuthentication dan operasi yang diserlapnya, lihat referensi Microsoft.Azure.Services.AppAuthentication dan App Service dan KeyVault dengan identitas terkelola untuk sumber daya Azure .NET sampel.

Mendapatkan token menggunakan 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");
}

Mendapatkan token menggunakan Java

Gunakan pustaka JSON ini untuk mengambil token menggunakan 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;
                }
            }
        }
    }
}

Mendapatkan token menggunakan 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)
}

Dapatkan token menggunakan PowerShell

Contoh berikut ini menunjukkan cara menggunakan identitas terkelola untuk titik akhir REST sumber daya Azure dari klien PowerShell untuk:

  1. Memperoleh token akses.
  2. Gunakan token akses untuk memanggil Azure Resource Manager REST API dan dapatkan informasi tentang komputer virtual. Pastikan untuk mengganti ID langganan Anda, nama grup sumber daya, dan nama komputer virtual untuk masing-masing <SUBSCRIPTION-ID>, <RESOURCE-GROUP>, dan <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"}

Contoh cara mengurai token akses dari respons:

# 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

Dapatkan token menggunakan 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

Contoh cara mengurai token akses dari respons:

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

Penembolokan token

Subsistem identitas terkelola menyimpan token dalam cache, tetapi kami tetap menyarankan Anda untuk menerapkan penembolokan token dalam kode Anda. Anda harus mempersiapkan skenario di mana sumber daya menunjukkan bahwa token kedaluwarsa.

Panggilan sesama ke MICROSOFT Entra ID hanya menghasilkan ketika:

  • Ketinggalan cache terjadi karena tidak ada token dalam identitas terkelola untuk cache subsistem sumber daya Azure.
  • Token singgahan kedaluwarsa.

Penanganan kesalahan

Titik akhir identitas terkelola menandakan kesalahan melalui bidang kode status dari header pesan respons HTTP, sebagai kesalahan 4xx atau 5xx:

Kode status Alasan Kesalahan Cara Menangani
404 Tidak Ditemukan. Titik akhir IMDS sedang diperbarui. Coba lagi dengan Backoff Eksponensial. Lihat pedoman di bawah ini.
410 IMDS sedang melalui pembaruan IMDS akan tersedia dalam waktu 70 detik
429 Terlalu banyak Permintaan. Batas Pembatasan IMDS tercapai. Coba lagi dengan Backoff Eksponensial. Lihat pedoman di bawah ini.
4xx Kesalahan dalam permintaan. Satu atau beberapa parameter permintaan salah. Jangan coba lagi. Periksa detail kesalahan untuk informasi selengkapnya. 4xx kesalahan adalah kesalahan waktu desain.
5xx Kesalahan sementara dari layanan. Identitas terkelola untuk subsistem sumber daya Azure atau ID Microsoft Entra mengembalikan kesalahan sementara. Aman untuk mencoba kembali setelah menunggu setidaknya 1 detik. Jika Anda mencoba kembali terlalu cepat atau terlalu sering, IMDS dan/atau ID Microsoft Entra dapat mengembalikan kesalahan batas laju (429).
waktu habis Titik akhir IMDS sedang diperbarui. Coba lagi dengan Backoff Eksponensial. Lihat pedoman di bawah ini.

Jika terjadi kesalahan, isi respons HTTP yang sesuai memuat objek JSON dengan detail kesalahan:

Elemen Deskripsi
kesalahan Pengidentifikasi kesalahan.
error_description Deskripsi kesalahan Verbose. Deskripsi kesalahan dapat berubah sewaktu-waktu. Jangan menulis kode yang bercabang berdasarkan nilai dalam deskripsi kesalahan.

Referensi respons HTTP

Bagian ini mendokumentasikan kemungkinan respons kesalahan. Status "200 OK" adalah respons yang berhasil, dan token akses terdapat dalam tubuh respons JSON, di elemen access_token.

Kode status Kesalahan Deskripsi_kesalahan Solusi
400 Permintaan Buruk invalid_resource AADSTS50001: Aplikasi bernama <URI> tidak ditemukan di penyewa bernama <TENANT-ID>. Pesan ini menunjukkan jika administrator penyewa belum menginstal aplikasi atau tidak ada pengguna penyewa yang menyetujuinya. Anda mungkin telah mengirim permintaan autentikasi ke tenant yang salah.\ (Hanya Linux)
400 Permintaan Buruk bad_request_102 Header metadata yang diperlukan tidak ditentukan Bisa jadi Metadata bidang header permintaan hilang dari permintaan Anda, atau formatnya salah. Nilai harus ditentukan sebagai true, dalam semua huruf kecil. Lihat "Permintaan sampel" di bagian REST sebelumnya misalnya.
401 Tidak Sah unknown_source <URI> Sumber Tidak Dikenal Verifikasi bahwa URI permintaan HTTP GET Anda diformat dengan benar. Porsi scheme:host/resource-path harus ditentukan sebagai http://localhost:50342/oauth2/token. Lihat "Permintaan sampel" di bagian REST sebelumnya misalnya.
invalid_request Permintaan tersebut tidak memiliki parameter wajib, termasuk nilai parameter yang tidak valid, menyertakan parameter lebih dari sekali, atau dalam format yang salah.
unauthorized_client Klien tidak berwenang untuk meminta token akses menggunakan metode ini. Disebabkan oleh permintaan pada komputer virtual yang tidak memiliki identitas terkelola untuk sumber daya Azure yang dikonfigurasi dengan benar. Lihat Mengonfigurasi identitas terkelola untuk sumber daya Azure pada komputer virtual menggunakan portal Microsoft Azure jika Anda memerlukan bantuan dengan konfigurasi komputer virtual.
access_denied Pemilik sumber daya atau server otorisasi menolak permintaan tersebut.
unsupported_response_type Server otorisasi tidak mendukung memperoleh token akses menggunakan metode ini.
invalid_scope Lingkup yang diminta tidak sah, tak diketahui, atau cacat.
500 Kesalahan server internal unknown Gagal mengambil token dari direktori Active. Untuk detailnya, lihat log di <jalur file> Verifikasi bahwa mesin virtual telah mengaktifkan identitas terkelola untuk sumber daya Azure. Lihat Mengonfigurasi identitas terkelola untuk sumber daya Azure pada komputer virtual menggunakan portal Microsoft Azure jika Anda memerlukan bantuan dengan konfigurasi komputer virtual.

Verifikasi juga bahwa URI permintaan HTTP GET Anda diformat dengan benar, terutama URI sumber daya yang ditentukan dalam untai (karakter) kueri. Lihat "Permintaan sampel" di bagian REST sebelumnya misalnya, atau layanan Azure yang mendukung autentikasi Microsoft Entra untuk daftar layanan dan ID sumber daya masing-masing.

Penting

  • IMDS tidak dimaksudkan untuk digunakan di belakang proksi dan tidak didukung untuk melakukannya. Untuk contoh cara melakukan bypass atau melewati proksi, lihat Sampel Azure Instance Metadata.

Panduan percobaan ulang

Sebaiknya coba kembali jika Anda menerima kode kesalahan 404, 429, atau 5xx (lihat Penanganan kesalahan di atas). Jika Anda menerima kesalahan 410, itu menunjukkan bahwa IMDS sedang melalui pembaruan dan akan tersedia dalam maksimum 70 detik.

Batas pembatasan berlaku untuk jumlah panggilan yang dilakukan ke titik akhir IMDS. Ketika ambang batas pembatasan terlampaui, titik akhir IMDS membatasi permintaan lebih lanjut saat pembatasan berlaku. Selama periode ini, titik akhir IMDS mengembalikan kode status HTTP 429 ("Terlalu banyak permintaan"), dan permintaan gagal.

Untuk mencoba kembali, kami merekomendasikan strategi berikut:

Coba lagi strategi Pengaturan Nilai Cara kerjanya
ExponentialBackoff Jumlah coba lagi
Minimal back-off
Maksimal back-off
Delta back-off
Coba lagi cepat pertama
5
0 detik
60 detik
2 detik
salah
Percobaan 1 - tunda 0 detik
Percobaan 2 - tunda ~ 2 detik
Percobaan 3 - tunda ~ 6 detik
Percobaan 4 - tunda ~ 14 detik
Percobaan 5 - tunda ~ 30 detik

ID sumber daya untuk layanan Azure

Lihat Azure Services dengan dukungan identitas terkelola untuk melihat daftar sumber daya yang mendukung identitas terkelola untuk sumber daya Azure.

Langkah berikutnya