針對登錄登入進行疑難排解

本文可協助您針對登錄到 Azure 容器時,可能會遇到的問題進行疑難排解。

徵兆

可能包含下列一或多項:

  • 無法使用 docker loginaz acr login 或兩者登入登錄
  • 無法登入登錄,而且您收到錯誤 unauthorized: authentication requiredunauthorized: Application not registered with AAD
  • 無法登入登錄,而且您收到 Azure CLI 錯誤 Could not connect to the registry login server
  • 無法推送或提取影像,且您收到錯誤 unauthorized: authentication required
  • 無法存取使用 az acr login 的登錄,且您收到錯誤 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.
  • 無法從 Azure Kubernetes Service、Azure DevOps 或其他 Azure 服務存取登錄
  • 無法存取登錄並收到錯誤 Error response from daemon: login attempt failed with status: 403 Forbidden - 請參閱針對登錄的網路問題進行疑難排解
  • 無法存取或檢視 Azure 入口網站中的登錄設定,或使用 Azure CLI 管理登錄

原因

進一步診斷

執行 az acr check-health 命令以取得登錄環境健康情況的詳細資訊,並選擇性存取目標登錄。 例如,診斷 Docker 設定錯誤或 Microsoft Entra 登入問題。

如需命令範例,請參閱檢查 Azure 容器登錄的健康情況。 如果報告了錯誤,請檢閱錯誤參考和下列各節,以取得建議的解決方案。

如果您無法從 ACR 提取映射到 AKS 叢集,請遵循 AKS 支援文件中的指示。

注意

如果有防火牆或網路設定可防止登錄存取,也可能會發生某些驗證或授權錯誤。 請參閱針對登錄的網路問題進行疑難排解

可能的解決方案

檢查 Docker 組態

大部分 Azure Container Registry 驗證流程都需要本機 Docker 安裝,因此您可以向登錄進行驗證,以進行推送和提取映射等作業。 確認 Docker CLI 用戶端和精靈 (Docker 引擎) 在您的環境中執行。 您需要 Docker 用戶端 18.03 版或更新版本。

相關連結:

指定正確的登錄名稱

使用 docker login 時,請提供登錄的完整登入伺服器名稱,例如 myregistry.azurecr.io。 請確定您只使用小寫字母。 範例:

docker login myregistry.azurecr.io

搭配 Microsoft Entra 身分識別使用 az acr login 時,請先登入 Azure CLI,然後指定登錄的 Azure 資源名稱。 資源名稱是建立登錄時提供的名稱,例如 myregistry (沒有網域尾碼)。 範例:

az acr login --name myregistry

相關連結:

確認認證以存取登錄

檢查您用於案例的認證有效性,或由登錄擁有者提供給您。 一些可能的問題:

  • 如果使用 Active Directory 服務主體,請確定您在 Active Directory 租用戶中使用正確的認證:
    • 使用者名稱 - 服務主體應用程式識別碼 (又稱用戶端識別碼)
    • 密碼 - 服務主體密碼 (又稱用戶端密碼)
  • 如果使用 Azure 服務,例如 Azure Kubernetes Service 或 Azure DevOps 以存取登錄,請確認服務的登錄設定。
  • 如果您使用 az acr login--expose-token 選項執行,這會啟用登錄登入而不使用 Docker 精靈,請確定您使用使用者名稱 00000000-0000-0000-0000-000000000000 進行驗證。
  • 如果您的登錄設定為 匿名提取存取,則從先前 Docker 登入儲存的現有 Docker 認證可能會防止匿名存取。 在登錄上嘗試匿名提取作業之前執行 docker logout

相關連結:

確認認證已獲授權可存取登錄

確認與認證相關聯的登入權利,例如從登錄提取映射的 AcrPull Azure 角色,或 AcrPush 推送映射的角色。

使用 Azure CLI 存取入口網站或登錄管理中的登錄,至少 Reader 需要角色或對等許可權才能執行 Azure Resource Manager 作業。

如果您的權限最近變更為允許透過入口網站進行登錄存取,您可能需要嘗試瀏覽器中的 incognito 或私人工作階段,以避免任何過時的瀏覽器快取或 Cookie。

您或登錄擁有者必須擁有訂閱中足夠的權限,才能新增或移除角色指派。

相關連結:

檢查認證是否未過期

權杖和 Active Directory 認證可能會在定義期間之後過期,以防止登錄存取。 若要啟用存取,可能需要重設或重新產生認證。

  • 如果使用個別 AD 身分識別、受控識別或服務主體進行登錄登入,AD 權杖會在 3 小時後到期。 再次登入登錄。
  • 如果使用 AD 服務主體與過期的用戶端密碼,訂閱擁有者或帳戶管理員必須重設認證或產生新的服務主體。
  • 如果使用存放庫範圍的權杖,登錄擁有者可能需要重設密碼或產生新的權杖。

相關連結:

進階疑難排解

如果在登錄中啟用了資源記錄集合,請檢閱 ContainerRegistryLoginEvents 記錄。 此記錄會儲存驗證事件和狀態,包括傳入身分識別和 IP 位址。 查詢記錄中是否有登錄驗證失敗

相關連結:

下一步

如果此處無法解決您的問題,請參閱下列選項。