Erstellen eines Token mit repositorybezogenen Berechtigungen

In diesem Artikel wird beschrieben, wie Token und Bereichszuordnungen erstellt werden, um den Zugriff auf Repositorys in Ihrer Containerregistrierung zu verwalten. Durch die Erstellung von Token kann ein Registrierungsbesitzer Benutzern oder Diensten einen bereichsbezogenen, zeitlich begrenzten Zugriff auf Repositorys gewähren, um Images zu pullen oder zu pushen oder andere Aktionen durchzuführen. Ein Token bietet detailliertere Berechtigungen als andere Authentifizierungsoptionen für Registrierungen, die Berechtigungen für eine gesamte Registrierung umfassen.

Häufige Szenarien zum Erstellen eines Tokens sind:

  • Lassen Sie IoT-Geräte mit einzelnen Token das Abrufen eines Bilds aus einem Repository zu.
  • Bereitstellen einer externen Organisation mit Berechtigungen für einen Repositorypfad.
  • Einschränken des Zugriffs auf verschiedene Benutzergruppen in Ihrer Organisation. Beispielsweise Bereitstellen von Schreib- und Lesezugriff für Entwickler, die Images für bestimmte Repositorys erstellen, und von Lesezugriff für Teams, die aus diesen Repositorys Bereitstellungen durchführen.

Dieses Feature ist in allen Dienstebenen verfügbar. Informationen zu den Tarifen und Einschränkungen des Registrierungsdiensts finden Sie unter Azure Container Registry-Tarife.

Begrenzungen

  • Zurzeit können Sie einer Microsoft Entra-Identität (z. B. einem Dienstprinzipal oder einer verwalteten Identität) keine repositorybezogenen Berechtigungen zuweisen.

Konzepte

Zum Konfigurieren von repositorybezogenen Berechtigungen erstellen Sie ein Token mit einer zugehörigen Bereichszuordnung.

  • Ein Token zusammen mit einem generierten Kennwort ermöglicht dem Benutzer die Authentifizierung bei der Registrierung. Sie können ein Ablaufdatum für ein Tokenkennwort festlegen oder ein Token jederzeit deaktivieren.

    Nach der Authentifizierung mit einem Token kann der Benutzer oder Dienst eine oder mehrere Aktionen durchführen, die auf ein oder mehrere Repositorys verteilt sind.

    Aktion Beschreibung Beispiel
    content/delete Entfernen von Daten aus dem Repository Löschen eines Repositorys oder eines Manifests
    content/read Lesen von Daten aus dem Repository Pullen eines Artefakts
    content/write Schreiben von Daten in das Repository Verwenden der Aktion zusammen mit content/read zum Pushen eines Artefakts
    metadata/read Lesen von Metadaten aus dem Repository Auflisten von Tags oder Manifesten
    metadata/write Schreiben von Metadaten in das Repository Aktivieren oder Deaktivieren von Lese-, Schreib- oder Löschvorgängen

Hinweis

Repository-bezogene Berechtigungen unterstützen nicht die Möglichkeit, den Katalog aller Repositorys in der Registrierung auflisten zu können.

  • Eine Bereichszuordnung gruppiert die Repositoryberechtigungen, die Sie auf ein Token anwenden, und kann erneut auf andere Token angewendet werden. Jedes Token ist einer einzelnen Gültigkeitsbereichszuordnung zugeordnet. Mit einer Bereichszuordnung können Sie:

    • Konfigurieren Sie mehrere Token mit identischen Berechtigungen für eine Reihe von Repositorys.
    • Aktualisieren Sie Tokenberechtigungen, wenn Sie Repositoryaktionen in der Bereichszuordnung hinzufügen oder entfernen oder eine andere Bereichszuordnung anwenden.

    Azure Container Registry bietet auch mehrere vom System definierte Bereichszuordnungen, die Sie beim Erstellen von Token anwenden können. Die Berechtigungen der vom System definierten Bereichszuordnungen gelten für alle Repositorys in der Registrierung. Die einzelnen Aktionen entsprechen dem Grenzwert für Repositorys pro Bereichszuordnung.

In der folgenden Abbildung wird die Beziehung zwischen Token und Gültigkeitsbereichszuordnungen veranschaulicht.

Registry tokens and scope maps

