Application Insights için Microsoft Entra kimlik doğrulaması
Uygulama Analizler artık Microsoft Entra kimlik doğrulamayı destekliyor. Microsoft Entra Id kullanarak Uygulama Analizler kaynaklarınıza yalnızca kimliği doğrulanmış telemetrinin alındığından emin olabilirsiniz.
Kimlik bilgilerini büyük ölçekte yönetmek zor olduğundan çeşitli kimlik doğrulama sistemlerinin kullanılması zahmetli ve riskli olabilir. Artık yalnızca yönetilen kimlikler kullanılarak özel olarak doğrulanan telemetri verilerinin kaynağınıza alındığından ve Microsoft Entra Id'nin alındığından emin olmak için yerel kimlik doğrulamasını geri çevirmeyi seçebilirsiniz. Bu özellik, kritik işletimsel (uyarı ve otomatik ölçeklendirme) ve iş kararları almak için kullanılan telemetri verilerinin güvenliğini ve güvenilirliğini artırmaya yönelik bir adımdır.
Not
Bu belge, Microsoft Entra ID tabanlı kimlik doğrulaması kullanılarak Uygulama Analizler veri alımını kapsar. Application Analizler içindeki verileri sorgulama hakkında bilgi için bkz. Microsoft Entra kimlik doğrulamasını kullanarak Uygulama Analizler Sorgulama.
Önkoşullar
Microsoft Entra kimliği doğrulanmış alımını etkinleştirmek için aşağıdaki ön adımlar gereklidir. Şunları yapmanız gerekir:
- Genel bulutta olun.
- Aşağıdakiler hakkında bilgi sahibi olun:
- Azure yerleşik rollerini kullanarak erişim vermek istiyorsanız kaynak grubunda Sahip rolüne sahip olun.
- Desteklenmeyen senaryoları anlayın.
Desteklenmeyen senaryolar
Aşağıdaki Yazılım Geliştirme Setleri (SDK' lar) ve özellikleri Microsoft Entra kimliği doğrulanmış alımıyla kullanılmak üzere desteklenmez:
- Uygulama Analizler Java 2.x SDK'sı.
Microsoft Entra kimlik doğrulaması yalnızca 3.2.0'dan büyük veya buna eşit Olan Uygulama Analizler Java Aracısı için kullanılabilir. - Application Analizler JavaScript web SDK'sı.
- Application Analizler Python sürüm 3.4 ve 3.5 ile OpenCensus Python SDK'sı.
- Azure Uygulaması Hizmeti, Azure Sanal Makineler/Azure Sanal Makine Ölçek Kümeleri ve Azure İşlevleri için varsayılan olarak otomatik yetkisiz erişim/kodsuz izleme (diller için).
- Profil oluşturucu.
Microsoft Entra ID tabanlı kimlik doğrulamasını yapılandırma ve etkinleştirme
Henüz bir kimliğiniz yoksa, yönetilen kimlik veya hizmet sorumlusu kullanarak bir kimlik oluşturun.
Yönetilen kimlik kullanmanızı öneririz:
Azure hizmetiniz (Sanal Makineler veya App Service) için yönetilen kimlik ayarlayın.
Hizmet sorumlusu kullanmanızı önermeyiz:
Kaynaklara erişebilen bir Microsoft Entra uygulaması ve hizmet sorumlusu oluşturma hakkında daha fazla bilgi için bkz . Hizmet sorumlusu oluşturma.
Azure hizmetine bir rol atayın.
Hedef Uygulama Analizler kaynağından telemetrinin gönderildiği Azure kaynağına İzleme Ölçümleri Yayımcısı rolünü eklemek için Azure rollerini atama başlığı altında verilen adımları izleyin.
Not
İzleme Ölçümleri Yayımcısı rolü "ölçümler" dese de, tüm telemetri verilerini Uygulama Analizler kaynağında yayımlar.
Aşağıdaki dile uygun olarak yapılandırma yönergelerini izleyin.
Not
2.18-Beta3 sürümünden itibaren Uygulama Analizler .NET SDK'sında Microsoft Entra Id desteği eklenmiştir.
Uygulama Analizler .NET SDK'sı, Azure Identity tarafından sağlanan kimlik bilgisi sınıflarını destekler.
- Yerel geliştirme için önerilir
DefaultAzureCredential
. - Sistem tarafından atanan ve kullanıcı tarafından atanan yönetilen kimlikler için önerilir
ManagedIdentityCredential
.- Sistem tarafından atanan için parametresiz varsayılan oluşturucuyu kullanın.
- Kullanıcı tarafından atanan için oluşturucuya istemci kimliğini sağlayın.
Aşağıdaki örnekte .NET kullanarak el ile oluşturma ve yapılandırma TelemetryConfiguration
gösterilmektedir:
TelemetryConfiguration.Active.ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/";
var credential = new DefaultAzureCredential();
TelemetryConfiguration.Active.SetAzureTokenCredential(credential);
Aşağıdaki örnekte .NET Core kullanarak yapılandırma TelemetryConfiguration
gösterilmektedir:
services.Configure<TelemetryConfiguration>(config =>
{
var credential = new DefaultAzureCredential();
config.SetAzureTokenCredential(credential);
});
services.AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions
{
ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/"
});
Yerel kimlik doğrulamayı devre dışı bırakma
Microsoft Entra kimlik doğrulaması etkinleştirildikten sonra yerel kimlik doğrulamasını devre dışı bırakabilirsiniz. Bu yapılandırma, yalnızca Microsoft Entra Id tarafından kimliği doğrulanmış telemetriyi almanızı sağlar ve veri erişimini etkiler (örneğin, API anahtarları aracılığıyla).
Azure portalını veya Azure İlkesi veya program aracılığıyla yerel kimlik doğrulamasını devre dışı bırakabilirsiniz.
Azure portal
Uygulama Analizler kaynağınızdan, soldaki menüde Yapılandır başlığı altında Özellikler'i seçin. Yerel kimlik doğrulaması etkinse Etkin'i (değiştirmek için tıklayın) seçin.
Devre dışı'yı seçin ve değişiklikleri uygulayın.
Kaynağınızda yerel kimlik doğrulamasını devre dışı bırakdıktan sonra, genel bakış bölmesinde ilgili bilgileri görürsünüz.
Azure İlkesi
için DisableLocalAuth
Azure İlkesi, kullanıcıların bu özellik olarak ayarlanmadan true
yeni bir Application Analizler kaynağı oluşturma yeteneğini reddeder. İlke adı şeklindedir Application Insights components should block non-AAD auth ingestion
.
Bu ilke tanımını aboneliğinize uygulamak için yeni bir ilke ataması oluşturun ve ilkeyi atayın.
Aşağıdaki örnekte ilke şablonu tanımı gösterilmektedir:
{
"properties": {
"displayName": "Application Insights components should block non-AAD auth ingestion",
"policyType": "BuiltIn",
"mode": "Indexed",
"description": "Improve Application Insights security by disabling log ingestion that are not AAD-based.",
"metadata": {
"version": "1.0.0",
"category": "Monitoring"
},
"parameters": {
"effect": {
"type": "String",
"metadata": {
"displayName": "Effect",
"description": "The effect determines what happens when the policy rule is evaluated to match"
},
"allowedValues": [
"audit",
"deny",
"disabled"
],
"defaultValue": "audit"
}
},
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Insights/components"
},
{
"field": "Microsoft.Insights/components/DisableLocalAuth",
"notEquals": "true"
}
]
},
"then": {
"effect": "[parameters('effect')]"
}
}
}
}
Program aracılığıyla etkinleştirme
özelliğiDisableLocalAuth
, Uygulama Analizler kaynağınızda yerel kimlik doğrulamasını devre dışı bırakmak için kullanılır. Bu özellik olarak true
ayarlandığında, tüm erişimler için Microsoft Entra kimlik doğrulamasının kullanılması gerekir.
Aşağıdaki örnekte, çalışma alanı tabanlı uygulama Analizler kaynağı LocalAuth
oluşturmak için kullanabileceğiniz Azure Resource Manager şablonu devre dışı bırakılmıştır.
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"regionId": {
"type": "string"
},
"tagsArray": {
"type": "object"
},
"requestSource": {
"type": "string"
},
"workspaceResourceId": {
"type": "string"
},
"disableLocalAuth": {
"type": "bool"
}
},
"resources": [
{
"name": "[parameters('name')]",
"type": "microsoft.insights/components",
"location": "[parameters('regionId')]",
"tags": "[parameters('tagsArray')]",
"apiVersion": "2020-02-02-preview",
"dependsOn": [],
"properties": {
"Application_Type": "[parameters('type')]",
"Flow_Type": "Redfield",
"Request_Source": "[parameters('requestSource')]",
"WorkspaceResourceId": "[parameters('workspaceResourceId')]",
"DisableLocalAuth": "[parameters('disableLocalAuth')]"
}
}
]
}
Belirteç hedef kitlesi
Application Analizler'a telemetri göndermek için Microsoft Entra Id'den erişim belirteci almak üzere özel bir istemci geliştirirken, belirli bir konak ortamınız için uygun hedef kitle dizesini belirlemek için aşağıdaki tabloya bakın.
Azure bulut sürümü | Belirteç hedef kitlesi değeri |
---|---|
Azure genel bulutu | https://monitor.azure.com |
21Vianet bulutu tarafından sağlanan Microsoft Azure | https://monitor.azure.cn |
Azure US Government bulutu | https://monitor.azure.us |
Bağımsız bulutlar kullanıyorsanız hedef kitle bilgilerini bağlantı dizesi de bulabilirsiniz. bağlantı dizesi şu yapıyı izler:
InstrumentationKey={profile. InstrumentationKey}; IngestionEndpoint={ingestionEndpoint}; LiveEndpoint={liveDiagnosticsEndpoint}; AADAudience={aadAudience}
Audience parametresi olan AADAudience, ortamınıza bağlı olarak farklılık gösterebilir.
Sorun giderme
Bu bölümde, destek bileti oluşturmadan önce sorunu çözmek için uygulayabileceğiniz farklı sorun giderme senaryoları ve adımları sağlanır.
ALMA HTTP hataları
Alma hizmeti, SDK dilinden bağımsız olarak belirli hataları döndürür. Ağ trafiği Fiddler gibi bir araç kullanılarak toplanabilir. bağlantı dizesi alınan uç noktaya gelen trafiği filtrelemeniz gerekir.
HTTP/1.1 400 Kimlik Doğrulaması desteklenmiyor
Bu hata, kaynağın Microsoft Entra-only için ayarlandığını gösterir. SDK yanlış API'ye gönderdiğinden doğru yapılandırmanız gerekir.
Not
"v2/track" Microsoft Entra Id'yi desteklemez. SDK doğru yapılandırıldığında telemetri "v2.1/track" adresine gönderilir.
Ardından SDK yapılandırmasını gözden geçirmeniz gerekir.
HTTP/1.1 401 Yetkilendirme gerekiyor
Bu hata SDK'nın doğru yapılandırıldığını ancak geçerli bir belirteç alamadığını gösterir. Bu hata, Microsoft Entra Kimliği ile ilgili bir sorunu gösterebilir.
Ardından, SDK günlüklerindeki özel durumları veya Azure Identity'den gelen ağ hatalarını tanımlamanız gerekir.
HTTP/1.1 403 Yetkisiz
Bu hata, SDK'nın Uygulama Analizler kaynağı veya aboneliği için izni olmayan kimlik bilgilerini kullandığı anlamına gelir.
İlk olarak Uygulama Analizler kaynağının erişim denetimini denetleyin. SDK'yi İzleme Ölçümleri Yayımcısı rolüne sahip kimlik bilgileriyle yapılandırmanız gerekir.
Dile özgü sorun giderme
Olay kaynağı
Application Analizler .NET SDK'sı, olay kaynağını kullanarak hata günlüklerini yayar. Olay kaynak günlüklerini toplama hakkında daha fazla bilgi edinmek için bkz . Veri yok sorunlarını giderme - PerfView ile günlükleri toplama.
SDK belirteç alamazsa, özel durum iletisi olarak Failed to get AAD Token. Error message:
günlüğe kaydedilir.