Rozwiązywanie problemów z logowaniem do rejestru

Ten artykuł ułatwia rozwiązywanie problemów, które mogą wystąpić podczas logowania się do rejestru kontenerów platformy Azure.

Objawy

Może zawierać co najmniej jedną z następujących czynności:

  • Nie można zalogować się do rejestru przy użyciu polecenia , az acr loginlub obu tych elementów docker login
  • Nie można zalogować się do rejestru i występuje błąd unauthorized: authentication required lub unauthorized: Application not registered with AAD
  • Nie można zalogować się do rejestru i zostanie wyświetlony błąd interfejsu wiersza polecenia platformy Azure Could not connect to the registry login server
  • Nie można wypchnąć lub ściągnąć obrazów i zostanie wyświetlony błąd platformy Docker unauthorized: authentication required
  • Nie można uzyskać dostępu do rejestru przy użyciu polecenia az acr login i występuje błąd CONNECTIVITY_REFRESH_TOKEN_ERROR. Access to registry was denied. Response code: 403. Unable to get admin user credentials with message: Admin user is disabled. Unable to authenticate using AAD or admin login credentials.
  • Nie można uzyskać dostępu do rejestru z usługi Azure Kubernetes Service, Azure DevOps lub innej usługi platformy Azure
  • Nie można uzyskać dostępu do rejestru i występuje błąd Error response from daemon: login attempt failed with status: 403 Forbidden — zobacz Rozwiązywanie problemów z siecią w rejestrze
  • Nie można uzyskać dostępu do ustawień rejestru lub wyświetlić ich w witrynie Azure Portal lub zarządzać rejestrem przy użyciu interfejsu wiersza polecenia platformy Azure

Przyczyny

  • Platforma Docker nie jest prawidłowo skonfigurowana w twoim środowisku — rozwiązanie
  • Rejestr nie istnieje lub nazwa jest nieprawidłowa — rozwiązanie
  • Poświadczenia rejestru nie są prawidłowe — rozwiązanie
  • Dostęp publiczny do rejestru jest wyłączony. Reguły dostępu do sieci publicznej w rejestrze uniemożliwiają dostęp — rozwiązanie
  • Poświadczenia nie są autoryzowane do operacji wypychania, ściągania ani usługi Azure Resource Manager — rozwiązanie
  • Poświadczenia wygasły — rozwiązanie

Dalsza diagnostyka

Uruchom polecenie az acr check-health, aby uzyskać więcej informacji o kondycji środowiska rejestru i opcjonalnie dostęp do rejestru docelowego. Na przykład zdiagnozuj błędy konfiguracji platformy Docker lub problemy z logowaniem w usłudze Microsoft Entra.

Zobacz Sprawdzanie kondycji rejestru kontenerów platformy Azure, aby zapoznać się z przykładami poleceń. Jeśli zgłaszane są błędy, zapoznaj się z dokumentacją błędów i poniższymi sekcjami, aby zapoznać się z zalecanymi rozwiązaniami.

Postępuj zgodnie z instrukcjami z dokumentu pomocy technicznej usługi AKS, jeśli nie można ściągnąć obrazów z usługi ACR do klastra usługi AKS.

Uwaga

Niektóre błędy uwierzytelniania lub autoryzacji mogą również wystąpić, jeśli istnieją konfiguracje zapory lub sieci, które uniemożliwiają dostęp do rejestru. Zobacz Rozwiązywanie problemów z siecią w rejestrze.

Potencjalne rozwiązania

Sprawdzanie konfiguracji platformy Docker

Większość przepływów uwierzytelniania usługi Azure Container Registry wymaga lokalnej instalacji platformy Docker, dzięki czemu można uwierzytelnić się w rejestrze na potrzeby operacji, takich jak wypychanie i ściąganie obrazów. Upewnij się, że w danym środowisku działa klient interfejsu wiersza polecenia platformy Docker i demon (Aparat platformy Docker). Potrzebujesz klienta platformy Docker w wersji 18.03 lub nowszej.

Powiązane linki:

Określ poprawną nazwę rejestru

W przypadku korzystania z programu docker loginpodaj pełną nazwę serwera logowania rejestru, na przykład myregistry.azurecr.io. Upewnij się, że używasz tylko małych liter. Przykład:

docker login myregistry.azurecr.io

