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

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

徵兆

可能包含下列一或多個專案:

  • 無法使用、 az acr login或兩者登入登錄docker login
  • 無法登入登錄,且您收到錯誤 unauthorized: authentication requiredunauthorized: Application not registered with AAD
  • 無法登入登錄,而且您收到 Azure CLI 錯誤 Could not connect to the registry login server
  • 無法推送或提取映像,而且您收到 Docker 錯誤 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 CLI 存取或檢視 Azure 入口網站 中的登錄設定或管理登錄

原因

進一步診斷

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

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

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

注意

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

可能的解決方案

檢查 Docker 組態

大部分的 Azure Container Registry 驗證流程都需要本機 Docker 安裝,以便向登錄進行驗證,以進行推送和提取映像等作業。 確認 Docker CLI 用戶端和精靈 (Docker Engine) 正在您的環境中執行。 您需要 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 Kubernetes Service 或 Azure DevOps 等 Azure 服務來存取登錄,請確認服務的登錄組態。
  • 如果您已使用 --expose-token 選項執行 az acr login ,其會啟用登錄登入而不使用 Docker 精靈,請確定您使用使用者名稱 00000000-0000-0000-0000-000000000000進行驗證。
  • 如果您的登錄已設定為 匿名提取存取,則從先前 Docker 登入儲存的現有 Docker 認證可能會防止匿名存取。 先執行 docker logout ,再嘗試登錄上的匿名提取作業。

相關連結:

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

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

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

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

您或登錄擁有者在訂用帳戶中必須具有足夠的許可權,才能新增或移除角色指派。

相關連結:

檢查認證是否未過期

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

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

相關連結:

進階疑難排解

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

相關連結:

下一步

如果您無法在這裡解決問題,請參閱下列選項。