線上端點的金鑰和權杖型驗證

從用戶端取用線上端點時,您可以使用金鑰權杖。 金鑰不會過期,權杖會過期。

設定端點驗證

您可以在建立線上端點時設定驗證類型。 根據您想要使用的項目,將 auth_mode 設定為 keyaml_token。 預設值是 key

使用 CLI 第 2 版進行部署時,請在線上端點 YAML 檔案中設定此值。 如需詳細資訊,請參閱如何部署線上端點

使用 Python SDK 第 2 版 (預覽) 進行部署時,請使用 OnlineEndpoint 類別。

取得金鑰或權杖

存取以擷取線上端點的金鑰或權杖會受到 Azure 角色型存取控制 (Azure RBAC) 所限制。 若要擷取驗證金鑰或權杖,您的安全性主體 (使用者身分識別或服務主體) 必須獲指派下列其中一個角色:

  • 擁有者
  • 參與者
  • 允許 Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/actionMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action 的自訂角色。

如需搭配 Azure Machine Learning 使用 Azure RBAC 的詳細資訊,請參閱管理 Azure Machine Learning 的存取權

若要取得金鑰,請使用 az ml online-endpoint get-credentials。 此命令會傳回包含金鑰或權杖的 JSON 文件。 金鑰會在 primaryKeysecondaryKey 欄位中傳回。 權杖會在 accessToken 欄位中傳回。 此外,expiryTimeUtcrefreshAfterTimeUtc 欄位也包含權杖到期和重新整理時間。 下列範例示範如何使用 --query 參數只傳回主索引鍵:

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

使用權杖為資料評分

呼叫線上端點以進行評分時,請在授權標頭中傳遞金鑰或權杖。 下列範例示範如何使用 curl 公用程式,使用金鑰來呼叫線上端點 (如果使用權杖,則以權杖值來取代 $ENDPOINT_KEY):

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

後續步驟