Felsöka registerinloggning

Den här artikeln hjälper dig att felsöka problem som kan uppstå när du loggar in i ett Azure-containerregister.

Symtom

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

  • Det går inte att logga in på registret med hjälp av docker login, az acr logineller båda
  • Det går inte att logga in på registret och du får fel unauthorized: authentication required eller unauthorized: Application not registered with AAD
  • Det går inte att logga in på 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 Portal 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

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.

Kommentar

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

Bekräfta de registerbehörigheter som är associerade med autentiseringsuppgifterna, till exempel AcrPull Azure-rollen för att hämta avbildningar från registret eller AcrPush rollen för att skicka avbildningar.

Åtkomst till ett register i portalen eller registerhantering med hjälp av Azure CLI kräver minst rollen Reader eller motsvarande behörigheter för att utföra Azure Resource Manager-åtgärder.

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 lägga till eller ta bort rolltilldelningar.

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 token med lagringsplatsomfattning 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.