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 login
eller båda - Det går inte att logga in på registret och du får fel
unauthorized: authentication required
ellerunauthorized: 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 felmeddelandeCONNECTIVITY_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 login
anger 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ändarnamnet00000000-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:
- Översikt över autentisering
- Individuell inloggning med Microsoft Entra-ID
- Logga in med tjänstens huvudnamn
- Logga in med hanterad identitet
- Logga in med token med lagringsplatsomfattning
- Logga in med administratörskonto
- Microsoft Entra-autentisering och auktoriseringsfelkoder
- az acr login reference
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:
- Azure-roller och -behörigheter – Azure Container Registry
- Logga in med token med lagringsplatsomfattning
- Lägga till eller ta bort rolltilldelningar för Azure med hjälp av Azure-portalen
- Använd portalen för att skapa ett Microsoft Entra-program och tjänstens huvudnamn som kan komma åt resurser
- Skapa en ny programhemlighet
- Autentiserings- och auktoriseringskoder för Microsoft Entra
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:
- Återställa autentiseringsuppgifter för tjänstens huvudnamn
- Återskapa tokenlösenord
- Individuell inloggning med Microsoft Entra-ID
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:
- Loggar för diagnostisk utvärdering och granskning
- Vanliga frågor och svar om containerregister
- Metodtips för Azure Container Registry
Nästa steg
Om du inte löser problemet här kan du läsa följande alternativ.
- Andra avsnitt om registerfelsökning är:
- Community-supportalternativ
- Microsoft Q&A
- Öppna ett supportärende – baserat på information som du anger kan en snabb diagnostik köras för autentiseringsfel i registret