Řešení potíží s přihlášením k registru

Tento článek vám pomůže vyřešit problémy, se kterými se můžete setkat při přihlašování do registru kontejneru Azure.

Příznaky

Může obsahovat jednu nebo více z následujících možností:

  • Nejde se přihlásit k registru pomocí docker login, az acr loginnebo obojího
  • Nejde se přihlásit k registru a zobrazí se chyba unauthorized: authentication required nebo unauthorized: Application not registered with AAD
  • Nejde se přihlásit k registru a zobrazí se chyba Azure CLI Could not connect to the registry login server
  • Nepodařilo se nasdílit nebo vyžádat image a zobrazí se chyba Dockeru unauthorized: authentication required
  • Nejde získat přístup k registru pomocí az acr login registru a zobrazí se chyba 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.
  • Nejde získat přístup k registru z Azure Kubernetes Service, Azure DevOps nebo jiné služby Azure
  • Nejde získat přístup k registru a zobrazí se chyba Error response from daemon: login attempt failed with status: 403 ForbiddenPřečtěte si téma Řešení potíží se sítí s registrem
  • Nejde získat přístup k nastavení registru nebo zobrazit v Azure Portal nebo spravovat registr pomocí Azure CLI

Příčiny

  • Docker není ve vašem prostředí správně nakonfigurovaný – řešení
  • Registr neexistuje nebo je název nesprávný – řešení
  • Přihlašovací údaje registru nejsou platné – řešení
  • Veřejný přístup registru je zakázaný. Pravidla přístupu k veřejné síti v registru brání přístupu – řešení
  • Přihlašovací údaje nejsou autorizované pro operace nabízených oznámení, přijetí změn nebo azure Resource Manager – řešení
  • Platnost přihlašovacích údajů vypršela – řešení

Další diagnostika

Spuštěním příkazu az acr check-health získejte další informace o stavu prostředí registru a volitelně přístup k cílovému registru. Můžete například diagnostikovat chyby konfigurace Dockeru nebo problémy s přihlášením ke službě Azure Active Directory.

Příklady příkazů najdete v tématu Kontrola stavu registru kontejneru Azure . Pokud jsou nahlášeny chyby, projděte si referenční informace k chybám a v následujících částech se podívejte na doporučená řešení.

Pokud se nepodaří načíst image z ACR do clusteru AKS, postupujte podle pokynů v dokumentaci podpory AKS .

Poznámka

K některým chybám ověřování nebo autorizace může dojít také v případě, že existují konfigurace brány firewall nebo sítě, které brání přístupu k registru. Viz Řešení potíží se sítí s registrem.

Možná řešení

Kontrola konfigurace Dockeru

Většina toků ověřování Azure Container Registry vyžaduje místní instalaci Dockeru, abyste se mohli ověřit v registru pro operace, jako je nabízení a načítání imagí. Ověřte, že ve vašem prostředí běží klient Rozhraní příkazového řádku Dockeru a proces démon (Modul Dockeru). Potřebujete klienta Dockeru verze 18.03 nebo novější.

Související odkazy:

Zadejte správný název registru.

Při použití docker loginzadejte úplný název přihlašovacího serveru registru, například myregistry.azurecr.io. Ujistěte se, že používáte jenom malá písmena. Příklad:

docker login myregistry.azurecr.io

Při použití příkazu az acr login s identitou Azure Active Directory se nejprve přihlaste k Azure CLI a pak zadejte název prostředku Azure registru. Název prostředku je název zadaný při vytvoření registru, například myregistry (bez přípony domény). Příklad:

az acr login --name myregistry

Související odkazy:

Potvrzení přihlašovacích údajů pro přístup k registru

Zkontrolujte platnost přihlašovacích údajů, které používáte pro váš scénář, nebo vám je poskytl vlastník registru. Některé možné problémy:

  • Pokud používáte instanční objekt služby Active Directory, ujistěte se, že používáte správné přihlašovací údaje v tenantovi služby Active Directory:
    • Uživatelské jméno – ID aplikace instančního objektu (označované také jako ID klienta)
    • Heslo – heslo instančního objektu (označované také jako tajný klíč klienta)
  • Pokud pro přístup k registru používáte službu Azure, jako je Azure Kubernetes Service nebo Azure DevOps, ověřte konfiguraci registru pro vaši službu.
  • Pokud jste spustili az acr login s --expose-token možností, která povolí přihlášení registru bez použití démona Dockeru, ujistěte se, že jste se ověřili pomocí uživatelského jména 00000000-0000-0000-0000-000000000000.
  • Pokud je váš registr nakonfigurovaný pro anonymní přístup k vyžádání změn, stávající přihlašovací údaje Dockeru uložené z předchozího přihlášení Dockeru můžou zabránit anonymnímu přístupu. Spusťte docker logout před pokusem o anonymní operaci vyžádání změn v registru.

Související odkazy:

Potvrzení oprávnění přihlašovacích údajů pro přístup k registru

Ověřte oprávnění registru, která jsou přidružená k přihlašovacím údajům, jako AcrPull je role Azure pro načítání imagí z registru nebo AcrPush role pro nabízení imagí.

Přístup k registru na portálu nebo správě registru pomocí Azure CLI vyžaduje alespoň Reader roli nebo ekvivalentní oprávnění k provádění operací azure Resource Manager.

Pokud se vaše oprávnění nedávno změnila tak, aby umožňovala přístup k registru přes portál, možná budete muset v prohlížeči vyzkoušet anonymní nebo soukromou relaci, abyste se vyhnuli zastaralé mezipaměti prohlížeče nebo souborům cookie.

Pokud chcete přidat nebo odebrat přiřazení rolí, musíte mít v předplatném dostatečná oprávnění.

Související odkazy:

Zkontrolujte, jestli nevypršela platnost přihlašovacích údajů.

Platnost tokenů a přihlašovacích údajů služby Active Directory může vypršet po definovaných obdobích, což brání přístupu k registru. Pokud chcete povolit přístup, bude možná potřeba přihlašovací údaje resetovat nebo znovu vygenerovat.

  • Pokud pro přihlášení k registru používáte individuální identitu AD, spravovanou identitu nebo instanční objekt, platnost tokenu AD vyprší po 3 hodinách. Znovu se přihlaste k registru.
  • Pokud používáte instanční objekt AD s tajným kódem klienta s prošlou platností, musí vlastník předplatného nebo správce účtu resetovat přihlašovací údaje nebo vygenerovat nový instanční objekt.
  • Pokud používáte token s oborem úložiště, může vlastník registru potřebovat resetovat heslo nebo vygenerovat nový token.

Související odkazy:

Řešení potíží na pokročilé úrovni

Pokud je v registru povolená kolekce protokolů prostředků , zkontrolujte protokol ContainerRegistryLoginEvents. Tento protokol ukládá události a stav ověřování, včetně příchozí identity a IP adresy. Dotazujte se na protokol selhání ověřování registru.

Související odkazy:

Další kroky

Pokud tady problém nevyřešíte, podívejte se na následující možnosti.