Erişim belirteci almak için bir Azure VM 'de Azure kaynakları için Yönetilen kimlikler kullanma
Azure kaynakları için yönetilen kimlikler bir Azure Active Directory özelliğidir. Azure kaynakları için yönetilen kimlikleri destekleyen Azure hizmetlerinin her biri kendi zaman çizelgesine tabidir. Başlamadan önce kaynağınıza yönelik yönetilen kimliklerin kullanılabilirlik durumunu ve bilinen sorunları gözden geçirdiğinizden emin olun.
Azure kaynakları için Yönetilen kimlikler, Azure Active Directory ' de otomatik olarak yönetilen bir kimlikle Azure hizmetleri sağlar. Bu kimliği, kodunuzda kimlik bilgileri olmadan Azure AD kimlik doğrulamasını destekleyen herhangi bir hizmette kimlik doğrulaması yapmak için kullanabilirsiniz.
Bu makalede, belirteç alımı için çeşitli kod ve betik örnekleri ve ayrıca belirteç süre sonu ve HTTP hatalarını işleme gibi önemli konularda rehberlik sağlanır.
Ö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 örnekleri kullanmayı planlıyorsanız, Azure PowerShellen 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. sanal makinenize uzaktan bağlanmak için Azure portal "Bağlan" özelliğini kullanın. Bir VM 'de Azure kaynakları için yönetilen kimlikleri etkinleştirme hakkında daha fazla bilgi için bkz. Azure portal veya varyant makalelerinden birini kullanarak BIR VM 'de Azure kaynakları için yönetilen kimlikleri yapılandırma(POWERSHELL, CLI, bir şablon veya BIR Azure SDK kullanarak).
Önemli
- Azure kaynakları için yönetilen kimliklerin güvenlik sınırı, kullanıldığı kaynaktır. Bir sanal makinede çalışan tüm kod/betikler, üzerinde kullanılabilir olan tüm yönetilen kimlikler için belirteçleri isteyebilir ve alabilir.
Genel Bakış
Bir istemci uygulaması, belirli bir kaynağa erişmek için yalnızca Azure kaynakları için Yönetilen kimlikler, yalnızca uygulama erişim belirteci isteyebilir. Belirteç, Azure kaynakları hizmet sorumlusu için yönetilen kimliklere dayalıdır. Bu nedenle, istemcinin kendi hizmet sorumlusu altında erişim belirteci almak için kendisini kaydetmesi gerekmez. Belirteç, istemci kimlik bilgileri gerektiren hizmetten hizmete çağrılariçin bir taşıyıcı belirteci olarak kullanım için uygundur.
| Bağlantı | Description |
|---|---|
| HTTP kullanarak belirteç al | Azure kaynakları belirteç uç noktası için Yönetilen kimlikler protokol ayrıntıları |
| .NET için Microsoft. Azure. Services. AppAuthentication kitaplığını kullanarak bir belirteç alın | .NET istemcisinden Microsoft. Azure. Services. AppAuthentication kitaplığını kullanma örneği |
| C kullanarak belirteç al # | Bir C# istemcisinden Azure kaynakları REST uç noktası için Yönetilen kimlikler kullanma örneği |
| Java kullanarak belirteç edinme | Java istemcisinden Azure kaynakları REST uç noktası için Yönetilen kimlikler kullanma örneği |
| Go kullanarak belirteç alın | Bir go istemcisinden Azure kaynakları REST uç noktası için Yönetilen kimlikler kullanma örneği |
| PowerShell kullanarak belirteç edinme | PowerShell istemcisinden Azure kaynakları REST uç noktası için Yönetilen kimlikler kullanma örneği |
| KıVRıMLı kullanarak belirteç alın | Bir bash/KıVRıMLı istemciden Azure kaynakları REST uç noktası için Yönetilen kimlikler kullanma örneği |
| Belirteç önbelleğe alma işleme | Süre dolma erişim belirteçlerini işlemeye yönelik kılavuz |
| Hata işleme | Azure kaynakları belirteç uç noktası için yönetilen kimliklerden döndürülen HTTP hatalarını işlemeye yönelik kılavuz |
| Azure hizmetleri için kaynak kimlikleri | Desteklenen Azure hizmetleri için kaynak kimliklerinin nereden alınacağı |
HTTP kullanarak belirteç al
Erişim belirteci almak için temel arabirim, geri kalanı temel alarak, VM üzerinde çalışan ve HTTP REST çağrısı yapan tüm istemci uygulamaları için erişilebilir hale getirir. Bu, istemci sanal makinede bir uç nokta (Azure AD uç noktası) kullandığından Azure AD programlama modeline benzer.
Azure Instance Metadata Service (ıMDS) 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 gösteren HTTP fiili. Bu durumda, bir OAuth erişim belirteci. |
http://169.254.169.254/metadata/identity/oauth2/token |
Instance Metadata Service için Azure kaynakları için Yönetilen kimlikler uç noktası. |
api-version |
IMDS uç noktası için API sürümünü gösteren bir sorgu dizesi parametresi. Lütfen API sürümünü 2018-02-01 veya üstünü kullanın. |
resource |
Hedef kaynağın uygulama KIMLIĞI URI 'sini gösteren bir sorgu dizesi parametresi. Ayrıca, aud verilen belirtecin (hedef kitle) talebinde de görüntülenir. Bu örnek, uygulama KIMLIĞI URI 'SI olan Azure Resource Manager erişmek için bir belirteç ister https://management.azure.com/ . |
Metadata |
Sunucu tarafı Isteği forgery (SSRF) saldırılarına karşı risk azaltma olarak Azure kaynakları için Yönetilen kimlikler için gereken bir HTTP istek üst bilgisi alanı. Bu değer, tüm küçük durumlarda "true" olarak ayarlanmalıdır. |
object_id |
Seçim Belirteci istediğiniz yönetilen kimliğin object_id belirten bir sorgu dizesi parametresi. SANAL makinenizde birden çok kullanıcı tarafından atanan yönetilen kimlik varsa, gereklidir. |
client_id |
Seçim Belirteci istediğiniz yönetilen kimliğin client_id belirten bir sorgu dizesi parametresi. SANAL makinenizde birden çok kullanıcı tarafından atanan yönetilen kimlik varsa, gereklidir. |
mi_res_id |
Seçim Belirteci istediğiniz yönetilen kimliğin mi_res_id (Azure Kaynak KIMLIĞI) belirten bir sorgu dizesi parametresi. SANAL makinenizde birden çok kullanıcı tarafından atanan 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ğrılırken, belirteç Authorization istek üst bilgisi alanına bir "taşıyıcı" belirteci olarak katıştırılır ve bu da API 'nin çağıranın kimliğini doğrulamasına izin verir. |
refresh_token |
Azure kaynakları için Yönetilen kimlikler tarafından kullanılmıyor. |
expires_in |
Erişim belirtecinin, verme zamanından önce geçerli olmaya devam etmesi için geçmesi gereken saniye sayısı. Verme süresi belirtecin iat talebinde bulunabilir. |
expires_on |
Erişim belirtecinin süresi dolduğu zaman aralığı. Tarih, "1970-01-01T0:0: 0Z UTC" (belirtecin talebine karşılık gelir) için saniye sayısı olarak gösterilir exp . |
not_before |
Erişim belirteci yürürlüğe girer ve kabul edilebilir. Tarih, "1970-01-01T0:0: 0Z UTC" (belirtecin talebine karşılık gelir) için saniye sayısı olarak gösterilir nbf . |
resource |
İsteğin sorgu dizesi parametresiyle eşleşen erişim belirtecinin istendiği kaynak resource . |
token_type |
"Taşıyıcı" erişim belirteci olan belirtecin türü, bu, kaynağın bu belirtecin taşıyıcının erişim izni verebileceği anlamına gelir. |
.NET için Microsoft. Azure. Services. AppAuthentication kitaplığını kullanarak bir belirteç alın
.NET uygulamaları ve işlevleri için, Azure kaynakları için Yönetilen kimlikler ile çalışmanın en kolay yolu Microsoft. Azure. Services. AppAuthentication paketidir. bu kitaplık ayrıca, Visual Studio, Azure clıveya Active Directory tümleşik kimlik doğrulamasından kullanıcı hesabınızı kullanarak, kodunuzu geliştirme makinenizde yerel olarak sınamanızı sağlar. Bu kitaplıkla ilgili yerel geliştirme seçenekleri hakkında daha fazla bilgi için Microsoft. Azure. Services. AppAuthentication başvurusunabakın. Bu bölümde, kodunuzda kitaplığı kullanmaya nasıl başlacağınız gösterilmektedir.
uygulamanıza microsoft. azure. Services. appauthentication ve microsoft. azure. keykasaNuGet paketlerine başvurular ekleyin.
Uygulamanıza aşağıdaki kodu ekleyin:
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));
Microsoft. Azure. Services. AppAuthentication ve sunduğu işlemler hakkında daha fazla bilgi edinmek için bkz. Azure kaynakları için Yönetilen kimlikler .net örneği Ile Microsoft. Azure. Services. appauthentication başvurusu ve App Service ve keykasası.
C kullanarak belirteç al
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");
}
Java kullanarak belirteç edinme
Java kullanarak bir 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 kullanarak belirteç alın
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ç edinme
Aşağıdaki örnek, bir PowerShell istemcisinden Azure kaynakları REST uç noktası için yönetilen kimliklerin nasıl kullanılacağını gösterir:
- Erişim belirteci alın.
- Bir Azure Resource Manager REST API çağırmak ve VM hakkında bilgi almak için erişim belirtecini kullanın. Abonelik KIMLIĞINIZI, kaynak grubu adını ve sanal makine adını sırasıyla, ve için değiştirdiğinizden emin olun
<SUBSCRIPTION-ID><RESOURCE-GROUP><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"}
Yanıttan erişim belirtecini ayrıştırmaya ilişkin örnek:
# 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
KıVRıMLı 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ırmaya ilişkin örnek:
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
Belirteç önbelleğe alma
Azure kaynakları alt sistemi için Yönetilen kimlikler, önbellek belirteçleri sağlarken kodunuzda belirteç önbelleği de uygulamanızı öneririz. Sonuç olarak, kaynağın belirtecin dolduğunu gösterdiği senaryolar için hazırlanmalısınız.
Yalnızca şu durumlarda Azure AD 'ye yönelik hat üzeri aramalar:
- Azure kaynakları alt sistemi önbelleği için yönetilen kimliklerde belirteç yok nedeniyle önbellek isabeti oluşuyor.
- Önbelleğe alınan belirteci süresi doldu.
Hata işleme
Azure kaynakları uç noktası için yönetilen kimlikler, HTTP yanıt iletisi üst bilgisinde durum kodu alanı aracılığıyla hataları 4xx veya 5xx hataları olarak belirtir:
| Durum Kodu | Hata Nedeni | İşle |
|---|---|---|
| 404 Bulunamadı. | IMDS uç noktası güncelleştiriliyor. | ÜstEl GeriLe ile yeniden deneyin. Aşağıdaki kılavuza bakın. |
| 429 Çok fazla istek var. | IMDS Kısıtlama sınırına ulaşıldı. | ÜstEl GeriLe ile yeniden deneyin. Aşağıdaki kılavuza bakın. |
| 4xx İstekte hata. | İstek parametreleriden biri veya daha fazlası yanlıştı. | Yeniden deneme. Daha fazla bilgi için hata ayrıntılarını inceleme. 4xx hataları tasarım zamanı hatalarıdır. |
| Hizmetten 5xx Geçici hata. | Azure kaynakları alt sistemi veya Azure Active Directory yönetilen kimlikleri geçici bir hata döndürür. | En az 1 saniye bekledikten sonra yeniden denemek güvenlidir. Çok hızlı veya çok sık yeniden deneiyorsanız, IMDS ve/veya Azure AD bir hız sınırı hatası (429) döndürür. |
| timeout | IMDS uç noktası güncelleştiriliyor. | ÜstEl GeriLe ile yeniden deneyin. Aşağıdaki kılavuza bakın. |
Hata oluşursa, ilgili HTTP yanıt gövdesi hata ayrıntılarını içeren JSON içerir:
| Öğe | Açıklama |
|---|---|
| error | Hata tanımlayıcısı. |
| error_description | Hatanın ayrıntılı açıklaması. Hata açıklamaları her zaman değişebilir. Hata açıklamasındaki değerlere göre dallara alan kod yazmayın. |
HTTP yanıt başvurusu
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 öğesinde yanıt gövdesi JSON'unda yer alır.
| Durum kodu | Hata | Hata Açıklaması | Çözüm |
|---|---|---|---|
| 400 Hatalı İstek | invalid_resource | AADSTS50001: adlı <URI> uygulama adlı kiracıda <TENANT-ID> bulunamadı. Uygulama, kiracının yöneticisi tarafından yüklenmediyse veya kiracıdaki herhangi bir kullanıcı tarafından onaylanmadıysa bu durum ortaya çıkabilir. Kimlik doğrulama isteğinizi yanlış kiracıya gönderdiniz.\ | (Yalnızca Linux) |
| 400 Hatalı İstek | bad_request_102 | Gerekli meta veri üst bilgisi belirtilmemiş | İstek Metadata üst bilgisi alanı isteğiniz için eksik veya yanlış biçimlendirildi. Değer, küçük harfle true belirtilmelidir. Örnek için önceki REST bölümünde yer alan "Örnek istek" bölümüne bakın. |
| 401 Yetkisiz | unknown_source | Bilinmeyen Kaynak <URI> | HTTP GET isteği URI'nizin doğru biçimlendirilmiş olduğunu doğrulayın. bölümü scheme:host/resource-path olarak http://localhost:50342/oauth2/token belirtilmelidir. Örnek için önceki REST bölümünde yer alan "Örnek istek" bölümüne bakın. |
| invalid_request | İstekte gerekli bir parametre eksik, geçersiz parametre değeri var, birden çok parametre içeriyor veya yanlış biçimlendirilmiş. | ||
| unauthorized_client | İstemcinin bu yöntemi kullanarak erişim belirteci isteğinde yetkisi yok. | Azure kaynakları için yönetilen kimlikleri doğru yapılandırılmamış bir VM'de yapılan istekten kaynaklanır. VM yapılandırmasıyla ilgili yardıma ihtiyacınız varsa bkz. Vm'Azure portal Azure kaynakları için yönetilen kimlikleri yapılandırma. | |
| access_denied | Kaynak sahibi veya yetkilendirme sunucusu isteği reddetti. | ||
| unsupported_response_type | Yetkilendirme sunucusu bu yöntemi kullanarak erişim belirteci alma desteğine sahip değildir. | ||
| invalid_scope | İstenen kapsam geçersiz, bilinmiyor veya yanlış biçimlendirilmiş. | ||
| 500 İç sunucu hatası | Bilinmeyen | Active Directory'den belirteç alınamadı. Ayrıntılar için bkz. günlükler <file path> | Vm'de Azure kaynakları için yönetilen kimliklerin etkinleştirildiğinden emin olun. VM yapılandırmasıyla ilgili yardıma ihtiyacınız varsa bkz. Vm'Azure portal Azure kaynakları için yönetilen kimlikleri yapılandırma. Ayrıca HTTP GET isteği URI'nizin, özellikle de sorgu dizesinde belirtilen kaynak URI'sini doğru biçimlendirilmiş olduğunu doğrulayın. Bir örnek için önceki REST bölümünde yer alan "Örnek istek" bölümüne veya hizmetlerin listesi ve ilgili kaynak kimlikleri için Azure AD kimlik doğrulamasını destekleyen Azure hizmetleri bölümüne bakın. |
Önemli
- IMDS bir ara sunucu arkasında kullanılmaya yönelik değildir ve bunu yapmak desteklenmez. Aracıları atlama örnekleri için Azure Örneği Meta Veri Örnekleri'ne bakın.
Yeniden deneme kılavuzu
404, 429 veya 5xx hata kodu alırsanız yeniden denemenizi öneririz (yukarıdaki hata işlemeye bakın).
Azaltma sınırları, IMDS uç noktasına yapılan çağrı sayısı için geçerlidir. Azaltma eşiği aşılırsa IMDS uç noktası, kısıtlama devam ederken diğer tüm istekleri sınırlar. Bu süre boyunca, IMDS uç noktası HTTP durum kodu 429 ("Çok fazla istek") ve istekler başarısız olur.
Yeniden deneme için aşağıdaki stratejiyi öneririz:
| Yeniden deneme stratejisi | Ayarlar | Değerler | Nasıl çalışır? |
|---|---|---|---|
| ExponentialBackoff | Yeniden deneme sayısı En düşük geri alma En yüksek geri alma Delta geri alma İlk hızlı yeniden deneme |
5 0 sn 60 sn 2 sn yanlış |
Deneme 1 - 0 sn 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 AD'yi destekleyen ve Azure kaynakları için yönetilen kimliklerle ve ilgili kaynak kimlikleriyle test edilmiş kaynakların listesi için bkz. Azure AD kimlik doğrulamasını destekleyen Azure hizmetleri.
Sonraki adımlar
- Azure VM'sinde Azure kaynakları için yönetilen kimlikleri etkinleştirmek için bkz. Vm'de azure kaynakları için yönetilen kimlikleri yapılandırma Azure portal.