Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt zich op verschillende manieren verifiëren met een Azure-containerregister. Bekijk deze opties om te bepalen wat het beste werkt voor uw containerregistergebruiksscenario.
Voor de meeste scenario's moet u verifiëren met behulp van een van de volgende methoden op basis van Microsoft Entra ID:
- Afzonderlijke aanmelding : rechtstreeks verifiëren bij een register
- Service principal - een Microsoft Entra-service-principal gebruiken voor onbeheerde of 'headless'-verificatie door toepassingen en containerorkestrators
Verificatieopties
De volgende tabel bevat beschikbare verificatiemethoden en typische scenario's, met koppelingen naar meer informatie.
Aanbeveling
Zie Scenario's voor verificatie vanuit Azure Kubernetes Service (AKS) of een ander Kubernetes-cluster voor verificatie met Azure Container Registry vanuit Kubernetes.
| Methode | Hoe te verifiëren | Scenario's | Op rollen gebaseerd toegangsbeheer van Microsoft Entra (RBAC) | Beperkingen |
|---|---|---|---|---|
| Afzonderlijke Microsoft Entra-identiteit |
az acr login in Azure CLIConnect-AzContainerRegistry in Azure PowerShell |
Interactieve push/pull mogelijk gemaakt door ontwikkelaars, testers | Ja | Microsoft Entra-token moet elke 3 uur worden vernieuwd |
| Microsoft Entra Service Principal | docker loginaz acr login in Azure CLIConnect-AzContainerRegistry in Azure PowerShellRegisteraanmeldingsinstellingen in API's of hulpprogramma's |
Push zonder toezicht vanuit CI/CD-pipeline Onbeheerde pull naar Azure of externe services |
Ja | De standaardvervaltermijn voor het SP-wachtwoord is 1 jaar. |
| Door Microsoft Entra beheerde identiteit voor Azure-resources | docker loginaz acr login in Azure CLIConnect-AzContainerRegistry in Azure PowerShell |
Onbeheerde push vanuit Azure CI/CD-pijplijn Automatische pull naar Azure-services Zie ACR Entra-machtigingen en roltoewijzingen voor een lijst met scenario's voor roltoewijzing van beheerde identiteiten. |
Ja | Kan alleen worden gebruikt in bepaalde Azure-services die beheerde identiteiten ondersteunen voor Azure-resources |
| Gebruiker met beheerdersrechten | docker login |
Interactieve push/pull door individuele ontwikkelaar of tester Implementatie via de portal van images uit register naar Azure App Service of Azure Container Instances |
Nee, altijd pull- en pushtoegang | Hoog toegangsniveau. Eén account per register; niet aanbevolen voor meerdere gebruikers |
| Niet-Microsoft Entra-tokenmachtigingen voor opslagplaatsen | docker loginaz acr login in Azure CLIConnect-AzContainerRegistry in Azure PowerShell |
Interactieve push/pull naar opslagplaats door individuele ontwikkelaar of tester Pull zonder toezicht uit de opslagplaats per afzonderlijk systeem of extern apparaat |
Op tokens gebaseerde opslagplaatsmachtigingen bieden geen ondersteuning voor roltoewijzingen van Microsoft Entra RBAC. Zie in plaats daarvan voor opslagplaatsmachtigingen op basis van Microsoft Entra de kenmerk-gebaseerde toegangscontrole (ABAC) machtigingen in Azure Container Registry. |
Momenteel niet geïntegreerd met Microsoft Entra-id |
Verifiëren met Microsoft Entra-id
Wanneer u rechtstreeks met uw register werkt, zoals het ophalen van installatiekopieën en het pushen van installatiekopieën van een ontwikkelwerkstation naar een register dat u hebt gemaakt, verifieert u zich met behulp van uw afzonderlijke Azure-identiteit.
Meld u aan bij de Azure CLI met behulp van az login en voer vervolgens de opdracht az acr login uit:
az login
az acr login --name <acrName>
Wanneer u zich aanmeldt met behulp van, az acr logingebruikt de CLI het token dat is gemaakt tijdens het uitvoeren az login om uw sessie naadloos te verifiëren met uw register. Als u de verificatiestroom wilt voltooien, moeten de Docker CLI en docker-daemon worden geïnstalleerd en uitgevoerd in uw omgeving.
az acr login gebruikt de Docker-client om een Microsoft Entra-token in het docker.config bestand in te stellen. Nadat u zich op deze manier hebt aangemeld, worden uw referenties in de cache opgeslagen en hebben volgende docker opdrachten in uw sessie geen gebruikersnaam of wachtwoord nodig.
Aanbeveling
Gebruik az acr login ook om een afzonderlijke identiteit te verifiëren wanneer u andere artefacten dan Docker-afbeeldingen naar uw register wilt verplaatsen of ophalen, zoals OCI-artefacten.
Voor registertoegang is het token dat az acr login wordt gebruikt 3 uur geldig. Meld u daarom altijd aan bij het register voordat u een docker opdracht uitvoert. Als uw token verloopt, vernieuwt u het opnieuw met behulp van de az acr login opdracht om opnieuw te verifiëren.
Met azure-identiteiten az acr login kunt u op rollen gebaseerd toegangsbeheer van Azure (RBAC) inschakelen. Voor sommige scenario's wilt u zich mogelijk aanmelden bij een register met uw eigen afzonderlijke identiteit in Microsoft Entra ID of andere Azure-gebruikers met specifieke rollen configureren. Voor scenario's tussen services of voor een werkgroep of een ontwikkelwerkstroom waarvoor u geen afzonderlijke toegang wilt beheren, kunt u zich ook aanmelden met behulp van een beheerde identiteit voor Azure-resources.
Az acr login zonder Docker daemon gebruiken
In sommige gevallen moet u zich verifiëren door az acr login te gebruiken wanneer de Docker-daemon niet actief is in uw omgeving. U moet az acr login bijvoorbeeld uitvoeren in een script in Azure Cloud Shell, dat de Docker CLI biedt, maar de Docker-daemon niet uitvoert.
Voor dit scenario, voer az acr login uit met de --expose-token-parameter. Met deze optie wordt een toegangstoken geretourneerd in plaats van u aan te melden via de Docker CLI.
az acr login --name <acrName> --expose-token
In de uitvoer wordt het toegangstoken weergegeven, afgekort hier:
{
"accessToken": "eyJhbGciOiJSUzI1NiIs[...]24V7wA",
"loginServer": "myregistry.azurecr.io"
}
Voor registerverificatie slaat u de tokenreferenties op een veilige locatie op en volgt u de aanbevolen procedures voor het beheren van docker-aanmeldingsreferenties . Sla bijvoorbeeld de tokenwaarde op in een omgevingsvariabele:
TOKEN=$(az acr login --name <acrName> --expose-token --output tsv --query accessToken)
Voer docker login vervolgens uit, geef 00000000-0000-0000-0000-000000000000 door als de gebruikersnaam en het toegangstoken als het wachtwoord.
docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN
Op dezelfde manier kunt u het token gebruiken dat wordt geretourneerd door az acr login de helm registry login opdracht om te verifiëren met het register:
echo $TOKEN | helm registry login myregistry.azurecr.io \
--username 00000000-0000-0000-0000-000000000000 \
--password-stdin
Service-principal
Als u een service-principal toekent aan uw register, kan uw toepassing of service deze gebruiken voor authenticatie zonder gebruikersinterface. Service-principals maken op rollen gebaseerd toegangsbeheer (RBAC) van Azure in een register mogelijk. U kunt meerdere service-principals toewijzen aan een register, zodat u verschillende ondersteunde rollen voor specifieke toepassingen kunt gebruiken.
Zie Azure Container Registry-verificatie met service-principals voor meer informatie.
Beheerdersaccount
Elk containerregister bevat een gebruikersaccount voor beheerders, dat standaard is uitgeschakeld. U kunt de gebruiker met beheerdersrechten inschakelen en de referenties ervan beheren in Azure Portal, of met behulp van de Azure CLI, Azure PowerShell of andere Azure-hulpprogramma's. Het beheerdersaccount heeft volledige machtigingen voor het register, dus schakel het alleen in wanneer dat nodig is.
Het beheerdersaccount is momenteel vereist voor sommige scenario's om een image van een containerregister naar bepaalde Azure-services te implementeren. Het beheerdersaccount is bijvoorbeeld nodig wanneer u de Azure portal gebruikt om een containerimage rechtstreeks van een register te implementeren naar Azure Container Instances of Azure Container Apps.
Belangrijk
Het beheerdersaccount is bedoeld om één gebruiker toegang te bieden tot het register, voornamelijk voor testdoeleinden. Deel de inloggegevens van het beheerdersaccount niet onder meerdere gebruikers. Alle gebruikers die verifiëren met het beheerdersaccount, worden weergegeven als één gebruiker met push- en pull-toegang tot het register. Als u dit account wijzigt of uitschakelt, wordt toegang tot het Windows-register uitgeschakeld voor alle gebruikers die de bijbehorende referenties gebruiken. Gebruik afzonderlijke identiteiten voor gebruikers en service-principals voor hoofdloze scenario's.
Het beheerdersaccount heeft twee wachtwoorden, waarvan u beide opnieuw kunt genereren. Het opnieuw genereren van wachtwoorden voor beheerdersaccounts duurt ongeveer 60 seconden om te repliceren en beschikbaar te worden. Omdat het account twee wachtwoorden heeft, kunt u verbinding met het register onderhouden door het ene wachtwoord te gebruiken terwijl u het andere opnieuw genereert. Als u het beheerdersaccount inschakelt, kunt u de gebruikersnaam en het wachtwoord doorgeven aan de docker login opdracht wanneer u wordt gevraagd om basisverificatie naar het register.
Zie de referentie voor de docker-aanmeldingsopdracht voor aanbevolen procedures voor het beheren van verificatiereferenties.
Als u de beheerder van een bestaand register wilt inschakelen, gebruikt u de --admin-enabled parameter van de opdracht az acr update in de Azure CLI:
az acr update -n <acrName> --admin-enabled true
U kunt de gebruiker met beheerdersrechten ook inschakelen voor uw register in Azure Portal. Selecteer toegangssleutels in het servicemenu onder Instellingen. Schakel vervolgens het Beheerder selectievakje in om het account te activeren. De gebruikersnaam van de beheerder wordt weergegeven, samen met de twee wachtwoorden, die u indien nodig kunt weergeven of opnieuw genereren.
Aanmelden met behulp van een alternatief containerhulpprogramma in plaats van Docker
In sommige scenario's moet u alternatieve containerhulpprogramma's gebruiken, zoals podman in plaats van Docker.
Het standaardcontainerhulpprogramma is ingesteld op docker voor az acr login opdrachten. Als u het standaardcontainerhulpprogramma niet instelt en de docker opdracht ontbreekt in uw omgeving, ziet u een fout. Als u het standaardcontainerhulpprogramma wilt wijzigen dat door de az acr login opdracht wordt gebruikt, stelt u de omgevingsvariabele DOCKER_COMMANDin. Voorbeeld:
DOCKER_COMMAND=podman \
az acr login --name <acrName>