W przypadku korzystania z polecenia az acr login z tożsamością firmy Microsoft Entra najpierw zaloguj się do interfejsu wiersza polecenia platformy Azure, a następnie określ nazwę zasobu platformy Azure rejestru. Nazwa zasobu to nazwa podana podczas tworzenia rejestru, na przykład myregistry (bez sufiksu domeny). Przykład:

az acr login --name myregistry

Powiązane linki:

Potwierdzanie poświadczeń w celu uzyskania dostępu do rejestru

Sprawdź poprawność poświadczeń używanych w twoim scenariuszu lub zostały ci dostarczone przez właściciela rejestru. Niektóre możliwe problemy:

  • W przypadku korzystania z jednostki usługi Active Directory upewnij się, że używasz poprawnych poświadczeń w dzierżawie usługi Active Directory:
    • Nazwa użytkownika — identyfikator aplikacji jednostki usługi (nazywany również identyfikatorem klienta)
    • Hasło — hasło jednostki usługi (nazywane również wpisem tajnym klienta)
  • Jeśli używasz usługi platformy Azure, takiej jak Azure Kubernetes Service lub Azure DevOps, aby uzyskać dostęp do rejestru, potwierdź konfigurację rejestru dla usługi.
  • Jeśli uruchomiono az acr login polecenie z opcją --expose-token , która umożliwia logowanie do rejestru bez używania demona platformy Docker, upewnij się, że uwierzytelnisz się przy użyciu nazwy użytkownika 00000000-0000-0000-0000-000000000000.
  • Jeśli rejestr jest skonfigurowany na potrzeby anonimowego dostępu do ściągania, istniejące poświadczenia platformy Docker przechowywane z poprzedniego logowania platformy Docker mogą uniemożliwić dostęp anonimowy. Uruchom polecenie docker logout przed podjęciem próby anonimowej operacji ściągania w rejestrze.

Powiązane linki:

Potwierdzanie, że poświadczenia są autoryzowane do uzyskiwania dostępu do rejestru

Potwierdź uprawnienia rejestru skojarzone z poświadczeniami, takie jak AcrPull rola platformy Azure do ściągania obrazów z rejestru, lub AcrPush rola do wypychania obrazów.

Dostęp do rejestru w portalu lub zarządzaniu rejestrem przy użyciu interfejsu wiersza polecenia platformy Azure wymaga co najmniej Reader roli lub równoważnych uprawnień do wykonywania operacji usługi Azure Resource Manager.

Jeśli uprawnienia ostatnio uległy zmianie, aby zezwolić na dostęp do rejestru w portalu, może być konieczne wypróbowanie sesji incognito lub prywatnej w przeglądarce, aby uniknąć nieaktualnej pamięci podręcznej lub plików cookie przeglądarki.

Użytkownik lub właściciel rejestru musi mieć wystarczające uprawnienia w subskrypcji, aby dodać lub usunąć przypisania ról.

Powiązane linki:

Sprawdź, czy poświadczenia nie wygasły

Tokeny i poświadczenia usługi Active Directory mogą wygasać po zdefiniowanych okresach, uniemożliwiając dostęp do rejestru. Aby włączyć dostęp, może być konieczne zresetowanie lub ponowne wygenerowanie poświadczeń.

  • Jeśli używasz indywidualnej tożsamości usługi AD, tożsamości zarządzanej lub jednostki usługi na potrzeby logowania do rejestru, token usługi AD wygasa po 3 godzinach. Zaloguj się ponownie do rejestru.
  • Jeśli używasz jednostki usługi AD z wygasłym kluczem tajnym klienta, właściciel subskrypcji lub administrator konta musi zresetować poświadczenia lub wygenerować nową jednostkę usługi.
  • Jeśli używasz tokenu o zakresie repozytorium, właściciel rejestru może wymagać zresetowania hasła lub wygenerowania nowego tokenu.

Powiązane linki:

Zaawansowane rozwiązywanie problemów

Jeśli zbieranie dzienników zasobów jest włączone w rejestrze, przejrzyj dziennik ContainerRegistryLoginEvents. Ten dziennik przechowuje zdarzenia i stan uwierzytelniania, w tym tożsamość przychodzącą i adres IP. Wykonaj zapytanie w dzienniku pod kątem błędów uwierzytelniania rejestru.

Powiązane linki:

Następne kroki

Jeśli nie rozwiążesz problemu w tym miejscu, zapoznaj się z następującymi opcjami.