Dela via


Felsöka registerinloggning

Den här artikeln hjälper dig att felsöka problem som kan uppstå när du loggar in på, autentiserar eller auktoriserar med ett Azure Container Registry.

Symptome

Kan innehålla ett eller flera av följande:

  • Det går inte att logga in i registret med hjälp av docker login, az acr logineller båda
  • Det går inte att logga in i registret och du får fel unauthorized: authentication required eller unauthorized: Application not registered with AAD
  • Det går inte att logga in i registret och du får Azure CLI-fel Could not connect to the registry login server
  • Det går inte att skicka eller hämta avbildningar och du får Docker-fel unauthorized: authentication required
  • Det går inte att komma åt ett register med och az acr login du får ett felmeddelande 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.
  • Det går inte att komma åt registret från Azure Kubernetes Service, Azure DevOps eller någon annan Azure-tjänst
  • Det går inte att komma åt registret och du får fel Error response from daemon: login attempt failed with status: 403 Forbidden – Se Felsöka nätverksproblem med registret
  • Det går inte att komma åt eller visa registerinställningar i Azure-portalen eller hantera registret med hjälp av Azure CLI

Orsaker

  • Docker är inte korrekt konfigurerat i din miljö – lösning
  • Registret finns inte eller så är namnet felaktigt – lösning
  • Registerautentiseringsuppgifterna är inte giltiga – lösning
  • Den offentliga registeråtkomsten är inaktiverad. Regler för åtkomst till offentliga nätverk i registret förhindrar åtkomst – lösning
  • Autentiseringsuppgifterna är inte auktoriserade för push-, pull- eller Azure Resource Manager-åtgärder – lösning
  • Autentiseringsuppgifterna har upphört att gälla – lösning
  • Om du använder rollbaserad åtkomstkontroll i Microsoft Entra (RBAC) för att hantera registerbehörigheter för en Microsoft Entra-identitet (användare, hanterad identitet eller tjänstens huvudnamn) kan identiteten ha registerbehörigheter men inte lagringsplatsbehörigheter – lösning

Ytterligare diagnos

Kör kommandot az acr check-health för att få mer information om hälsotillståndet för registermiljön och eventuellt åtkomst till ett målregister. Diagnostisera till exempel Docker-konfigurationsfel eller Microsoft Entra-inloggningsproblem.

Se Kontrollera hälsotillståndet för ett Azure-containerregister för kommandoexempel. Om fel rapporteras läser du felreferensen och följande avsnitt för rekommenderade lösningar.

Följ anvisningarna från AKS-supportdokumentet om du inte kan hämta avbildningar från ACR till AKS-klustret.

Anmärkning

Vissa autentiserings- eller auktoriseringsfel kan också inträffa om det finns brandväggs- eller nätverkskonfigurationer som förhindrar registeråtkomst. Se Felsöka nätverksproblem med registret.

Potentiella lösningar

Kontrollera Docker-konfigurationen

De flesta Azure Container Registry-autentiseringsflöden kräver en lokal Docker-installation så att du kan autentisera med registret för åtgärder som att push-överföra och hämta avbildningar. Bekräfta att Docker CLI-klienten och daemon (Docker Engine) körs i din miljö. Du behöver Docker-klientversion 18.03 eller senare.

Relaterade länkar:

Ange rätt registernamn

När du använder docker loginanger du registrets fullständiga inloggningsservernamn, till exempel myregistry.azurecr.io. Kontrollera att du endast använder gemener. Exempel:

docker login myregistry.azurecr.io

När du använder az acr-inloggning med en Microsoft Entra-identitet loggar du först in på Azure CLI och anger sedan Azure-resursnamnet för registret. Resursnamnet är det namn som angavs när registret skapades, till exempel myregistry (utan ett domänsuffix). Exempel:

az acr login --name myregistry

Relaterade länkar:

Bekräfta autentiseringsuppgifter för åtkomst till registret

Kontrollera giltigheten för de autentiseringsuppgifter som du använder för ditt scenario eller har angetts av en registerägare. Några möjliga problem:

  • Om du använder ett Huvudnamn för Active Directory-tjänsten kontrollerar du att du använder rätt autentiseringsuppgifter i Active Directory-klientorganisationen:
    • Användarnamn – program-ID för tjänstens huvudnamn (kallas även klient-ID)
    • Lösenord – lösenord för tjänstens huvudnamn (kallas även klienthemlighet)
  • Om du använder en Azure-tjänst, till exempel Azure Kubernetes Service eller Azure DevOps för att komma åt registret, bekräftar du registerkonfigurationen för din tjänst.
  • Om du körde az acr login med --expose-token alternativet som aktiverar registerinloggning utan att använda Docker-daemon kontrollerar du att du autentiserar med användarnamnet 00000000-0000-0000-0000-000000000000.
  • Om registret har konfigurerats för anonym pull-åtkomst kan befintliga Docker-autentiseringsuppgifter som lagras från en tidigare Docker-inloggning förhindra anonym åtkomst. Kör docker logout innan du försöker utföra en anonym pull-åtgärd i registret.

