Nyckel- och tokenbaserad autentisering för onlineslutpunkter

När du använder en onlineslutpunkt från en klient kan du använda antingen en nyckel eller en token. Nycklar upphör inte att gälla, det gör token.

Konfigurera slutpunktsautentisering

Du kan ange autentiseringstypen när du skapar en onlineslutpunkt. auth_mode Ange till key eller aml_token beroende på vilken du vill använda. Standardvärdet är key.

När du distribuerar med CLI v2 anger du det här värdet i YAML-filen för onlineslutpunkten. Mer information finns i Distribuera en onlineslutpunkt.

När du distribuerar med Python SDK v2 använder du klassen OnlineEndpoint .

Hämta nyckeln eller token

Åtkomst till att hämta nyckeln eller token för en onlineslutpunkt begränsas av rollbaserade Åtkomstkontroller i Azure (Azure RBAC). För att hämta autentiseringsnyckeln eller token måste ditt säkerhetsobjekt (användaridentitet eller tjänstens huvudnamn) tilldelas någon av följande roller:

  • Ägare
  • Deltagare
  • En anpassad roll som tillåter Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action och Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action.

Mer information om hur du använder Azure RBAC med Azure Machine Learning finns i Hantera åtkomst till Azure Machine Learning.

Om du vill hämta nyckeln använder du az ml online-endpoint get-credentials. Det här kommandot returnerar ett JSON-dokument som innehåller nyckeln eller token. Nycklar returneras i fälten primaryKey och secondaryKey . Token returneras i fältet accessToken . Fälten expiryTimeUtc och refreshAfterTimeUtc innehåller dessutom förfallo- och uppdateringstiderna för token. I följande exempel visas hur du använder parametern --query för att endast returnera primärnyckeln:

ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -o tsv --query primaryKey)

Poängsätta data med hjälp av token

När du anropar onlineslutpunkten för bedömning skickar du nyckeln eller token i auktoriseringshuvudet. I följande exempel visas hur du använder curl-verktyget för att anropa onlineslutpunkten med hjälp av en nyckel (om du använder en token ersätter $ENDPOINT_KEY du med tokenvärdet):

SCORING_URI=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query scoring_uri)

curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --data @endpoints/online/model-1/sample-request.json

Nästa steg