Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure kaynakları için yönetilen kimlikler, Azure hizmetlerine Microsoft Entra ID üzerinde otomatik olarak yönetilen bir kimlik sağlar. Bu kimliği kullanarak, Microsoft Entra kimlik doğrulamasını destekleyen tüm hizmetlerde kodunuzda kimlik bilgileri bulunmasına gerek kalmadan kimlik doğrulaması yapabilirsiniz.
Bu makalede belirteç alımı için çeşitli kod ve betik örnekleri sağlanmaktadır. Ayrıca token süresinin dolması ve HTTP hatalarının işlenmesi hakkında yönergeler içerir.
Önkoşullar
- Azure kaynakları için yönetilen kimlikler özelliği hakkında bilgi sahibi değilseniz bu genel bakışı inceleyin. Azure hesabınız yoksa, devam etmeden önce ücretsiz bir hesaba kaydolun.
Bu makaledeki Azure PowerShell örneklerini kullanmayı planlıyorsanız Azure PowerShell'in en son sürümünü yüklediğinizden emin olun.
Önemli
- Bu makaledeki tüm örnek kod/betik, istemcinin Azure kaynakları için yönetilen kimliklere sahip bir sanal makinede çalıştığını varsayar. Vm'nize uzaktan bağlanmak için Azure portalındaki "Bağlan" sanal makinesi özelliğini kullanın. Vm'de Azure kaynakları için yönetilen kimlikleri etkinleştirme hakkında ayrıntılı bilgi için bkz. Azure portalını veya değişken makalelerden birini (PowerShell, CLI, şablon veya Azure SDK kullanarak) kullanarak VM'de Azure kaynakları için yönetilen kimlikleri yapılandırma.
Önemli
- Azure kaynakları için yönetilen kimliklerin güvenlik sınırı, kimliğin kullanıldığı kaynaktır. Sanal makinede çalışan tüm kodlar/betikler, üzerinde bulunan tüm yönetilen kimlikler için belirteç isteyebilir ve alabilir.
Genel Bakış
İstemci uygulaması, belirli bir kaynağa erişmek için yönetilen kimlik sadece uygulama erişim belirteci isteyebilir. Belirteç, Azure kaynakları hizmet sorumlusu için yönetilen kimlikleri temel alır. Bu nedenle, istemcinin kendi hizmet ilkesi altında bir erişim belirteci alması gerekmez. Belirteç, istemci kimlik bilgileri gerektiren hizmet-hizmet çağrılarında taşıyıcı belirteç olarak kullanıma uygundur.
| Bağlantı | Açıklama |
|---|---|
| HTTP kullanarak belirteç alma | Azure kaynakları için yönetilen kimliklerin belirteç uç noktası protokol ayrıntıları |
| Azure.Identity kullanarak belirteç alma | Azure.Identity kullanarak C# istemcisinden Azure kaynakları REST uç noktası için yönetilen kimlikleri kullanma örneği |
| C# kullanarak belirteç al | HttpClient kullanarak C# istemcisinden Azure kaynakları REST uç noktası için yönetilen kimlikleri kullanma örneği |
| Java kullanarak belirteç alma | Java istemcisinden Azure kaynakları REST uç noktası için yönetilen kimlikleri kullanma örneği |
| Go kullanarak belirteç alma | Go istemcisinden Azure kaynakları REST uç noktası için yönetilen kimlikleri kullanma örneği |
| PowerShell kullanarak belirteç alma | PowerShell istemcisinden Azure kaynakları REST uç noktası için yönetilen kimlikleri kullanma örneği |
| CURL kullanarak belirteç alma | Bash/CURL istemcisinden Azure kaynakları REST uç noktası için yönetilen kimlikleri kullanma örneği |
| Belirteç önbelleğe alma işlemini işleme | Süresi dolan erişim belirteçlerini işleme kılavuzu |
| Hata işleme | Azure kaynakları belirteci uç noktası için yönetilen kimliklerden döndürülen HTTP hatalarını işleme kılavuzu |
| Azure hizmetleri için kaynak kimlikleri | Desteklenen Azure hizmetleri için kaynak kimlikleri nereden alınır? |
HTTP kullanarak belirteç edinme
Erişim belirteci almak için temel arabirim REST'i temel alır ve bu da BUNU VM üzerinde çalışan ve HTTP REST çağrıları yapabilen tüm istemci uygulamaları için erişilebilir hale getirir. Bu yaklaşım Microsoft Entra programlama modeline benzerdir; ancak istemci, Microsoft Entra uç noktasına karşılık sanal makinedeki bir uç noktayı kullanır.
Azure Örnek Meta Veri Hizmeti (IMDS) uç noktasını kullanan örnek istek (önerilir):
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
| Öğe | Açıklama |
|---|---|
GET |
Uç noktadan veri almak istediğinizi belirten HTTP fiili. Bu durumda, bir OAuth erişim belirteci. |
http://169.254.169.254/metadata/identity/oauth2/token |
Örnek Meta Veri Hizmeti için Azure kaynakları uç noktası için yönetilen kimlikler. |
api-version |
IMDS uç noktası için API sürümünü gösteren bir sorgu dizesi parametresi.
2018-02-01 veya daha üst bir API sürümünü kullanın. |
resource |
Hedef kaynağın Uygulama Kimliği URI'sini gösteren bir sorgu dizesi parametresi. Ayrıca verilen belirtecin aud (hedef kitle) talebinde de görünür. Bu örnek, Azure Resource Manager'a erişmek için Uygulama Kimliği URI'sine sahip olan bir belirteç talep etmektedir https://management.azure.com/. |
Metadata |
Yönetilen kimlikler için gereken bir HTTP isteği üst bilgi alanı. Bu bilgiler, sunucu tarafı istek sahteciliği (SSRF) saldırılarına karşı bir risk azaltma olarak kullanılır. Bu değer küçük harfle "true" olarak ayarlanmalıdır. |
object_id |
(İsteğe bağlı) İstediğiniz yönetilen kimliğin object_id'sini belirten bir sorgu dizesi parametresi. Vm'nizde kullanıcı tarafından atanan birden çok yönetilen kimlik varsa gereklidir. |
client_id |
(İsteğe bağlı) Jeton almak istediğiniz yönetilen kimliğin client_id'sini belirten bir sorgu dizesi parametresi. Vm'nizde kullanıcı tarafından atanan birden çok yönetilen kimlik varsa gereklidir. |
msi_res_id |
(İsteğe bağlı) Azure Kaynak Kimliği olan msi_res_id'yi belirtmek istediğiniz yönetilen kimliğe ait jetonu almak için bir sorgu dizesi parametresi. Vm'nizde kullanıcı tarafından atanan birden çok yönetilen kimlik varsa gereklidir. |
Örnek yanıt:
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"
}
| Öğe | Açıklama |
|---|---|
access_token |
İstenen erişim belirteci. Güvenli bir REST API çağırdığınızda, belirteç istek üst bilgisi alanına "taşıyıcı" belirteç olarak eklenir Authorization ve API'nin çağıranın kimliğini doğrulamasına olanak sağlar. |
refresh_token |
Azure kaynakları için yönetilen kimlikler tarafından kullanılmaz. |
expires_in |
Erişim belirtecinin süresi dolmadan önce, verme zamanından itibaren geçerli olmaya devam eden saniye sayısı. Verilme zamanı, belirtecin iat sözleşmesinde ya da hak beyanında bulunabilir. |
expires_on |
Erişim belirtecinin süresi dolduğunda zaman aralığı. Tarih, "1970-01-01T0:0:0Z UTC" (belirtecin exp talebine karşılık gelir) saniye sayısı olarak gösterilir. |
not_before |
Erişim belirtecinin etkin olduğu ve kabul edilebildiği zaman aralığı. Tarih, "1970-01-01T0:0:0Z UTC" (belirtecin nbf talebine karşılık gelir) saniye sayısı olarak gösterilir. |
resource |
Erişim belirtecinin istendiği kaynak, isteğin resource sorgu dizesi parametresiyle eşleşir. |
token_type |
"Taşıyıcı" erişim belirteci olan belirteç türü, kaynağın bu belirtecin taşıyıcısına erişim verebileceği anlamına gelir. |
Azure Identity istemci kütüphanesini kullanarak token alma
Yönetilen kimlikleri kullanmanın önerilen yolu Azure Identity istemci kitaplığını kullanmaktır. Aşağıdaki adımları tamamlayın:
Azure.Identity paketini ve Azure.Security.KeyVault.Secrets gibi diğer gerekli Azure SDK kitaplık paketlerini yükleyin.
Aşağıdaki örnek kodu kullanın. Jetonları alma konusunda endişelenmenize gerek yok. Azure SDK istemcilerini doğrudan kullanabilirsiniz. Kod, gerekirse belirtecin nasıl alınacağını göstermek içindir.
using Azure.Core; using Azure.Identity; using Azure.Security.KeyVault.Secrets; ManagedIdentityCredential credential = new( ManagedIdentityId.FromUserAssignedClientId("<managed_identity_client_ID>")); // Option 1: Explicit token acquisition. Manually fetch the token and convert to a string, if necessary. AccessToken accessToken = await credential.GetTokenAsync( new TokenRequestContext(["https://vault.azure.net"])); string accessTokenString = accessToken.Token; // Option 2: Implicit token acquisition. Pass the credential object to the Azure service client constructor. // Token acquisition is triggered on the GetSecretAsync method call. SecretClient client = new(new Uri("https://myvault.vault.azure.net/"), credential); KeyVaultSecret secret = await client.GetSecretAsync("MySecret");
Daha fazla bilgi için bkz . Kullanıcı tarafından atanan yönetilen kimlik kullanma ve Sistem tarafından atanan yönetilen kimlik kullanma.
C kullanarak belirteç alma#
using System;
using System.Net.Http;
using Newtonsoft.Json.Linq;
// Construct HttpClient
var httpClient = new HttpClient
{
DefaultRequestHeaders =
{
{ "Metadata", Boolean.TrueString }
}
};
// Construct URI to call
var resource = "https://management.azure.com/";
var uri = $"http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource={resource}";
// Make call
var response = await httpClient.GetAsync(uri);
try
{
response.EnsureSuccessStatusCode();
}
catch (HttpRequestException)
{
var error = await response.Content.ReadAsStringAsync();
Console.WriteLine(error);
throw;
}
// Parse response using Newtonsoft.Json
var content = await response.Content.ReadAsStringAsync();
var obj = JObject.Parse(content);
var accessToken = obj["access_token"];
Console.WriteLine(accessToken);
Java kullanarak belirteç alma
Java kullanarak belirteç almak için bu JSON kitaplığını kullanın.
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;
}
}
}
}
}
Go ile bir belirteç edinme
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)
}
PowerShell kullanarak belirteç alma
Aşağıdaki örnekte, Bir PowerShell istemcisinden Azure kaynakları REST uç noktası için yönetilen kimliklerin nasıl kullanılacağı gösterilmektedir:
- Erişim belirteci edinin.
- Azure Resource Manager REST API'sini çağırmak ve VM hakkında bilgi almak için erişim belirtecini kullanın. Sırasıyla
<SUBSCRIPTION-ID>,<RESOURCE-GROUP>ve<VM-NAME>öğeleri yerine abonelik kimliğinizi, kaynak grubu adınızı ve sanal makine adınızı koyduğunuzdan emin olun.
Invoke-RestMethod -Method GET -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"}
Yanıttan erişim belirtecini ayrıştırma örneği:
# Get an access token for managed identities for Azure resources
$resource = 'https://management.azure.com'
$response = Invoke-RestMethod -Method GET `
-Uri "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=$resource" `
-Headers @{ Metadata="true" }
$accessToken = $response.access_token
Write-Host "Access token using a User-Assigned Managed Identity is $accessToken"
# Use the access token to get resource information for the VM
$secureToken = $accessToken | ConvertTo-SecureString -AsPlainText
$vmInfoRest = Invoke-RestMethod -Method GET `
-Uri 'https://management.azure.com/subscriptions/<SUBSCRIPTION-ID>/resourceGroups/<RESOURCE-GROUP>/providers/Microsoft.Compute/virtualMachines/<VM-NAME>?api-version=2017-12-01' `
-ContentType 'application/json' `
-Authentication Bearer `
-Token $secureToken
Write-Host "JSON returned from call to get VM info: $($vmInfoRest.content)"
CURL kullanarak belirteç alın
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
Yanıttan erişim belirtecini ayrıştırma örneği:
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 Access token using a User-Assigned Managed Identity is $access_token
Belirteç önbelleğe alma
Yönetilen kimlikler alt sistemi belirteçleri önbelleğe alır, ancak yine de kodunuzda belirteç önbelleğe alma uygulamanızı öneririz. Belirtecin süresinin dolduğunu kaynağın gösterdiği senaryolara hazırlıklı olmalısınız.
Microsoft Entra Id'ye yapılan kablolu aramalar yalnızca aşağıdaki durumlarda sonuçlanır:
- Azure kaynakları için yönetilen kimlikler alt sistem önbelleğinde belirteç bulunmaması nedeniyle önbellek hatası oluşur.
- Önbelleğe alınan jetonun süresi doldu.
Hata yönetimi
Yönetilen kimlikler uç noktası, HTTP yanıt iletisi üst bilgisinin durum kodu alanı aracılığıyla hataları 4xx veya 5xx hataları olarak işaretler:
| Durum Kodu | Hata Nedeni | Nasıl Ele Alınır |
|---|---|---|
| 404 Bulunamadı. | IMDS uç noktası güncelleştiriliyor. | Üstel Geri Çekilme ile yeniden deneyin. Aşağıdaki yönergelere bakın. |
| 410 | IMDS güncelleştirmelerden geçiyor | IMDS 70 saniye içinde kullanılabilir olacak |
| 429 Çok fazla istek var. | IMDS Kısıtlama sınırına ulaşıldı. | Üstel Geri Çekilme ile yeniden deneyin. Aşağıdaki yönergelere bakın. |
| İstekte 4xx Hatası. | İstek parametrelerinden biri veya daha fazlası yanlıştı. | Yeniden denemeyin. Daha fazla bilgi için hata ayrıntılarını inceleyin. 4xx hataları tasarım zamanı hatalarıdır. |
| 5xx hizmetten gelen geçici hata. | Azure kaynakları alt sistemi veya Microsoft Entra Kimliği için yönetilen kimlikler geçici bir hata iletisi döndürdü. | En az 1 saniye bekledikten sonra yeniden denemek güvenlidir. Çok hızlı veya çok sık yeniden denerseniz, IMDS ve/veya Microsoft Entra Id hız sınırı hatası (429) döndürebilir. |
| zaman aşımı | IMDS uç noktası güncelleştiriliyor. | Üstel Geri Çekilme ile yeniden deneyin. Daha sonra yönergelere bakın. |
Bir hata oluşursa, ilgili HTTP yanıt gövdesinde hata ayrıntılarıyla birlikte JSON bulunur:
| Öğe | Açıklama |
|---|---|
| hata | Hata tanımlayıcısı. |
| hata açıklaması | Hatanın ayrıntılı açıklaması. Hata açıklamaları istediğiniz zaman değişebilir. Hata açıklamasındaki değerlere göre dallayan kod yazmayın. |
HTTP yanıt referansı
Bu bölümde olası hata yanıtları belgelemektedir. "200 Tamam" durumu başarılı bir yanıttır ve erişim belirteci access_token öğesindeki yanıt gövdesi JSON'unda yer alır.
| Durum kodu | Hata | Hata Açıklaması | Çözüm |
|---|---|---|---|
| 400 Hatalı İstek | geçersiz_kaynak | AADSTS50001: <URI> adlı uygulama <TENANT-ID> adlı kiracı hesabında bulunamadı. Bu ileti, kiracı yöneticisinin uygulamayı yüklemediğini veya hiçbir kiracı kullanıcısının uygulamaya onay vermediğini gösterir. Kimlik doğrulama isteğinizi yanlış kiracıya göndermiş olabilirsiniz.\ | (Yalnızca Linux) |
| 400 Hatalı İstek | bad_request_102 | Gerekli meta veri üst bilgisi belirtilmedi |
Metadata İstek üst bilgisi alanı isteğinizde yok veya yanlış biçimlendirildi. Değerin küçük harfle truebelirtilmesi gerekir. Bir örnek için önceki REST bölümünde yer alan "Örnek istek" bölümüne bakın. |
| 401 Yetkisiz | bilinmeyen kaynak | Bilinmeyen Kaynak <URI'si> | HTTP GET isteği URI'nizin doğru biçimlendirildiğini doğrulayın.
scheme:host/resource-path bölümü http://localhost:50342/oauth2/token olarak belirtilmelidir. Bir örnek için önceki REST bölümünde yer alan "Örnek istek" bölümüne bakın. |
| geçersiz_istek | İstekte gerekli bir parametre eksik, geçersiz parametre değeri var, birden çok parametre içeriyor veya başka bir şekilde hatalı biçimlendirilmiş. | ||
| yetkisiz_istemci | İstemcinin bu yöntemi kullanarak erişim belirteci isteme yetkisi yok. | Azure kaynakları için yönetilen kimliklerin doğru yapılandırılmamış olduğu bir VM'deki bir isteğin sebebiyle oluştu. VM yapılandırmasıyla ilgili yardıma ihtiyacınız varsa bkz. Azure portalını kullanarak VM'de Azure kaynakları için yönetilen kimlikleri yapılandırma . | |
| erişim reddedildi | Kaynak sahibi veya yetkilendirme sunucusu isteği reddetti. | ||
| desteklenmeyen yanıt türü | Yetkilendirme sunucusu bu yöntemi kullanarak erişim belirteci almayı desteklemez. | ||
| geçersiz_kapsam | İstenen kapsam geçersiz, bilinmiyor veya hatalı biçimlendirilmiş. | ||
| 500 İç sunucu hatası | bilinmeyen | Active Directory'den anahtar alınamadı. Ayrıntılar için bkz. dosya yolundaki<> günlükler | VM'de Azure kaynakları için yönetilen kimliklerin etkinleştirildiğini doğrulayın. VM yapılandırmasıyla ilgili yardıma ihtiyacınız varsa bkz. Azure portalını kullanarak VM'de Azure kaynakları için yönetilen kimlikleri yapılandırma . Ayrıca HTTP GET istek URI'nizin, özellikle sorgu dizesinde belirtilen kaynak URI'sinin doğru biçimlendirildiğini doğrulayın. Bir örnek için önceki REST bölümünde yer alan "Örnek istek"e veya hizmetlerin ve ilgili kaynak kimliklerinin listesi için Microsoft Entra kimlik doğrulamasını destekleyen Azure hizmetlerine bakın. |
Önemli
- IMDS, bir proxy sunucu arkasında kullanılmak üzere tasarlanmamıştır ve bu şekilde kullanılmasını desteklemez. Proxy'leri atlama örnekleri için Bkz. Azure Örneği Meta Veri Örnekleri.
Yeniden deneme kılavuzu
404, 429 veya 5xx hata kodu alırsanız yeniden deneyin (bkz. Hata işleme). 410 hatası alırsanız bu, IMDS'nin güncelleştirmelerden geçtiğini ve en fazla 70 saniye içinde kullanılabilir olacağını gösterir.
Hız sınırlamaları, IMDS uç noktasına yapılan çağrıların sayısını sınırlamaktadır. Hız sınırlama eşiği aşıldığında, hız sınırlama aktifken IMDS uç noktası daha fazla isteği engeller. Bu süre boyunca, IMDS uç noktası 429 HTTP durum kodunu ("Çok fazla istek") döndürür ve istekler başarısız olur.
Yeniden denemek için aşağıdaki stratejiyi öneririz:
| Yeniden deneme stratejisi | Ayarlar | Değerler | Nasıl çalışır |
|---|---|---|---|
| Üssel Geri Çekilme | Yeniden deneme sayısı Minimum bekleme süresi Maksimum geri çekilme Delta geri kapatma İlk hızlı yeniden deneme |
5 0 sn 60 sn 2 sn yanlış |
Deneme 1 - 0 saniye gecikme Deneme 2 - yaklaşık 2 sn gecikme Deneme 3 - yaklaşık 6 sn gecikme Deneme 4 - yaklaşık 14 sn gecikme Deneme 5 - yaklaşık 30 sn gecikme |
Azure hizmetleri için kaynak kimlikleri
Azure kaynakları için yönetilen kimlikleri destekleyen kaynakların listesini görmek için yönetilen kimliklerle Azure Hizmetleri desteğine bakın.
Sonraki Adımlar
- Azure vm'sinde Azure kaynakları için yönetilen kimlikleri etkinleştirmek için bkz. Azure portalını kullanarak VM'de Azure kaynakları için yönetilen kimlikleri yapılandırma.