Błąd AADSTS50020 — konto użytkownika od dostawcy tożsamości nie istnieje w dzierżawie
Ten artykuł ułatwia rozwiązywanie problemów z kodem AADSTS50020
błędu zwracanym, jeśli użytkownik-gość z dostawcy tożsamości (IdP) nie może zalogować się do dzierżawy zasobów w Tożsamość Microsoft Entra.
Symptomy
Gdy użytkownik-gość próbuje uzyskać dostęp do aplikacji lub zasobu w dzierżawie zasobów, logowanie kończy się niepowodzeniem i zostanie wyświetlony następujący komunikat o błędzie:
AADSTS50020: Konto użytkownika "user@domain.com" od dostawcy tożsamości {IdentityProviderURL} nie istnieje w dzierżawie {ResourceTenantName}.
Gdy administrator przegląda dzienniki logowania w dzierżawie głównej, wpis kodu błędu "90072" oznacza błąd logowania. Komunikat o błędzie zawiera następujące stany:
Konto użytkownika {email} od dostawcy tożsamości {idp} nie istnieje w dzierżawie {tenant} i nie może uzyskać dostępu do aplikacji {appId}({appName}) w tej dzierżawie. Najpierw konto musi zostać dodane jako użytkownik zewnętrzny w dzierżawie. Wyloguj się i zaloguj się ponownie przy użyciu innego konta użytkownika Microsoft Entra.
Przyczyna 1. Użytkownicy logują się do centrum administracyjne Microsoft Entra przy użyciu osobistych kont Microsoft
Podczas próby zalogowania się w celu centrum administracyjne Microsoft Entra przy użyciu osobistych kont Microsoft (Outlook, Hotmail lub OneDrive) domyślnie masz połączenie z dzierżawą usług firmy Microsoft. W dzierżawie domyślnej nie ma połączonego katalogu do wykonywania jakichkolwiek akcji. Ta sytuacja jest oczekiwana.
W poprzednim środowisku katalog (na przykład: UserNamehotmail735.onmicrosoft.com) jest tworzony i połączony z kontem osobistym i można wykonywać akcje, takie jak tworzenie kont użytkowników w katalogu. Zachowanie zostało zmienione.
Rozwiązanie: Tworzenie konta platformy Azure przy użyciu nowej dzierżawy
Jeśli chcesz mieć katalog, musisz utworzyć konto platformy Azure i nową dzierżawę:
- Przejdź do pozycji https://azure.microsoft.com/en-us/free/, a następnie wybierz pozycję Rozpocznij bezpłatnie .
- Postępuj zgodnie z instrukcjami, aby utworzyć konto platformy Azure.
- Dzierżawa zostanie wygenerowana wraz z kontem platformy Azure i zostaniesz automatycznie wyznaczony jako administrator globalny. Daje to pełny dostęp do wszystkich opcji w tej dzierżawie.
Przyczyna 2. Używany nieobsługiwany typ konta (konta wielodostępne i osobiste)
Jeśli rejestracja aplikacji jest ustawiona na typ konta z jedną dzierżawą, użytkownicy z innych katalogów lub dostawców tożsamości nie mogą zalogować się do tej aplikacji.
Rozwiązanie: zmiana ustawienia odbiorców logowania w manifeście rejestracji aplikacji
Aby upewnić się, że rejestracja aplikacji nie jest typem konta z jedną dzierżawą, wykonaj następujące kroki:
W Azure Portal wyszukaj i wybierz pozycję Rejestracje aplikacji.
Wybierz nazwę rejestracji aplikacji.
Na pasku bocznym wybierz pozycję Manifest.
W kodzie JSON znajdź ustawienie signInAudience .
Sprawdź, czy ustawienie zawiera jedną z następujących wartości:
- AzureADandPersonalMicrosoftAccount
- AzureADMultipleOrgs
- PersonalMicrosoftAccount
Jeśli ustawienie signInAudience nie zawiera jednej z tych wartości, utwórz ponownie rejestrację aplikacji, wybierając prawidłowy typ konta. Obecnie nie można zmienić signInAudience w manifeście .
Aby uzyskać więcej informacji na temat rejestrowania aplikacji, zobacz Szybki start: rejestrowanie aplikacji przy użyciu Platforma tożsamości Microsoft.
Przyczyna 3. Użyto niewłaściwego punktu końcowego (konta osobiste i konta organizacji)
Wywołanie uwierzytelniania musi być przeznaczone dla adresu URL zgodnego z wyborem, jeśli obsługiwany typ konta rejestracji aplikacji został ustawiony na jedną z następujących wartości:
Konta w dowolnym katalogu organizacyjnym (dowolny katalog Microsoft Entra — wielodostępny)
Konta w dowolnym katalogu organizacyjnym (dowolny katalog Microsoft Entra — wielodostępny) i osobiste konta Microsoft (np. Skype, Xbox)
Tylko osobiste konta Microsoft
Jeśli używasz programu https://login.microsoftonline.com/<YourTenantNameOrID>
, użytkownicy z innych organizacji nie mogą uzyskać dostępu do aplikacji. Musisz dodać tych użytkowników jako gości w dzierżawie określonej w żądaniu. W takim przypadku oczekuje się, że uwierzytelnianie będzie uruchamiane tylko w dzierżawie. Ten scenariusz powoduje błąd logowania, jeśli oczekujesz, że użytkownicy będą logować się przy użyciu federacji z inną dzierżawą lub dostawcą tożsamości.
Rozwiązanie: Użyj poprawnego adresu URL logowania
Użyj odpowiedniego adresu URL logowania dla określonego typu aplikacji, jak wymieniono w poniższej tabeli:
Typ aplikacji | Adres URL logowania |
---|---|
Aplikacje wielodostępne | https://login.microsoftonline.com/organizations |
Konta wielodostępne i osobiste | https://login.microsoftonline.com/common |
Tylko konta osobiste | https://login.microsoftonline.com/consumers |
W kodzie aplikacji zastosuj tę wartość adresu URL w ustawieniu Authority
. Aby uzyskać więcej informacji na temat Authority
programu , zobacz Platforma tożsamości Microsoft opcje konfiguracji aplikacji.
Przyczyna 4. Zalogowanie się do niewłaściwej dzierżawy
Podczas próby uzyskania dostępu do aplikacji użytkownicy otrzymują bezpośredni link do aplikacji lub próbują uzyskać dostęp za pośrednictwem https://myapps.microsoft.comprogramu . W obu przypadkach użytkownicy są przekierowywani w celu zalogowania się do aplikacji. W niektórych przypadkach użytkownik może mieć już aktywną sesję, która używa innego konta osobistego niż to, które ma być używane. Lub mają sesję, która korzysta z konta organizacji, mimo że zamierza używać osobistego konta gościa (lub na odwrót).
Aby upewnić się, że ten scenariusz jest problemem, poszukaj User account
wartości i Identity provider
w komunikacie o błędzie. Czy te wartości są zgodne z oczekiwaną kombinacją, czy nie? Czy na przykład użytkownik zalogował się przy użyciu konta organizacji do dzierżawy, a nie dzierżawy głównej? A może użytkownik zalogował się do live.com
dostawcy tożsamości przy użyciu innego konta osobistego niż to, które zostało już zaproszone?
Rozwiązanie: wyloguj się, a następnie zaloguj się ponownie z innej przeglądarki lub sesji przeglądarki prywatnej
Poproś użytkownika o otwarcie nowej sesji w prywatnej przeglądarce lub poproś użytkownika o próbę uzyskania dostępu z innej przeglądarki. W takim przypadku użytkownicy muszą wylogować się z aktywnej sesji, a następnie spróbować zalogować się ponownie.
Przyczyna 5. Nie zaproszono użytkownika-gościa
Użytkownik-gość, który próbował się zalogować, nie został zaproszony do dzierżawy.
Rozwiązanie: Zapraszanie użytkownika-gościa
Upewnij się, że wykonaj kroki opisane w temacie Szybki start: Dodawanie użytkowników-gości do katalogu w Azure Portal w celu zaproszenia użytkownika-gościa.
Przyczyna 6. Aplikacja wymaga przypisania użytkownika
Jeśli aplikacja jest aplikacją dla przedsiębiorstw, która wymaga przypisania użytkownika, błąd AADSTS50020
występuje, jeśli użytkownik nie znajduje się na liście dozwolonych użytkowników, którzy mają przypisany dostęp do aplikacji. Aby sprawdzić, czy aplikacja dla przedsiębiorstw wymaga przypisania użytkownika:
W Azure Portal wyszukaj i wybierz pozycję Aplikacje dla przedsiębiorstw.
Wybierz aplikację dla przedsiębiorstw.
Na pasku bocznym wybierz pozycję Właściwości.
Sprawdź, czy opcja Wymagane przypisanie ma wartość Tak.
Rozwiązanie: Przypisywanie dostępu do użytkowników indywidualnie lub jako część grupy
Aby przypisać dostęp do użytkowników, użyj jednej z następujących opcji:
Aby indywidualnie przypisać użytkownikowi dostęp do aplikacji, zobacz Przypisywanie konta użytkownika do aplikacji dla przedsiębiorstw.
Aby przypisać użytkowników, którzy są członkami przypisanej grupy lub grupy dynamicznej, zobacz Zarządzanie dostępem do aplikacji.
Przyczyna 7. Próbowano użyć przepływu poświadczeń hasła właściciela zasobu dla kont osobistych
Jeśli użytkownik spróbuje użyć przepływu poświadczeń hasła właściciela zasobu (ROPC) dla kont osobistych, wystąpi błąd AADSTS50020
. Platforma tożsamości Microsoft obsługuje ropc tylko w ramach Microsoft Entra dzierżaw, a nie kont osobistych.
Rozwiązanie: Użyj punktu końcowego specyficznego dla dzierżawy lub organizacji
Użyj punktu końcowego specyficznego dla dzierżawy (https://login.microsoftonline.com/<TenantIDOrName>
) lub punktu końcowego organizacji. Konta osobiste zaproszone do dzierżawy Microsoft Entra nie mogą korzystać z ropc. Aby uzyskać więcej informacji, zobacz Platforma tożsamości Microsoft i poświadczenia hasła właściciela zasobu OAuth 2.0.
Przyczyna 8. Wcześniej usunięta nazwa użytkownika została ponownie utworzona przez administratora dzierżawy głównej
Błąd AADSTS50020
może wystąpić, jeśli nazwa użytkownika-gościa, który został usunięty w dzierżawie zasobów, zostanie ponownie utworzona przez administratora dzierżawy głównej. Aby sprawdzić, czy konto użytkownika-gościa w dzierżawie zasobów nie jest skojarzone z kontem użytkownika w dzierżawie głównej, użyj jednej z następujących opcji:
Opcja weryfikacji 1: sprawdź, czy użytkownik-gość dzierżawy zasobów jest starszy niż konto użytkownika dzierżawy głównej
Pierwsza opcja weryfikacji obejmuje porównanie wieku użytkownika-gościa dzierżawy zasobów z kontem użytkownika dzierżawy głównej. Tę weryfikację można tworzyć przy użyciu programu Microsoft Graph lub MSOnline PowerShell.
Microsoft Graph
Wystosuj żądanie do interfejs Graph API MS, aby przejrzeć datę utworzenia użytkownika w następujący sposób:
GET https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}/createdDateTime
Następnie sprawdź datę utworzenia użytkownika-gościa w dzierżawie zasobów pod kątem daty utworzenia konta użytkownika w dzierżawie głównej. Scenariusz jest potwierdzony, jeśli użytkownik-gość został utworzony przed utworzeniem konta użytkownika dzierżawy głównej.
MSOnline PowerShell
Uwaga
Moduł MSOnline programu PowerShell jest ustawiony na przestarzały. Ponieważ jest on również niezgodny z programem PowerShell Core, upewnij się, że używasz zgodnej wersji programu PowerShell, aby można było uruchomić następujące polecenia.
Uruchom polecenie cmdlet Get-MsolUser programu PowerShell, aby przejrzeć datę utworzenia użytkownika w następujący sposób:
Get-MsolUser -SearchString user@contoso.com | Format-List whenCreated
Następnie sprawdź datę utworzenia użytkownika-gościa w dzierżawie zasobów pod kątem daty utworzenia konta użytkownika w dzierżawie głównej. Scenariusz jest potwierdzony, jeśli użytkownik-gość został utworzony przed utworzeniem konta użytkownika dzierżawy głównej.
Uwaga
Moduły programu PowerShell Azure AD i MSOnline są przestarzałe od 30 marca 2024 r. Aby dowiedzieć się więcej, przeczytaj aktualizację wycofania. Po tej dacie obsługa tych modułów jest ograniczona do pomocy w migracji do zestawu Microsoft Graph PowerShell SDK i poprawek zabezpieczeń. Przestarzałe moduły będą nadal działać do 30 marca 2025 r.
Zalecamy migrację do programu Microsoft Graph PowerShell w celu interakcji z Tożsamość Microsoft Entra (dawniej Azure AD). Aby uzyskać typowe pytania dotyczące migracji, zapoznaj się z często zadawanymi pytaniami dotyczącymi migracji. Uwaga: W wersjach 1.0.x usługi MSOnline mogą wystąpić zakłócenia po 30 czerwca 2024 r.
Opcja weryfikacji 2: sprawdź, czy alternatywny identyfikator zabezpieczeń gościa dzierżawy zasobu różni się od identyfikatora netto użytkownika dzierżawy głównej
Uwaga
Moduł MSOnline programu PowerShell jest ustawiony na przestarzały. Ponieważ jest on również niezgodny z programem PowerShell Core, upewnij się, że używasz zgodnej wersji programu PowerShell, aby można było uruchomić następujące polecenia.
Gdy użytkownik-gość zaakceptuje zaproszenie, atrybut użytkownika LiveID
(unikatowy identyfikator logowania użytkownika) jest przechowywany AlternativeSecurityIds
w atrybucie key
. Ponieważ konto użytkownika zostało usunięte i utworzone w dzierżawie głównej, NetID
wartość konta zostanie zmieniona dla użytkownika w dzierżawie głównej. NetID
Porównaj wartość konta użytkownika w dzierżawie głównej z wartością klucza przechowywaną w ramach AlternativeSecurityIds
konta gościa w dzierżawie zasobów w następujący sposób:
W dzierżawie głównej pobierz wartość atrybutu
LiveID
przy użyciuGet-MsolUser
polecenia cmdlet programu PowerShell:Get-MsolUser -SearchString tuser1 | Select-Object -ExpandProperty LiveID
W dzierżawie zasobów przekonwertuj wartość atrybutu
key
wewnątrzAlternativeSecurityIds
na ciąg zakodowany w formacie base64:[convert]::ToBase64String((Get-MsolUser -ObjectId 01234567-89ab-cdef-0123-456789abcdef ).AlternativeSecurityIds.key)
Konwertuj ciąg zakodowany w formacie base64 na wartość szesnastkową przy użyciu konwertera online (takiego jak base64.guru).
Porównaj wartości z kroków 1 i 3, aby sprawdzić, czy są różne. Konto
NetID
użytkownika w dzierżawie głównej uległo zmianie po usunięciu i ponownym utworzeniu konta.
Rozwiązanie: Resetowanie stanu realizacji konta użytkownika-gościa
Zresetuj stan realizacji konta użytkownika gościa w dzierżawie zasobów. Następnie można zachować obiekt użytkownika-gościa bez konieczności usuwania, a następnie ponownie utworzyć konto gościa. Możesz zresetować stan realizacji przy użyciu Azure Portal, Azure PowerShell lub microsoft interfejs Graph API. Aby uzyskać instrukcje, zobacz Resetowanie stanu realizacji dla użytkownika-gościa.
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla