Ważne zagadnienia i ograniczenia dotyczące poświadczeń tożsamości federacyjnej
W tym artykule opisano ważne zagadnienia, ograniczenia i ograniczenia dotyczące poświadczeń tożsamości federacyjnej w aplikacjach Firmy Microsoft Entra i tożsamościach zarządzanych przypisanych przez użytkownika.
Aby uzyskać więcej informacji na temat scenariuszy obsługiwanych przez poświadczenia tożsamości federacyjnej, zobacz Omówienie federacji tożsamości obciążenia.
Ogólne zagadnienia dotyczące poświadczeń tożsamości federacyjnej
Dotyczy: aplikacje i tożsamości zarządzane przypisane przez użytkownika
Każda osoba z uprawnieniami do tworzenia rejestracji aplikacji i dodawania wpisu tajnego lub certyfikatu może dodać poświadczenia tożsamości federacyjnej do aplikacji. Jeśli przełącznik Użytkownicy mogą rejestrować aplikacje jest ustawiony na Nie w> bloku Ustawienia użytkowników w centrum administracyjnym firmy Microsoft Entra, nie będzie można jednak utworzyć rejestracji aplikacji ani skonfigurować poświadczeń tożsamości federacyjnej. Znajdź administratora, aby skonfigurować poświadczenia tożsamości federacyjnej w Twoim imieniu, osobę w rolach Administrator aplikacji lub Właściciel aplikacji.
Poświadczenia tożsamości federacyjnej nie korzystają z limitu przydziału obiektu jednostki usługi dzierżawy firmy Microsoft.
Do aplikacji lub tożsamości zarządzanej przypisanej przez użytkownika można dodać maksymalnie 20 poświadczeń tożsamości federacyjnej.
Podczas konfigurowania poświadczeń tożsamości federacyjnej należy podać kilka ważnych informacji:
wystawca i podmiot to kluczowe informacje potrzebne do skonfigurowania relacji zaufania. Kombinacja elementów
issuer
isubject
musi być unikatowa w aplikacji. Gdy obciążenie oprogramowania zewnętrznego żąda Platforma tożsamości Microsoft wymiany tokenu zewnętrznego dla tokenu dostępu, wystawca i wartości podmiotu poświadczeń tożsamości federacyjnej są sprawdzane względemissuer
poświadczeń isubject
podanych w tokenie zewnętrznym. Jeśli sprawdzanie poprawności zakończy się pomyślnie, Platforma tożsamości Microsoft wystawia token dostępu do zewnętrznego obciążenia oprogramowania.wystawca jest adresem URL zewnętrznego dostawcy tożsamości i musi być zgodny z
issuer
oświadczeniem wymienianego tokenu zewnętrznego. Wymagany.issuer
Jeśli oświadczenie ma wiodące lub końcowe białe znaki w wartości, wymiana tokenów zostanie zablokowana. To pole ma limit znaków 600 znaków.subject jest identyfikatorem obciążenia oprogramowania zewnętrznego i musi być zgodny
sub
z oświadczeniem (subject
) zewnętrznego tokenu wymienianego. podmiot nie ma stałego formatu, ponieważ każdy dostawca tożsamości używa własnego identyfikatora — czasami identyfikator GUID, czasami identyfikator rozdzielany dwukropkiem, czasami dowolnych ciągów. To pole ma limit znaków 600 znaków.Ważne
Wartości ustawień podmiotu muszą dokładnie odpowiadać konfiguracji w konfiguracji przepływu pracy usługi GitHub. W przeciwnym razie Platforma tożsamości Microsoft przyjrzy się przychodzącego tokenu zewnętrznego i odrzuci wymianę tokenu dostępu. Nie zostanie wyświetlony błąd, wymiana kończy się niepowodzeniem bez błędu.
Ważne
Jeśli przypadkowo dodasz nieprawidłowe informacje o obciążeniu zewnętrznym w temacie , ustawienie poświadczenia tożsamości federacyjnej zostanie utworzone pomyślnie bez błędu. Błąd nie jest widoczny, dopóki wymiana tokenów nie powiedzie się.
odbiorcy wyświetlają listę odbiorców, którzy mogą pojawić się w tokenie zewnętrznym. Wymagany. Musisz dodać pojedynczą wartość odbiorców, która ma limit 600 znaków. Zalecana wartość to "api://AzureADTokenExchange". Mówi, co Platforma tożsamości Microsoft musi zaakceptować w oświadczeniu
aud
w tokenie przychodzącym.name jest unikatowym identyfikatorem poświadczeń tożsamości federacyjnej. Wymagany. To pole ma limit znaków od 3 do 120 znaków i musi być przyjazny dla adresu URL. Obsługiwane są znaki alfanumeryczne, kreskowe lub podkreślenia. Pierwszy znak musi być tylko alfanumeryczny. Jest niezmienny po utworzeniu.
opis to podany przez użytkownika opis poświadczeń tożsamości federacyjnej. Opcjonalny. Opis nie jest weryfikowany ani sprawdzany przez identyfikator Entra firmy Microsoft. To pole ma limit 600 znaków.
Symbole wieloznaczne nie są obsługiwane w żadnej wartości właściwości poświadczeń tożsamości federacyjnej.
Nieobsługiwane regiony (tożsamości zarządzane przypisane przez użytkownika)
Dotyczy: tożsamości zarządzane przypisane przez użytkownika
Tworzenie poświadczeń tożsamości federacyjnej nie jest obecnie obsługiwane w przypadku tożsamości zarządzanych przypisanych przez użytkownika utworzonych w następujących regionach:
- Malezja Południowa
- Hiszpania Środkowa
- Tajwan Północny
- Tajwan Północno-zachodni
Obsługa tworzenia poświadczeń tożsamości federacyjnej dla tożsamości przypisanych przez użytkownika w tych regionach będzie stopniowo wdrażana. Zasoby w tym regionie, które muszą używać poświadczeń tożsamości federacyjnej, mogą to zrobić, korzystając z tożsamości zarządzanej przypisanej przez użytkownika utworzonej w obsługiwanym regionie.
Obsługiwane algorytmy podpisywania i wystawcy
Dotyczy: aplikacje i tożsamości zarządzane przypisane przez użytkownika
Tylko wystawcy, którzy dostarczają tokeny podpisane przy użyciu algorytmu RS256, są obsługiwane w przypadku wymiany tokenów przy użyciu federacji tożsamości obciążenia. Wymiana tokenów podpisanych za pomocą innych algorytmów może działać, ale nie została przetestowana.
Czas propagacji zmian poświadczeń federacyjnych
Dotyczy: aplikacje i tożsamości zarządzane przypisane przez użytkownika
Propagacja poświadczeń tożsamości federacyjnej w całym regionie po początkowym skonfigurowaniu zajmuje trochę czasu. Żądanie tokenu wykonane kilka minut po skonfigurowaniu poświadczeń tożsamości federacyjnej może zakończyć się niepowodzeniem, ponieważ pamięć podręczna jest wypełniana w katalogu starymi danymi. W tym przedziale czasu żądanie autoryzacji może zakończyć się niepowodzeniem z komunikatem o błędzie: AADSTS70021: No matching federated identity record found for presented assertion.
Aby uniknąć tego problemu, zaczekaj chwilę po dodaniu poświadczeń tożsamości federacyjnej przed zażądaniem tokenu, aby upewnić się, że replikacja zostanie ukończona we wszystkich węzłach usługi autoryzacji. Zalecamy również dodanie logiki ponawiania prób dla żądań tokenów. Ponowne próby należy wykonać dla każdego żądania nawet po pomyślnym uzyskaniu tokenu. Po zakończeniu replikacji danych procent awarii spadnie.
Aktualizacje współbieżne nie są obsługiwane (tożsamości zarządzane przypisane przez użytkownika)
Dotyczy: tożsamości zarządzane przypisane przez użytkownika
Tworzenie wielu poświadczeń tożsamości federacyjnej w ramach tej samej tożsamości zarządzanej przypisanej przez użytkownika współbieżnie wyzwala logikę wykrywania współbieżności, co powoduje niepowodzenie żądań z kodem stanu HTTP o konflikcie 409.
Program Terraform Provider for Azure (Resource Manager) w wersji 3.40.0 wprowadza aktualizację, która tworzy wiele poświadczeń tożsamości federacyjnej sekwencyjnie zamiast współbieżnie. Wersje starsze niż 3.40.0 mogą powodować błędy w potokach po utworzeniu wielu tożsamości federacyjnych. Zalecamy użycie dostawcy programu Terraform dla platformy Azure (Resource Manager) w wersji 3.40.0 lub nowszej, tak aby wiele poświadczeń tożsamości federacyjnej było tworzonych sekwencyjnie.
W przypadku używania automatyzacji lub szablonów usługi Azure Resource Manager (szablonów usługi ARM) do tworzenia poświadczeń tożsamości federacyjnej w ramach tej samej tożsamości nadrzędnej należy utworzyć poświadczenia federacyjne sekwencyjnie. Poświadczenia tożsamości federacyjnej w ramach różnych tożsamości zarządzanych można tworzyć równolegle bez żadnych ograniczeń.
Jeśli poświadczenia tożsamości federacyjnej są aprowizowanych w pętli, możesz aprowizować je szeregowo, ustawiając "tryb": "serial".
Można również aprowizować wiele nowych poświadczeń tożsamości federacyjnej sekwencyjnie przy użyciu właściwości dependsOn . Poniższy przykład szablonu usługi Azure Resource Manager (szablon usługi ARM) tworzy trzy nowe poświadczenia tożsamości federacyjnej sekwencyjnie na tożsamości zarządzanej przypisanej przez użytkownika przy użyciu właściwości dependsOn :
{
"$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 Policy
Dotyczy: aplikacje i tożsamości zarządzane przypisane przez użytkownika
W poniższym przykładzie szablonu usługi ARM można użyć odmowy usługi Azure Policy :
{
"policyRule": {
"if": {
"field": "type",
"equals": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials"
},
"then": {
"effect": "deny"
}
}
}
Limity ograniczania przepustowości
Dotyczy: tożsamości zarządzane przypisane przez użytkownika
W poniższej tabeli opisano limity żądań do tożsamości zarządzanych przypisanych przez użytkownika interfejsów API REST. Jeśli przekroczysz limit ograniczania przepustowości, zostanie wyświetlony błąd HTTP 429.
Operacja | Żądania na sekundę na dzierżawę firmy Microsoft Entra | Żądania na sekundę na subskrypcję | Żądania na sekundę na zasób |
---|---|---|---|
Tworzenie lub aktualizowanie żądań | 10 | 2 | 0.25 |
Pobieranie żądań | 30 | 10 | 0.5 |
Wyświetlanie listy według grupy zasobów lub listy według żądań subskrypcji | 15 | 5 | 0.25 |
Usuwanie żądań | 10 | 2 | 0.25 |
Błędy
Dotyczy: aplikacje i tożsamości zarządzane przypisane przez użytkownika
Następujące kody błędów mogą być zwracane podczas tworzenia, aktualizowania, pobierania, wyświetlania listy lub usuwania poświadczeń tożsamości federacyjnej.
Kod HTTP | Komunikat o błędzie | Komentarze |
---|---|---|
405 | Format żądania był nieoczekiwany: obsługa poświadczeń tożsamości federacyjnej nie jest włączona. | Poświadczenia tożsamości federacyjnej nie są włączone w tym regionie. Zapoznaj się z tematem "Aktualnie obsługiwane regiony". |
400 | Poświadczenia tożsamości federacyjnej muszą mieć dokładnie jedną grupę odbiorców. | Obecnie poświadczenia tożsamości federacyjnej obsługują pojedyncze grupy odbiorców "api://AzureADTokenExchange". |
400 | Poświadczenia tożsamości federacyjnej z treści PROTOKOŁU HTTP mają puste właściwości | Wszystkie właściwości poświadczeń tożsamości federacyjnej są obowiązkowe. |
400 | Nazwa poświadczenia tożsamości federacyjnej "{ficName}" jest nieprawidłowa. | Alfanumeryczne, kreska, podkreślenie, nie więcej niż 3–120 symboli. Pierwszy symbol to alfanumeryczne. |
404 | Tożsamość przypisana przez użytkownika nadrzędnego nie istnieje. | Sprawdź nazwę tożsamości przypisanej przez użytkownika w ścieżce zasobu poświadczeń tożsamości federacyjnej. |
400 | Kombinacja wystawcy i podmiotu już istnieje dla tej tożsamości zarządzanej. | Jest to ograniczenie. Wyświetl listę wszystkich poświadczeń tożsamości federacyjnej skojarzonych z tożsamością przypisaną przez użytkownika, aby znaleźć istniejące poświadczenia tożsamości federacyjnej. |
409 | Konflikt | Równoczesne żądanie zapisu do zasobów poświadczeń tożsamości federacyjnej w ramach tej samej tożsamości przypisanej przez użytkownika zostało odrzucone. |