Voraussetzungen

  • Azure-Befehlszeilenschnittstelle: Für die Azure CLI-Befehlsbeispiele in diesem Artikel ist mindestens Version 2.17.0 der Azure-Befehlszeilenschnittstelle erforderlich. Führen Sie az --version aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.
  • Docker: Um sich zum Pullen oder Pushen von Images bei der Registrierung zu authentifizieren, benötigen Sie eine lokale Docker-Installation. Docker-Installationsanleitungen stehen für Systeme unter macOS, Windows und Linux zur Verfügung.
  • Containerregistrierung: Erstellen Sie in Ihrem Azure-Abonnement eine Containerregistrierung, wenn noch keine Registrierung vorhanden ist. Verwenden Sie beispielsweise das Azure-Portal oder die Azure CLI.

Token erstellen – Befehlszeilenschnittstelle

Erstellen eines Tokens und Angeben von Repositorys

Erstellen Sie mit dem Befehl az acr token create ein Token. Wenn Sie ein Token erstellen, können Sie mindestens ein Repository und zugehörige Aktionen für jedes Repository angeben. Die Repositorys müssen sich noch nicht in der Registrierung befinden. Um ein Token durch die Angabe einer vorhandenen Gültigkeitsbereichszuordnung zu erstellen, lesen Sie den nächsten Abschnitt.

Das folgende Beispiel erstellt ein Token in der Registrierung myregistry mit den folgenden Berechtigungen für das samples/hello-world-Repository: content/write und content/read. Standardmäßig legt der Befehl den standardmäßigen Tokenstatus auf enabled fest, aber Sie können den Status jederzeit auf disabled aktualisieren.

az acr token create --name MyToken --registry myregistry \
  --repository samples/hello-world \
  content/write content/read \
  --output json

Die Ausgabe zeigt Details zum Token an. Standardmäßig werden zwei Kennwörter generiert, die nicht ablaufen. Sie können jedoch optional ein Ablaufdatum festlegen. Es wird empfohlen, die Kennwörter an einem sicheren Ort zu speichern, um sie später für die Authentifizierung zu verwenden. Die Kennwörter können nicht erneut abgerufen werden, aber es können neue Kennwörter generiert werden.

{
  "creationDate": "2020-01-18T00:15:34.066221+00:00",
  "credentials": {
    "certificates": [],
    "passwords": [
      {
        "creationTime": "2020-01-18T00:15:52.837651+00:00",
        "expiry": null,
        "name": "password1",
        "value": "uH54BxxxxK7KOxxxxRbr26dAs8JXxxxx"
      },
      {
        "creationTime": "2020-01-18T00:15:52.837651+00:00",
        "expiry": null,
        "name": "password2",
        "value": "kPX6Or/xxxxLXpqowxxxxkA0idwLtmxxxx"
      }
    ],
    "username": "MyToken"
  },
  "id": "/subscriptions/xxxxxxxx-adbd-4cb4-c864-xxxxxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.ContainerRegistry/registries/myregistry/tokens/MyToken",
  "name": "MyToken",
  "objectId": null,
  "provisioningState": "Succeeded",
  "resourceGroup": "myresourcegroup",
  "scopeMapId": "/subscriptions/xxxxxxxx-adbd-4cb4-c864-xxxxxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.ContainerRegistry/registries/myregistry/scopeMaps/MyToken-scope-map",
  "status": "enabled",
  "type": "Microsoft.ContainerRegistry/registries/tokens"
}

Hinweis

Informationen zum erneuten Generieren von Tokenkennwörtern und Ablauffristen finden Sie unter Erneutes Generieren von Tokenkennwörtern weiter unten in diesem Artikel.

Die Ausgabe enthält Details über die vom Befehl erstellte Gültigkeitsbereichszuordnung. Mit der Gültigkeitsbereichszuordnung, hier unter der Bezeichnung MyToken-scope-map, können Sie dieselben Repositoryaktionen auf andere Token anwenden. Oder aktualisieren Sie die Gültigkeitsbereichszuordnung später, um die Berechtigungen der zugeordneten Token zu ändern.

Erstellen eines Tokens und Angeben der Gültigkeitsbereichszuordnung

Eine alternative Möglichkeit zum Erstellen eines Tokens besteht darin, eine vorhandene Gültigkeitsbereichszuordnung anzugeben. Wenn Sie nicht bereits über eine Gültigkeitsbereichszuordnung verfügen, erstellen Sie zunächst eine, indem Sie Repositorys und zugehörige Aktionen angeben. Geben Sie dann beim Erstellen eines Tokens die Gültigkeitsbereichszuordnung an.