Relaterade länkar:

Bekräfta att autentiseringsuppgifter har behörighet att komma åt registret

  • Om dina behörigheter nyligen har ändrats för att tillåta registeråtkomst via portalen kan du behöva prova en inkognito- eller privat session i webbläsaren för att undvika inaktuell webbläsarcache eller cookies.
  • Du eller en registerägare måste ha tillräcklig behörighet i prenumerationen för att kunna lägga till, ändra eller ta bort Microsoft Entra-rolltilldelningar. Behörigheter för att hantera Microsoft Entra-rolltilldelningar beviljas av Role Based Access Control Administrator rollen.
  • Åtkomst till ett register i portalen eller registerhantering med hjälp av Azure CLI kräver minst rollen Container Registry Contributor and Data Access Configuration Administrator eller motsvarande behörigheter för att utföra Azure Resource Manager-åtgärder.

Verifiera identitetsbehörigheter och rolltilldelningar

  • Om du använder rollbaserad åtkomstkontroll i Microsoft Entra (RBAC) för att hantera registerbehörigheter kontrollerar du att identiteten (användare, hanterad identitet eller tjänstens huvudnamn) har rätt rolltilldelning och behörigheter.
    • Om ditt läge för behörigheter för registerrolltilldelning (på bladet Egenskaper för Azure-portalen) är inställt på det nya alternativet "RBAC Registry + ABAC-lagringsplatsbehörigheter" och identiteten inte kan skicka, hämta eller ta bort avbildningar, kanske identiteten inte har behörighet att komma åt den specifika lagringsplats som avbildningen finns i.
      • Kontrollera befintliga rolltilldelningar och ABAC-villkor för rolltilldelning för att säkerställa att identiteten har rätt behörighet att komma åt lagringsplatsen.
      • Register med läget "RBAC Registry + ABAC Repository Permissions" respekterar inte de befintliga AcrPull, AcrPush, eller AcrDelete rollerna.
      • I stället respekterar sådana register bara rollerna Container Registry Repository Reader, Container Registry Repository Writeroch Container Registry Repository Contributor för att läsa, skriva eller ta bort avbildningar i lagringsplatser i ett register. Dessa roller kan ha valfria ABAC-villkor som begränsar behörigheter som beviljas till specifika lagringsplatser.
      • Observera att dessa roller inte beviljar behörigheter till kataloglistan för att lista lagringsplatser i registret. Om du vill visa en lista över lagringsplatser (men inte läsa innehåll i lagringsplatser) måste du tilldela Container Registry Repository Catalog Lister rollen till identiteten separat. Den här rollen stöder inte ABAC-villkor så den ger behörighet att lista alla lagringsplatser i ett register.
      • Mer information finns i Microsoft Entra-attributbaserad åtkomstkontroll (ABAC) för Microsoft Entra-baserade lagringsplatsbehörigheter.
    • Om ditt läge för behörigheter för registerrolltilldelning är inställt på det gamla alternativet "RBAC-registerbehörigheter" kanske identiteten inte har behörighet att komma åt registret och dess lagringsplatser.
      • Kontrollera befintliga rolltilldelningar för att säkerställa att identiteten har rätt behörighet att komma åt registret och dess lagringsplatser.
      • Register med läget "RBAC-registerbehörigheter" uppfyller endast rollerna AcrPull, AcrPusheller AcrDelete för att läsa, skriva eller ta bort avbildningar i lagringsplatser i ett register.
      • Mer information finns i Översikt över Microsoft Entra-behörigheter och roller i Azure Container Registry.

Relaterade länkar:

Kontrollera att autentiseringsuppgifterna inte har upphört att gälla

Token och Active Directory-autentiseringsuppgifter kan upphöra att gälla efter definierade perioder, vilket förhindrar registeråtkomst. För att aktivera åtkomst kan autentiseringsuppgifter behöva återställas eller återskapas.

  • Om du använder en enskild AD-identitet, en hanterad identitet eller tjänstens huvudnamn för registerinloggning upphör AD-token att gälla efter 3 timmar. Logga in igen till registret.
  • Om du använder ett AD-tjänsthuvudnamn med en klienthemlighet som har upphört att gälla måste en prenumerationsägare eller kontoadministratör återställa autentiseringsuppgifterna eller generera ett nytt huvudnamn för tjänsten.
  • Om du använder en icke-Microsoft Entra-tokenbaserad lagringsplatsbehörighet kan en registerägare behöva återställa ett lösenord eller generera en ny token.

Relaterade länkar:

Avancerad felsökning

Om insamling av resursloggar är aktiverad i registret läser du loggen ContainerRegistryLoginEvents. Den här loggen lagrar autentiseringshändelser och status, inklusive inkommande identitet och IP-adress. Fråga loggen efter fel vid registerautentisering.

Relaterade länkar:

Nästa steg

Om du inte löser problemet här kan du läsa följande alternativ.