Federasyon kimliği kimlik bilgileri için önemli noktalar ve kısıtlamalar
Bu makalede, Microsoft Entra uygulamalarında ve kullanıcı tarafından atanan yönetilen kimliklerde federasyon kimliği kimlik bilgileriyle ilgili önemli noktalar, kısıtlamalar ve sınırlamalar açıklanmaktadır.
Federasyon kimliği kimlik bilgilerinin etkinleştirdiği senaryolar hakkında daha fazla bilgi için bkz . iş yükü kimliği federasyonuna genel bakış.
Genel federasyon kimliği kimlik bilgileriyle ilgili dikkat edilmesi gerekenler
Şunlar için geçerlidir: uygulamalar ve kullanıcı tarafından atanan yönetilen kimlikler
Uygulama kaydı oluşturma ve gizli dizi veya sertifika ekleme izinleri olan herkes uygulamaya federasyon kimliği ekleyebilir. Kullanıcılar uygulamaları kaydedebilir anahtarı, Microsoft Entra yönetim merkezindeki Kullanıcılar-Kullanıcı> Ayarları dikey penceresinde Hayır olarak ayarlanırsa, uygulama kaydı oluşturamaz veya federasyon kimliği kimlik bilgilerini yapılandıramazsınız. Şirket dışı kimlik kimlik bilgilerini sizin yerinize, Uygulama Yöneticisi veya Uygulama Sahibi rollerindeki birini yapılandıracak bir yönetici bulun.
Federasyon kimliği kimlik bilgileri Microsoft Entra kiracı hizmet sorumlusu nesne kotasını kullanmaz.
Bir uygulamaya veya kullanıcı tarafından atanan yönetilen kimliğe en fazla 20 federasyon kimliği kimlik bilgisi eklenebilir.
Federasyon kimliği kimlik bilgilerini yapılandırdığınızda, sağlamanız gereken birkaç önemli bilgi vardır:
veren ve konu , güven ilişkisini ayarlamak için gereken önemli bilgi parçalarıdır. ve
subject
bileşimiissuer
uygulamada benzersiz olmalıdır. Dış yazılım iş yükü bir erişim belirteci için dış belirteci değiştirmek Microsoft kimlik platformu istediğinde, federasyon kimliği kimlik bilgilerinin veren ve konu değerleri dış belirteçte sağlanan vesubject
taleplerine göreissuer
denetlenir. Bu doğrulama denetimi geçerse, Microsoft kimlik platformu dış yazılım iş yüküne bir erişim belirteci oluşturur.veren , dış kimlik sağlayıcısının URL'sidir ve değiştirilmekte olan dış belirtecin talebiyle eşleşmelidir
issuer
. Gerekli. Talepteissuer
değerde baştaki veya sondaki boşluk varsa belirteç değişimi engellenir. Bu alanın karakter sınırı 600 karakterdir.konu , dış yazılım iş yükünün tanımlayıcısıdır ve değiştirilmekte olan
sub
dış belirtecin (subject
) talebiyle eşleşmelidir. her IdP kendi biçimini kullandığı için özne sabit bir biçime sahip değildir. Bazen GUID, bazen iki nokta üst üste ayrılmış tanımlayıcı, bazen rastgele dizeler. Bu alanın karakter sınırı 600 karakterdir.Önemli
Konu ayarı değerleri, GitHub iş akışı yapılandırmasındaki yapılandırmayla tam olarak eşleşmelidir. Aksi takdirde, Microsoft kimlik platformu gelen dış belirteci arar ve erişim belirteci değişimini reddeder. Hata almazsınız, değişim hatasız başarısız olur.
Önemli
Konu ayarına yanlışlıkla yanlış dış iş yükü bilgileri eklerseniz, federasyon kimliği kimlik bilgileri hatasız başarıyla oluşturulur. Belirteç değişimi başarısız olana kadar hata görünür olmaz.
hedef kitleleri , dış belirteçte görüntülenebilen hedef kitleleri listeler. Gerekli. 600 karakter sınırı olan tek bir hedef kitle değeri eklemeniz gerekir. Önerilen değer "api://AzureADTokenExchange"dir. Microsoft kimlik platformu gelen belirteçteki talepte neleri
aud
kabul etmesi gerektiğini söyler.name , federasyon kimliği kimlik bilgilerinin benzersiz tanımlayıcısıdır. Gerekli. Bu alanın karakter sınırı 3-120 karakterdir ve URL kolay olmalıdır. Alfasayısal, tire veya alt çizgi karakterleri desteklenir, ilk karakter yalnızca alfasayısal olmalıdır. Oluşturulduktan sonra sabittir.
description , federasyon kimliği kimlik bilgilerinin kullanıcı tarafından sağlanan açıklamasıdır. Opsiyonel. Açıklama Microsoft Entra Id tarafından doğrulanmaz veya denetlenmiyor. Bu alanın sınırı 600 karakterdir.
Joker karakterler hiçbir federasyon kimliği kimlik bilgisi özellik değerinde desteklenmez.
Desteklenmeyen bölgeler (kullanıcı tarafından atanan yönetilen kimlikler)
Şunlar için geçerlidir: kullanıcı tarafından atanan yönetilen kimlikler
Federasyon kimliği kimlik bilgilerinin oluşturulması şu anda aşağıdaki bölgelerde oluşturulan kullanıcı tarafından atanan yönetilen kimliklerde desteklenmemektedir :
- Doğu Asya
- Orta İsrail
- kuzey İtalya
- Malezya Güney
- Orta Meksika
- Orta Katar
- İspanya Orta
Bu bölgelerde kullanıcı tarafından atanan kimliklerde federasyon kimlik bilgileri oluşturma desteği aşamalı olarak dağıtılacaktır. Bu bölgedeki federasyon kimlik bilgilerini kullanması gereken kaynaklar, desteklenen bir bölgede oluşturulan kullanıcı tarafından atanan yönetilen kimliklerden yararlanarak bunu yapabilir.
Desteklenen imzalama algoritmaları ve verenler
Şunlar için geçerlidir: uygulamalar ve kullanıcı tarafından atanan yönetilen kimlikler
Yalnızca RS256 algoritması kullanılarak imzalanan belirteçler sağlayan verenler, iş yükü kimlik federasyonu kullanılarak belirteç değişimi için desteklenir. Diğer algoritmalarla imzalanan belirteçleri takas etme işe yarayabilir, ancak test edilmedi.
Microsoft Entra verenler desteklenmiyor
Şunlar için geçerlidir: uygulamalar ve kullanıcı tarafından atanan yönetilen kimlikler
Aynı veya farklı kiracılardan iki Microsoft Entra kimliği arasında federasyon oluşturulması desteklenmez. Federasyon kimlik bilgileri oluşturulurken, verenin (dış kimlik sağlayıcısının URL'si) aşağıdaki değerlerle yapılandırılması desteklenmez:
- *.login.microsoftonline.com
- *.login.windows.net
- *.login.microsoft.com
- *.sts.windows.net
Microsoft Entra veren bir şirket dışı kimlik bilgisi oluşturmak mümkün olsa da, yetkilendirme için bu kimlik bilgilerini kullanma denemeleri hatasıyla AADSTS700222: AAD-issued tokens may not be used for federated identity flows
başarısız olur.
Federasyon kimlik bilgisi değişikliklerinin yayılma zamanı
Şunlar için geçerlidir: uygulamalar ve kullanıcı tarafından atanan yönetilen kimlikler
Federasyon kimliği kimlik bilgilerinin başlangıçta yapılandırıldıktan sonra tüm bölgeye yayılması zaman alır. Önbellek dizinde eski verilerle dolduruldığından, federasyon kimliği kimlik bilgileri yapılandırıldıktan birkaç dakika sonra yapılan bir belirteç isteği başarısız olabilir. Bu zaman penceresi sırasında yetkilendirme isteği şu hata iletisiyle başarısız olabilir: AADSTS70021: No matching federated identity record found for presented assertion.
Bu sorunu önlemek için, yetkilendirme hizmetinin tüm düğümlerinde çoğaltmanın tamamlanmasını sağlamak için bir belirteç istemeden önce federasyon kimliği kimlik bilgilerini ekledikten sonra kısa bir süre bekleyin. Ayrıca belirteç istekleri için yeniden deneme mantığı eklemenizi öneririz. Belirteç başarıyla alındıktan sonra bile her istek için yeniden denemeler yapılmalıdır. Sonunda veriler tamamen çoğaltıldıktan sonra hata yüzdesi düşecektir.
Eşzamanlı güncelleştirmeler desteklenmez (kullanıcı tarafından atanan yönetilen kimlikler)
Şunlar için geçerlidir: kullanıcı tarafından atanan yönetilen kimlikler
Aynı kullanıcı tarafından atanan yönetilen kimlik altında birden çok federasyon kimliği kimlik bilgisi oluşturmak eşzamanlılık algılama mantığını tetikler ve bu da isteklerin 409 çakışmalı HTTP durum koduyla başarısız olmasına neden olur.
Azure için Terraform Sağlayıcısı (Resource Manager) sürüm 3.40.0, eşzamanlı olarak değil sıralı olarak birden çok federasyon kimliği kimlik bilgisi oluşturan bir güncelleştirme sağlar. 3.40.0'dan önceki sürümler, birden çok federasyon kimliği oluşturulduğunda işlem hatlarında hatalara neden olabilir. Birden çok federasyon kimliği kimlik bilgilerinin sırayla oluşturulması için Azure için Terraform Sağlayıcısı (Resource Manager) v3.40.0 veya sonraki bir sürümü kullanmanızı öneririz.
Aynı üst kimlik altında federasyon kimliği kimlik bilgileri oluşturmak için otomasyon veya Azure Resource Manager şablonlarını (ARM şablonları) kullandığınızda, federasyon kimlik bilgilerini sırayla oluşturun. Farklı yönetilen kimlikler altında federasyon kimliği kimlik bilgileri herhangi bir kısıtlama olmadan paralel olarak oluşturulabilir.
Federasyon kimliği kimlik bilgileri bir döngüde sağlanıyorsa, bunları "mode": "serial" ayarlayarak seri olarak sağlayabilirsiniz.
DependsOn özelliğini kullanarak birden çok yeni federasyon kimliği kimlik bilgilerini sıralı olarak da sağlayabilirsiniz. Aşağıdaki Azure Resource Manager şablonu (ARM şablonu) örneği dependsOn özelliğini kullanarak kullanıcı tarafından atanan yönetilen kimlikte sıralı olarak üç yeni federasyon kimliği kimlik bilgisi oluşturur:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"userAssignedIdentities_parent_uami_name": {
"defaultValue": "parent_uami",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"apiVersion": "2022-01-31-preview",
"name": "[parameters('userAssignedIdentities_parent_uami_name')]",
"location": "eastus"
},
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials",
"apiVersion": "2022-01-31-preview",
"name": "[concat(parameters('userAssignedIdentities_parent_uami_name'), '/fic01')]",
"dependsOn": [
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentities_parent_uami_name'))]"
],
"properties": {
"issuer": "https://kubernetes-oauth.azure.com",
"subject": "fic01",
"audiences": [
"api://AzureADTokenExchange"
]
}
},
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials",
"apiVersion": "2022-01-31-preview",
"name": "[concat(parameters('userAssignedIdentities_parent_uami_name'), '/fic02')]",
"dependsOn": [
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentities_parent_uami_name'))]",
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials', parameters('userAssignedIdentities_parent_uami_name'), 'fic01')]"
],
"properties": {
"issuer": "https://kubernetes-oauth.azure.com",
"subject": "fic02",
"audiences": [
"api://AzureADTokenExchange"
]
}
},
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials",
"apiVersion": "2022-01-31-preview",
"name": "[concat(parameters('userAssignedIdentities_parent_uami_name'), '/fic03')]",
"dependsOn": [
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentities_parent_uami_name'))]",
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials', parameters('userAssignedIdentities_parent_uami_name'), 'fic02')]"
],
"properties": {
"issuer": "https://kubernetes-oauth.azure.com",
"subject": "fic03",
"audiences": [
"api://AzureADTokenExchange"
]
}
}
]
}
Azure ilkesi
Şunlar için geçerlidir: uygulamalar ve kullanıcı tarafından atanan yönetilen kimlikler
Aşağıdaki ARM şablonu örneğinde olduğu gibi reddetme Azure İlkesi kullanmak mümkündür:
{
"policyRule": {
"if": {
"field": "type",
"equals": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials"
},
"then": {
"effect": "deny"
}
}
}
Azaltma sınırları
Şunlar için geçerlidir: kullanıcı tarafından atanan yönetilen kimlikler
Aşağıdaki tabloda, kullanıcı tarafından atanan yönetilen kimlikler REST API'lerine yönelik isteklerle ilgili sınırlar açıklanmaktadır. Azaltma sınırını aşarsanız HTTP 429 hatası alırsınız.
İşlem | Microsoft Entra kiracısı başına saniye başına istek sayısı | Abonelik başına saniye başına istek sayısı | Kaynak başına saniye başına istek sayısı |
---|---|---|---|
İstek oluşturma veya güncelleştirme | 10 | 2 | 0.25 |
İstekleri alma | 30 | 10 | 0.5 |
Kaynak grubuna göre listele veya Abonelik isteklerine göre listele | 15 | 5 | 0.25 |
İstekleri silme | 10 | 2 | 0.25 |
Hata
Şunlar için geçerlidir: uygulamalar ve kullanıcı tarafından atanan yönetilen kimlikler
Federasyon kimlik bilgilerini oluştururken, güncelleştirirken, alırken, listelerken veya silerken aşağıdaki hata kodları döndürülebilir.
HTTP kodu | Hata mesajı | Yorum |
---|---|---|
405 | İstek biçimi beklenmedikti: Federasyon kimliği kimlik bilgileri için destek etkinleştirilmedi. | Federasyon kimliği kimlik bilgileri bu bölgede etkinleştirilmemiş. "Şu Anda Desteklenen bölgeler" bölümüne bakın. |
400 | Federasyon kimliği kimlik bilgilerinin tam olarak bir hedef kitlesi olmalıdır. | Şu anda federasyon kimlik bilgileri tek bir hedef kitleyi "api://AzureADTokenExchange" destekler. |
400 | HTTP gövdesinden Federasyon Kimliği Kimlik Bilgileri boş özelliklere sahip | Tüm federasyon kimliği kimlik bilgisi özellikleri zorunlu. |
400 | Federasyon Kimliği Kimlik Bilgisi adı '{ficName}' geçersiz. | Alfasayısal, tire, alt çizgi, en fazla 3-120 simge. İlk simge alfasayısaldır. |
404 | Üst kullanıcı tarafından atanan kimlik yok. | Federasyon kimliği kimlik bilgileri kaynak yolunda kullanıcı tarafından atanan kimlik adını denetleyin. |
400 | Bu Yönetilen Kimlik için veren ve konu bileşimi zaten var. | Bu bir kısıtlamadır. Mevcut federasyon kimliği kimlik bilgilerini bulmak için kullanıcı tarafından atanan kimlikle ilişkili tüm federasyon kimlik bilgilerini listeleyin. |
409 | Anlaşmazlık | Aynı kullanıcı tarafından atanan kimlik altındaki federasyon kimliği kimlik bilgileri kaynaklarına eşzamanlı yazma isteği reddedildi. |