Um eine Gültigkeitsbereichszuordnung zu erstellen, verwenden Sie den Befehl az acr scope-map create. Der folgende Befehl erstellt eine Gültigkeitsbereichszuordnung mit denselben Berechtigungen für das zuvor verwendete samples/hello-world-Repository.

az acr scope-map create --name MyScopeMap --registry myregistry \
  --repository samples/hello-world \
  content/write content/read \
  --description "Sample scope map"

Führen Sie az acr token create aus, um ein Token zu erstellen, das die Gültigkeitsbereichszuordnung MyScopeMap angibt. Wie im vorherigen Beispiel legt der Befehl den standardmäßigen Tokenstatus auf enabled fest.

az acr token create --name MyToken \
  --registry myregistry \
  --scope-map MyScopeMap

Die Ausgabe zeigt Details zum Token an. Standardmäßig werden zwei Kennwörter generiert. Es wird empfohlen, die Kennwörter an einem sicheren Ort zu speichern, um sie später für die Authentifizierung zu verwenden. Die Kennwörter können nicht erneut abgerufen werden, aber es können neue Kennwörter generiert werden.

Hinweis

Informationen zum erneuten Generieren von Tokenkennwörtern und Ablauffristen finden Sie unter Erneutes Generieren von Tokenkennwörtern weiter unten in diesem Artikel.

Verwenden von Bereichszuordnungen zum Definieren und Zuweisen von Berechtigungen für mehrere Repositorys

Eine Bereichszuordnung ermöglicht die Verwendung eines Wild Karte Zeichens zum Definieren und Erteilen ähnlicher Berechtigungen für mehrere Repositorys, die ein gemeinsames Präfix gemeinsam verwenden. Repositorys mit bestimmten Berechtigungen, Repositorys mit einem Wild Karte Zeichen können auch in derselben Bereichszuordnung verwendet werden. Dies bietet Flexibilität beim Verwalten von Berechtigungen für mehrere Repositorys in einer einzelnen Bereichszuordnung.

Repositoryberechtigungen können erstellt werden, wenn eine Bereichszuordnung erstellt und einem Token zugewiesen wird. Alternativ kann ein Token erstellt und direkt einem Repository zugewiesen werden.

Im folgenden Beispiel wird eine Bereichszuordnung mit einem Wild Karte Zeichen erstellt und anschließend einem Token zugewiesen.

