Eseguire l'autenticazione con un registro contenitori Docker privatoAuthenticate with a private Docker container registry

Esistono diversi modi per eseguire l'autenticazione con un Registro Azure Container, ognuno dei quali è applicabile a uno o più scenari di utilizzo del registro.There are several ways to authenticate with an Azure container registry, each of which is applicable to one or more registry usage scenarios.

Le modalità consigliate includono l'autenticazione a un registro direttamente tramite un singolo account di accesso, oppure le applicazioni e gli agenti di orchestrazione dei contenitori possono eseguire l'autenticazione automatica o senza test tramite un' entità servizioAzure Active Directory (Azure ad).Recommended ways include authenticating to a registry directly via individual login, or your applications and container orchestrators can perform unattended, or "headless," authentication by using an Azure Active Directory (Azure AD) service principal.

Accesso individuale con Azure ADIndividual login with Azure AD

Quando si usa direttamente il registro, ad esempio per eseguire il pull o il push delle immagini da una workstation di sviluppo, eseguire l'autenticazione usando il comando az acr login nell'interfaccia della riga di comando di Azure:When working with your registry directly, such as pulling images to and pushing images from a development workstation, authenticate by using the az acr login command in the Azure CLI:

az acr login --name <acrName>

Quando si accede con az acr login, l'interfaccia della riga di comando usa il token creato quando si è eseguito az login per l'autenticazione semplificata della sessione al registro.When you log in with az acr login, the CLI uses the token created when you executed az login to seamlessly authenticate your session with your registry. Dopo aver effettuato l'accesso in questo modo, le credenziali vengono memorizzate nella cache e i successivi comandi docker nella sessione non richiedono il nome utente o la password.Once you've logged in this way, your credentials are cached, and subsequent docker commands in your session do not require a username or password.

Per l'accesso al registro, il token usato da az acr login è valido per un'ora, pertanto è consigliabile accedere al registro sempre prima di eseguire un comando docker.For registry access, the token used by az acr login is valid for 1 hour, so we recommend that you always log in to the registry before running a docker command. In caso di scadenza del token, è possibile aggiornarlo usando di nuovo il comando az acr login per eseguire nuovamente l'autenticazione.If your token expires, you can refresh it by using the az acr login command again to reauthenticate.

L'uso di az acr login con le identità di Azure offre l'accesso in base al ruolo.Using az acr login with Azure identities provides role-based access. Per alcuni scenari è possibile accedere a un registro con la propria identità singola in Azure AD.For some scenarios you may want to log in to a registry with your own individual identity in Azure AD. Per gli scenari tra servizi o per coordinare le esigenze di un gruppo di lavoro in cui non si vuole gestire l'accesso singolo, è anche possibile accedere con un'identità gestita per le risorse di Azure.For cross-service scenarios or to handle the needs of a workgroup where you don't want to manage individual access, you can also log in with a managed identity for Azure resources.

Entità servizioService principal

Se si assegna un'entità servizio al registro, l'applicazione o il servizio può usarla per eseguire l'autenticazione headless.If you assign a service principal to your registry, your application or service can use it for headless authentication. Le entità servizio consentono di eseguire l'accesso in base al ruolo a un registro. È possibile assegnare più entità servizio a un registro.Service principals allow role-based access to a registry, and you can assign multiple service principals to a registry. L'uso di più entità servizio consente di definire un accesso diverso per applicazioni diverse.Multiple service principals allow you to define different access for different applications.

I ruoli disponibili per un registro contenitori includono:The available roles for a container registry include:

  • AcrPull: pullAcrPull: pull

  • AcrPush: pull e pushAcrPush: pull and push

  • Proprietario: pull, push e assegnazione di ruoli ad altri utentiOwner: pull, push, and assign roles to other users

Per un elenco completo dei ruoli, vedere Ruoli e autorizzazioni di Registro Azure Container.For a complete list of roles, see Azure Container Registry roles and permissions.

Per gli script dell'interfaccia della riga di comando per creare un'entità servizio per l'autenticazione con un registro contenitori di Azure e istruzioni sull'uso di un'entità servizio, vedere autenticazione container Registry di Azure con entità servizio.For CLI scripts to create a service principal for authenticating with an Azure container registry, and guidance on using a service principal, see Azure Container Registry authentication with service principals.

Account amministratoreAdmin account

Ogni registro contenitori include un account utente amministratore che, per impostazione predefinita, è disabilitato.Each container registry includes an admin user account, which is disabled by default. È possibile abilitare l'utente amministratore e gestirne le credenziali nel portale di Azure oppure tramite l'interfaccia della riga di comando o altri strumenti di Azure.You can enable the admin user and manage its credentials in the Azure portal, or by using the Azure CLI or other Azure tools.

Importante

L'account amministratore è pensato per consentire l'accesso al registro a un singolo utente, principalmente a scopo di test.The admin account is designed for a single user to access the registry, mainly for testing purposes. Non è consigliabile condividere le credenziali dell'account amministratore tra più utenti.We do not recommend sharing the admin account credentials among multiple users. Tutti gli utenti che si autenticano con l'account amministratore vengono visualizzati come un unico utente con accesso di tipo push e pull al registro.All users authenticating with the admin account appear as a single user with push and pull access to the registry. Se si modifica o si disattiva questo account, tutti gli utenti che ne usano le credenziali non potranno più accedere al registro.Changing or disabling this account disables registry access for all users who use its credentials. Negli scenari di tipo headless è consigliabile che gli utenti e le entità servizio abbiano una propria identità.Individual identity is recommended for users and service principals for headless scenarios.

L'account amministratore è dotato di due password, entrambe rigenerabili.The admin account is provided with two passwords, both of which can be regenerated. L'uso di due password consente di mantenere la connessione al registro usando una password mentre si rigenera l'altra.Two passwords allow you to maintain connection to the registry by using one password while you regenerate the other. Se l'account amministratore è abilitato, è possibile passare il nome utente e una password al comando docker login quando richiesto, per eseguire l'autenticazione di base al registro.If the admin account is enabled, you can pass the username and either password to the docker login command when prompted for basic authentication to the registry. Ad esempio:For example:

docker login myregistry.azurecr.io 

Per le procedure consigliate per gestire le credenziali di accesso, vedere le informazioni di riferimento sul comando Docker login .For best practices to manage login credentials, see the docker login command reference.

Per consentire a un utente amministratore di accedere a un registro esistente, è possibile usare il parametro --admin-enabled del comando az acr update nell'interfaccia della riga di comando di Azure:To enable the admin user for an existing registry, you can use the --admin-enabled parameter of the az acr update command in the Azure CLI:

az acr update -n <acrName> --admin-enabled true

Per abilitare l'utente amministratore nel portale di Azure, passare al registro interessato, selezionare Chiavi di accesso in IMPOSTAZIONI, quindi selezionare Abilita in Utente amministratore.You can enable the admin user in the Azure portal by navigating your registry, selecting Access keys under SETTINGS, then Enable under Admin user.

Abilitare l'interfaccia utente dell'utente amministratore nel portale di Azure

Passaggi successiviNext steps