Aracılığıyla paylaş


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şimi issuer 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 ve subject taleplerine göre issuer 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. Talepte issuer 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 flowsbaş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.