az acr scope-map create --name MyScopeMapWildcard --registry myregistry \
  --repository samples/* \
  content/write content/read \
  --description "Sample scope map with wildcards"
az acr token create --name MyTokenWildcard \
  --registry myregistry \
  --scope-map MyScopeMapWildcard

Im folgenden Beispiel wird ein Token mit einem Wild Karte erstellt.

 az acr token create --name MyTokenWildcard --registry myregistry \
  --repository samples/* \
  content/write content/read \

Die wilden Karte Berechtigungen sind additiv, was bedeutet, dass beim Zugriff auf ein bestimmtes Repository die resultierenden Berechtigungen die Berechtigungen für alle Bereichszuordnungsregeln enthalten, die dem Präfix "wild Karte entsprechen".

In diesem Beispiel definiert die Bereichszuordnung Berechtigungen für drei verschiedene Repositorytypen:

Repository Berechtigung
sample/* content/read
sample/teamA/* content/write
sample/teamA/projectB content/delete

Dem Token wird eine Bereichszuordnung zugewiesen, um Berechtigungen für den Zugriff auf das Repository sample/teamA/projectBzu erteilen[content/read, content/write, content/delete]. Wenn jedoch dasselbe Token für den Zugriff auf das sample/teamA/projectC Repository verwendet wird, verfügt es nur über [content/read, content/write] Berechtigungen.

Wichtig

Repositorys, die Wild Karte in der Bereichszuordnung verwenden, sollten immer mit einem /* Suffix enden, das gültig ist und ein einzelnes Wild Karte Zeichen im Repositorynamen aufweisen. Hier sind einige Beispiele für ungültige Wild Karte s:

  • sample/*/teamAmit einem Wild Karte in der Mitte des Repositorynamens.
  • sample/teamA*mit einem Wild Karte endet nicht mit '/*'.
  • sample/teamA/*/projectB/*mit mehreren Wild Karte im Repositorynamen.

Die Stammebene ist wild Karte

Wild Karte s können auch auf einer Stammebene angewendet werden. Dies bedeutet, dass alle Berechtigungen, die dem Repository zugewiesen sind, das als *" definiert" definiert ist, in der Registrierung angewendet werden.

Das Beispiel zeigt, wie Sie ein Token mit einer wilden Stammebene erstellen Karte die die Tokenberechtigungen [content/read, content/write] für alle Repositorys in der Registrierung erteilen würde. Dies bietet eine einfache Möglichkeit, berechtigungen für alle Repositorys in der Registrierung zu erteilen, ohne jedes Repository einzeln angeben zu müssen.

 az acr token create --name MyTokenWildcard --registry myregistry \
  --repository * \
  content/write content/read \

Wichtig

Wenn eine Wild Karte regel ein Repository umfasst, das noch nicht vorhanden ist, gelten die Berechtigungen der Regel weiterhin für diesen Repositorynamen Karte. Beispielsweise ein Token, das einer Bereichszuordnung zugewiesen ist, die Berechtigungen für sample/* Repositorys gewährt[content/write, metadata/write]. Nehmen wir außerdem an, dass das Repository sample/teamC/teamCimage noch nicht vorhanden ist. Das Token verfügt über Berechtigungen zum Pushen von Bildern an repository sample/teamC/teamCimage, wodurch das Repository gleichzeitig auf erfolgreichem Push erstellt wird.

Token erstellen – Portal

Sie können das Azure-Portal zum Erstellen von Token und Gültigkeitsbereichszuordnungen verwenden. Wie beim CLI-Befehl az acr token create können Sie eine vorhandene Gültigkeitsbereichszuordnung anwenden oder eine Gültigkeitsbereichszuordnung erstellen, wenn Sie ein Token erstellen, indem Sie ein oder mehrere Repositorys und zugehörige Aktionen angeben. Die Repositorys müssen sich noch nicht in der Registrierung befinden.

Das folgende Beispiel erstellt ein Token und erstellt eine Gültigkeitsbereichszuordnung mit den folgenden Berechtigungen im samples/hello-world-Repository: content/write und content/read.

  1. Navigieren Sie im Azure-Portal zu Ihrer Containerregistrierung.

  2. Wählen Sie unter Repositoryberechtigungen die Option Token > + Hinzufügen aus.

    Create token in portal

  3. Geben Sie einen Tokennamen ein.

  4. Wählen Sie unter Gültigkeitsbereichszuordnung die Option Neu erstellen aus.

  5. Konfigurieren der Gültigkeitsbereichszuordnung:

    1. Geben Sie einen Namen und eine Beschreibung für die Gültigkeitsbereichszuordnung ein.

    2. Unter Repositorys geben Sie samples/hello-world ein, und unter Berechtigungen wählen Sie content/read und content/write aus. Wählen Sie dann +Hinzufügen aus.

      Create scope map in portal

    3. Nachdem Sie Repositorys und Berechtigungen hinzugefügt haben, wählen Sie Hinzufügen aus, um die Gültigkeitsbereichszuordnung hinzuzufügen.

  6. Akzeptieren Sie den Status des Standardtokens von Aktiviert, und wählen Sie dann Erstellen aus.

Nachdem das Token überprüft und erstellt wurde, werden die Details des Tokens auf dem Bildschirm Token angezeigt.

Hinzufügen eines Tokenkennworts

Wenn Sie ein im Portal erstelltes Token verwenden möchten, müssen Sie ein Kennwort generieren. Sie können ein oder zwei Kennwörter generieren und für jedes ein Ablaufdatum festlegen. Neue Kennwörter, die für Token erstellt wurden, sind sofort verfügbar. Beim erneuten Generieren neuer Kennwörter für Token dauert die Replikation 60 Sekunden, wonach sie verfügbar sind.

  1. Navigieren Sie im Azure-Portal zu Ihrer Containerregistrierung.

  2. Wählen Sie unter Repositoryberechtigungen die Option Token und dann ein Token aus.

  3. Wählen Sie in den Tokendetails die Option password1 oder password2 und dann das Symbol „Generieren“ aus.

  4. Legen Sie auf dem Bildschirm für das Kennwort optional ein Ablaufdatum für das Kennwort fest, und wählen Sie Generieren aus. Sie sollten ein Ablaufdatum festlegen.

  5. Nachdem Sie ein Kennwort generiert haben, kopieren und speichern Sie es an einem sicheren Ort. Sie können ein generiertes Kennwort nach dem Schließen des Bildschirms nicht mehr abrufen, aber Sie können ein neues Kennwort generieren.

    Create token password in portal

Authentifizieren mit einem Token

Wenn ein Benutzer oder Dienst ein Token zur Authentifizierung bei der Zielregistrierung verwendet, stellt er den Tokennamen als Benutzernamen und eines seiner generierten Kennwörter zur Verfügung.

Die Authentifizierungsmethode hängt von der oder den konfigurierten Aktionen ab, die mit dem Token verbunden sind.

Aktion Authentifizierung
content/delete az acr repository delete in der Azure CLI

Beispiel: az acr repository delete --name myregistry --repository myrepo --username MyToken --password xxxxxxxxxx
content/read docker login

az acr login in der Azure CLI

Beispiel: az acr login --name myregistry --username MyToken --password xxxxxxxxxx
content/write docker login

az acr login in der Azure CLI
metadata/read az acr repository show

az acr repository show-tags

az acr manifest list-metadata in der Azure CLI
metadata/write az acr repository untag

az acr repository update in der Azure CLI

Beispiele: Verwenden von Token

In den folgenden Beispielen wird das zuvor in diesem Artikel erstellte Token verwendet, um allgemeine Operationen für ein Repository durchzuführen: Images pushen und pullen, Images löschen und Repositorytags auflisten. Das Token wurde anfänglich mit Pushberechtigungen (content/write- und content/read-Aktionen) im samples/hello-world-Repository eingerichtet.

Pullen und Kennzeichnen von Testimages

Pullen Sie für die folgenden Beispiele die öffentlichen Images hello-world und nginx aus Microsoft Container Registry, und markieren Sie sie für Ihre Registrierung und Ihr Repository.

docker pull mcr.microsoft.com/hello-world
docker pull mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
docker tag mcr.microsoft.com/hello-world myregistry.azurecr.io/samples/hello-world:v1
docker tag mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine myregistry.azurecr.io/samples/nginx:v1

Authentifizierung mithilfe des Tokens

Führen Sie docker login oder az acr login aus, um sich mit der Registrierung zu authentifizieren und Images zu pushen oder pullen. Geben Sie den Tokennamen als Benutzernamen ein, und geben Sie eines seiner Kennwörter an. Das Token muss den Status Enabled aufweisen.

Das folgende Beispiel ist für die Bash-Shell formatiert und stellt die Werte mithilfe von Umgebungsvariablen bereit.

TOKEN_NAME=MyToken
TOKEN_PWD=<token password>

echo $TOKEN_PWD | docker login --username $TOKEN_NAME --password-stdin myregistry.azurecr.io

Die Ausgabe sollte die erfolgreiche Authentifizierung anzeigen:

Login Succeeded

Übertragen von Images in die Registrierung per Push

Versuchen Sie nach erfolgreicher Anmeldung, die markierten Images in die Registrierung zu pushen. Da das Token über die Berechtigung verfügt, die Images in das samples/hello-world-Repository zu pushen, ist der folgende Pushvorgang erfolgreich:

docker push myregistry.azurecr.io/samples/hello-world:v1

Das Token hat keine Berechtigungen für das samples/nginx-Repository, sodass beim folgenden Pushversuch ein Fehler auftritt, der requested access to the resource is denied ähnelt:

docker push myregistry.azurecr.io/samples/nginx:v1

Aktualisieren von Tokenberechtigungen

Um Berechtigungen eines Tokens zu aktualisieren, aktualisieren Sie die Berechtigungen in der zugehörigen Gültigkeitsbereichszuordnung. Die aktualisierte Gültigkeitsbereichszuordnung wird sofort auf alle zugeordneten Token angewendet.

Aktualisieren Sie z. B. MyToken-scope-map mit den Aktionen content/write und content/read im samples/ngnx-Repository, und entfernen Sie die Aktion content/write im samples/hello-world-Repository.

Führen Sie az acr scope-map update zum Aktualisieren der Gültigkeitsbereichszuordnung aus, um die Azure CLI zu verwenden:

az acr scope-map update \
  --name MyScopeMap \
  --registry myregistry \
  --add-repository samples/nginx content/write content/read \
  --remove-repository samples/hello-world content/write 

Führen Sie im Azure-Portal die folgenden Schritte aus:

  1. Navigieren Sie zu Ihrer Containerregistrierung.
  2. Wählen Sie unter Repositoryberechtigungen die Option Bereichszuordnungen und dann die zu aktualisierende Bereichszuordnung aus.
  3. Unter Repositorys geben Sie samples/nginx ein, und unter Berechtigungen wählen Sie content/read und content/write aus. Wählen Sie dann +Hinzufügen aus.
  4. Unter Repositorys wählen Sie samples/hello-world aus, und unter Berechtigungen deaktivieren Sie content/write. Klicken Sie dann auf Speichern.

Nach der Aktualisierung der Gültigkeitsbereichszuordnung wird der folgende Pushvorgang erfolgreich durchgeführt:

docker push myregistry.azurecr.io/samples/nginx:v1

Da die Gültigkeitsbereichszuordnung nur die content/read-Berechtigung für das samples/hello-world-Repository besitzt, tritt jetzt ein Fehler beim Pushversuch für das samples/hello-world-Repository auf:

docker push myregistry.azurecr.io/samples/hello-world:v1

Das Pullen von Images aus beiden Repositorys wird erfolgreich durchgeführt, da die Gültigkeitsbereichszuordnung content/read-Berechtigungen für beide Repositorys bereitstellt:

docker pull myregistry.azurecr.io/samples/nginx:v1
docker pull myregistry.azurecr.io/samples/hello-world:v1

Löschen von Images

Aktualisieren Sie die Gültigkeitsbereichszuordnung durch Hinzufügen der Aktion content/delete zum nginx-Repository. Diese Aktion ermöglicht das Löschen von Images im Repository oder das Löschen des gesamten Repositorys.

Der Kürze halber zeigen wir nur den Befehl az acr scope-map update zur Aktualisierung der Gültigkeitsbereichszuordnung an:

az acr scope-map update \
  --name MyScopeMap \
  --registry myregistry \
  --add-repository samples/nginx content/delete

Informationen zum Aktualisieren der Bereichszuordnung über das Portal finden Sie im vorherigen Abschnitt.

Verwenden Sie den folgenden Befehl az acr repository delete, um das samples/nginx-Repository zu löschen. Um Images oder Repositorys zu löschen, übergeben Sie den Namen und das Kennwort des Tokens an den Befehl. Das folgende Beispiel verwendet die zuvor in diesem Artikel erstellten Umgebungsvariablen:

az acr repository delete \
  --name myregistry --repository samples/nginx \
  --username $TOKEN_NAME --password $TOKEN_PWD

Anzeigen von Repositorytags

Aktualisieren Sie die Gültigkeitsbereichszuordnung durch Hinzufügen der Aktion metadata/read zum hello-world-Repository. Diese Aktion ermöglicht das Lesen von Manifest- und Tagdaten im Repository.

Der Kürze halber zeigen wir nur den Befehl az acr scope-map update zur Aktualisierung der Gültigkeitsbereichszuordnung an:

az acr scope-map update \
  --name MyScopeMap \
  --registry myregistry \
  --add-repository samples/hello-world metadata/read 

Informationen zum Aktualisieren der Bereichszuordnung über das Portal finden Sie im vorherigen Abschnitt.

Um Metadaten im samples/hello-world-Repository zu lesen, führen Sie den Befehl az acr manifest list-metadata oder az acr repository show-tags aus.

Um Metadaten zu lesen, übergeben Sie den Namen und das Kennwort des Tokens an einen der beiden Befehle. Das folgende Beispiel verwendet die zuvor in diesem Artikel erstellten Umgebungsvariablen:

az acr repository show-tags \
  --name myregistry --repository samples/hello-world \
  --username $TOKEN_NAME --password $TOKEN_PWD

Beispielausgabe:

[
  "v1"
]

Verwalten von Token und Gültigkeitsbereichszuordnungen

Auflisten von Gültigkeitsbereichszuordnungen

Verwenden Sie den Befehl az acr scope-map list oder den Bildschirm Bereichszuordnungen im Portal, um alle in einer Registrierung konfigurierten Bereichszuordnungen aufzulisten. Beispiel:

az acr scope-map list \
  --registry myregistry --output table

Die Ausgabe besteht aus den drei vom System definierten Bereichszuordnungen und anderen von Ihnen generierten Bereichszuordnungen. Token können mit einer dieser Bereichszuordnungen konfiguriert werden.

NAME                 TYPE           CREATION DATE         DESCRIPTION
-------------------  -------------  --------------------  ------------------------------------------------------------
_repositories_admin  SystemDefined  2020-01-20T09:44:24Z  Can perform all read, write and delete operations on the ...
_repositories_pull   SystemDefined  2020-01-20T09:44:24Z  Can pull any repository of the registry
_repositories_push   SystemDefined  2020-01-20T09:44:24Z  Can push to any repository of the registry
MyScopeMap           UserDefined    2019-11-15T21:17:34Z  Sample scope map

Anzeigen von Tokendetails

Um Details eines Tokens anzuzeigen, z. B. seinen Status und das Ablaufdatum des Kennworts, führen Sie den Befehl az acr token show aus oder wählen das Token auf dem Bildschirm Token im Portal aus. Beispiel:

az acr scope-map show \
  --name MyScopeMap --registry myregistry

Verwenden Sie den Befehl az acr Tokenliste oder den Bildschirm Token im Portal, um alle in einer Registrierung konfigurierten Token aufzulisten. Beispiel:

az acr token list --registry myregistry --output table

Erneutes Generieren von Tokenkennwörtern

Wenn Sie kein Tokenkennwort generiert haben oder neue Kennwörter generieren möchten, führen Sie den Befehl az acr token credential generate aus. Beim erneuten Generieren neuer Kennwörter für Token dauert die Replikation 60 Sekunden, wonach sie verfügbar sind.

Das folgende Beispiel generiert einen neuen Wert für „password1“ für das Token MyToken mit einer Ablauffrist von 30 Tagen. Das Kennwort wird in der Umgebungsvariablen TOKEN_PWD gespeichert. Dieses Beispiel ist für die Bash-Shell formatiert.

TOKEN_PWD=$(az acr token credential generate \
  --name MyToken --registry myregistry --expiration-in-days 30 \
  --password1 --query 'passwords[0].value' --output tsv)

Informationen zur Verwendung des Azure-Portals zum Generieren eines Tokenkennworts finden Sie in den Schritten unter Token erstellen – Portal weiter oben in diesem Artikel.

Aktualisieren von Token mit neuer Gültigkeitsbereichszuordnung

Wenn Sie ein Token mit einer anderen Gültigkeitsbereichszuordnung aktualisieren möchten, führen Sie az acr token update aus, und geben Sie die neue Gültigkeitsbereichszuordnung an. Beispiel:

az acr token update --name MyToken --registry myregistry \
  --scope-map MyNewScopeMap

Wählen Sie im Portal auf dem Bildschirm Token das Token und unter Bereichszuordnung eine andere Bereichszuordnung aus.

Tipp

Nach der Aktualisierung eines Tokens mit einer neuen Gültigkeitsbereichszuordnung möchten Sie vielleicht neue Tokenkennwörter generieren. Verwenden Sie den Befehl az acr token credential generate, oder generieren Sie ein neues Tokenkennwort im Azure-Portal.

Deaktivieren oder Löschen von Token

Möglicherweise müssen Sie die Verwendung der Tokenanmeldeinformationen für einen Benutzer oder Dienst vorübergehend deaktivieren.

Führen Sie mit der Azure CLI den Befehl az acr token update aus, um status auf disabled festzulegen:

az acr token update --name MyToken --registry myregistry \
  --status disabled

Wählen Sie im Portal das Token auf dem Bildschirm Token und dann Deaktiviert unter Status aus.

Um ein Token zum dauerhaften Annullieren des Zugriffs von Personen, die seine Anmeldeinformationen verwenden, zu löschen, führen Sie den Befehl az acr token delete aus.

az acr token delete --name MyToken --registry myregistry

Wählen Sie im Portal das Token auf dem Bildschirm Token und dann Verwerfen aus.

Nächste Schritte

  • Um Gültigkeitsbereichszuordnungen und Token zu verwalten, verwenden Sie zusätzliche Befehle in den az acr scope-map- und az acr token-Befehlsgruppen.
  • In der Authentifizierungsübersicht finden Sie weitere Optionen zur Authentifizierung mit einer Azure-Containerregistrierung, einschließlich der Verwendung einer Microsoft Entra-Identität, eines Dienstprinzipals oder eines Administratorkontos.
  • Erfahren Sie mehr über verbundene Registrierungen und die Verwendung von Token für den Zugriff.