Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO:
Rozšíření Azure CLI ml v2 (aktuální)
Python SDK azure-ai-ml v2 (aktuální)
V tomto článku se dozvíte, jak ověřovat klienty pro online koncové body služby Azure Machine Learning. Nastavíte oprávnění, vytvoříte koncový bod, načtete tokeny nebo klíče a vyhodnotíte data pomocí jednoho ze tří režimů ověřování: klíč, token Služby Azure Machine Learning (aml_token) nebo token Microsoft Entra (aad_token).
Online ověřování koncových bodů zahrnuje dva typy operací:
- Operace řídicí roviny řídí koncový bod a mění ho. Operace řídicí roviny zahrnují operace vytvoření, čtení, aktualizace a odstranění (CRUD) u online koncových bodů a online nasazení.
- Operace v datové rovině používá data k interakci s online koncovým bodem, aniž by se změnil koncový bod. Operace roviny dat se například skládá z odeslání žádosti o bodování do online koncového bodu a získání odpovědi.
Výběr režimu ověřování
Online koncové body podporují tři režimy ověřování pro operace roviny dat. Zvolte režim, který nejlépe vyhovuje vašim požadavkům na zabezpečení a typu koncového bodu.
| Klíč | Token služby Azure Machine Learning (aml_token) |
Token Microsoft Entra (aad_token) |
|
|---|---|---|---|
| Úroveň zabezpečení | Nejnižší – platnost statických klíčů nevyprší | Střední – krátkodobé, automaticky aktualizované | Nejvyšší – na základě identity, v rozsahu role |
| Typy koncových bodů | Řízené a Kubernetes | Řízené a Kubernetes | Pouze spravované |
| RBAC je vyžadováno pro hodnocení | Ne | Ne | Ano (score/action role) |
| Životnost tokenu | Bez vypršení platnosti (ruční otočení) | Krátkodobé s možností obnovy | Krátkodobé (podle zásad Microsoft Entra) |
| Nejlepší pro | Vývoj a testování | Automatizované kanály | Produkční úlohy |
Pro produkční úlohy ve spravovaných online koncových bodech použijte ověřování tokenů Microsoft Entra (aad_token) pro nejsilnější zabezpečení. Pro vývoj nebo koncové body Kubernetes je nejjednodušší možností ověřování na základě klíčů.
Důležité
Ověřování pomocí tokenu Microsoft Entra jeaad_token podporováno pouze pro spravované online koncové body. V případě online koncových bodů Kubernetes použijte ověřování pomocí klíče nebo tokenuaml_token Azure Machine Learning. Další informace najdete v tématu Ověřování a autorizace pro online koncové body.
Požadavky
Pracovní prostor služby Azure Machine Learning. Pokyny k vytvoření pracovního prostoru najdete v tématu Vytvoření pracovního prostoru.
Azure CLI a rozšíření
mlnebo Azure Machine Learning Python SDK v2:Pokud chcete nainstalovat Azure CLI a
mlrozšíření, přečtěte si téma Instalace a nastavení rozhraní příkazového řádku (v2).Příklady v tomto článku předpokládají, že používáte prostředí Bash nebo kompatibilní prostředí. Například můžete použít příkazový terminál v systému Linux nebo Subsystém Windows pro Linux.
-
Python SDK:
azure-ai-mlaazure-identitybalíčky (pip install azure-ai-ml azure-identity) -
Azure CLI: Rozšíření
ml(az extension add -n ml) - Identita uživatele v Microsoft Entra ID. Informace o vytvoření identity uživatele najdete v tématu Nastavení ověřování. Id identity budete potřebovat v pozdějším kroku.
-
Požadovaná role RBAC pro operace řídicí roviny a roviny dat: Přiřaďte k identitě uživatele v rozsahu pracovního prostoru jednu z následujících rolí:
- Datový vědec AzureML (integrovaný) – zahrnuje oprávnění k operacím CRUD v koncových bodech a vyhodnocování. Podívejte se na roli datového vědce AzureML.
- Vlastník nebo Přispěvatel – Úplný přístup ke správě koncových bodů
- Vlastní role s akcemi
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*.
- (Volitelné) Čtečka tajných kódů připojení pracovního prostoru Azure Machine Learning – Vyžaduje se jenom v případě, že potřebujete získat přístup k tajným kódům z připojení pracovních prostorů.
Ověření nastavení
Spuštěním tohoto fragmentu kódu ověřte, že jsou vaše přihlašovací údaje a oprávnění RBAC správně nakonfigurované:
az login
az ml online-endpoint list --resource-group <RESOURCE_GROUP> --workspace-name <WORKSPACE_NAME>
Očekávaný výstup: Pole koncových bodů JSON (prázdné [] , pokud ještě neexistují žádné koncové body).
Referenční informace: az ml online-endpoint list
Přiřazení oprávnění k identitě
Pokud už máte přiřazenou požadovanou roli RBAC (jak je uvedeno v části Požadavky), přeskočte na Vytvoření koncového bodu. Tato část obsahuje podrobnosti o vytvoření vlastní role v případě potřeby.
Zobrazení podrobností o předdefinované roli
AzureML Datoví vědci
zahrnuje tyto akce RBAC řídicí roviny:
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/writeMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/deleteMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/readMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/token/actionMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/actionMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action
Tato akce RBAC pro datovou rovinu:
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/score/action
Předdefinovaná Azure Machine Learning Workspace Connection Secrets Reader role zahrnuje:
Microsoft.MachineLearningServices/workspaces/connections/listsecrets/actionMicrosoft.MachineLearningServices/workspaces/metadata/secrets/read
(Volitelné) Vytvoření vlastní role
Tento krok přeskočte, pokud používáte předdefinované role nebo jiné předem vytvořené vlastní role.
Definujte obor a akce pro vlastní role vytvořením definic JSON rolí. Například následující definice role ,custom-role-for-control-plane.json, umožňuje uživateli provádět operace CRUD na online koncovém bodu v zadaném pracovním prostoru.
{ "Name": "Custom role for control plane operations - online endpoint", "IsCustom": true, "Description": "Can CRUD against online endpoints.", "Actions": [ "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write", "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete", "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/read", "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action", "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action", "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action" ], "NotActions": [ ], "AssignableScopes": [ "/subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>" ] }Následující definice role custom-role-for-scoring.jsonumožňuje uživateli odesílat žádosti o bodování do online koncového bodu v zadaném pracovním prostoru.
{ "Name": "Custom role for scoring - online endpoint", "IsCustom": true, "Description": "Can score against online endpoints.", "Actions": [ "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*/action" ], "NotActions": [ ], "AssignableScopes": [ "/subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>" ] }K vytvoření vlastních rolí použijte definice JSON:
az role definition create --role-definition custom-role-for-control-plane.json --subscription <subscriptionID> az role definition create --role-definition custom-role-for-scoring.json --subscription <subscriptionID>Poznámka:
K vytváření vlastních rolí potřebujete jednu ze tří rolí:
- Vlastník
- Správce uživatelských přístupů
- Vlastní role s oprávněním
Microsoft.Authorization/roleDefinitions/write(k vytvoření, aktualizaci nebo odstranění vlastních rolí) aMicrosoft.Authorization/roleDefinitions/readoprávnění (k zobrazení vlastních rolí).
Další informace o vytváření vlastních rolí najdete v tématu Vlastní role Azure.
Ověřte definici role:
az role definition list --custom-role-only -o table az role definition list -n "Custom role for control plane operations - online endpoint" az role definition list -n "Custom role for scoring - online endpoint" export role_definition_id1=`(az role definition list -n "Custom role for control plane operations - online endpoint" --query "[0].id" | tr -d '"')` export role_definition_id2=`(az role definition list -n "Custom role for scoring - online endpoint" --query "[0].id" | tr -d '"')`
Přiřaďte roli k identitě
Pokud používáte
AzureML Datoví vědcipředdefinované role, přiřaďte roli identitě uživatele pomocí následujícího kódu.az role assignment create --assignee <identityID> --role "AzureML Data Scientist" --scope /subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>Pokud používáte
Azure Machine Learning Workspace Connection Secrets Readerpředdefinované role, můžete k přiřazení role k identitě uživatele použít následující kód.az role assignment create --assignee <identityID> --role "Azure Machine Learning Workspace Connection Secrets Reader" --scope /subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>Pokud používáte vlastní roli, přiřaďte k identitě uživatele následující kód.
az role assignment create --assignee <identityID> --role "Custom role for control plane operations - online endpoint" --scope /subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName> az role assignment create --assignee <identityID> --role "Custom role for scoring - online endpoint" --scope /subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>Poznámka:
Pokud chcete přiřadit vlastní role identitě uživatele, potřebujete jednu ze tří rolí:
- Vlastník
- Správce uživatelských přístupů
- Vlastní role, která uděluje oprávnění k přiřazení vlastních rolí (
Microsoft.Authorization/roleAssignments/write) a ke zobrazení přiřazení rolí (Microsoft.Authorization/roleAssignments/read).
Další informace o rolích Azure a jejich oprávněních najdete v tématu Role Azure a Přiřazení rolí Azure pomocí webu Azure Portal.
Potvrďte přiřazení role:
az role assignment list --scope /subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>
Získejte token řídicího panelu
Tento krok dokončete, pokud plánujete provádět operace řídicí roviny pomocí rozhraní REST API, které token používá přímo.
Pokud plánujete používat jiné metody, jako je Azure CLI s rozšířením ml v2, sadou Python SDK v2 nebo nástrojem Azure Machine Learning Studio, nemusíte token Microsoft Entra získat ručně. Vaše identita uživatele se ověřuje při přihlášení a token se automaticky načte a předá vám.
Můžete načíst token Microsoft Entra pro operace řídicí roviny z koncového bodu prostředku Azure: https://management.azure.com.
Přihlaste se do Azure.
az loginPokud chcete použít konkrétní identitu, přihlaste se pomocí následujícího kódu:
az login --identity --username <identityID>K získání tokenu použijte tento kontext:
export CONTROL_PLANE_TOKEN=$(az account get-access-token \ --resource https://management.azure.com \ --query accessToken -o tsv)
Referenční informace: az login, az account get-access-token
Ověření tokenu řídicí roviny (volitelné)
Po načtení tokenu Microsoft Entra můžete ověřit, že je token pro správný koncový bod prostředku Azure (management.azure.com) a správné ID klienta dekódováním tokenu pomocí jwt.ms.
Návod
Web jwt.ms je nástroj vlastněný Microsoftem, který dekóduje tokeny zcela v prohlížeči – na server se neposílají žádná data. Nikdy nevkládejte tokeny do nedůvěryhodných dekódovacích nástrojů.
Dekódovaný token vrátí odpověď JSON obsahující následující informace:
{
"aud": "https://management.azure.com",
"oid": "<your-object-id>"
}
Vytvoření koncového bodu
Následující příklad vytvoří koncový bod s identitou přiřazenou systémem (SAI) jako identitou koncového bodu. Sai je výchozí typ identity pro koncové body a některé základní role se automaticky přiřazují. Další informace najdete v tématu Automatické přiřazení role pro identitu koncového bodu.
Rozhraní příkazového řádku nevyžaduje explicitní zadání tokenu řídicí roviny. Místo toho vás příkaz rozhraní příkazového řádku az login ověří během přihlašování a token se automaticky načte a předá vám.
Vytvořte soubor YAML definice koncového bodu s názvem endpoint.yml:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json name: my-endpoint auth_mode: aad_tokenMůžete nastavit
auth_modenakeypro ověřování pomocí klíče neboaml_tokenpro ověřování tokenů služby Microsoft Azure Machine Learning. Tento příklad používáaad_tokenk ověřování tokenu Microsoft Entra.Poznámka:
Režim
aad_tokenověřování se podporuje jenom pro spravované online koncové body. U online koncových bodů Kubernetes nastavte hodnotuauth_modenakeyneboaml_token.Vytvořte koncový bod:
az ml online-endpoint create -f endpoint.ymlZkontrolujte stav koncového bodu:
az ml online-endpoint show -n my-endpointPokud chcete při vytváření koncového bodu přepsat
auth_mode(například naaad_token) následující kód:az ml online-endpoint create -n my-endpoint --auth-mode aad_tokenPokud chcete aktualizovat existující koncový bod a zadat
auth_mode(například jakoaad_token), spusťte následující kód:az ml online-endpoint update -n my-endpoint --set auth_mode=aad_token
Referenční informace: az ml online-endpoint create, az ml online-endpoint show, az ml online-endpoint update
Vytvořte nasazení
Pokud chcete vytvořit nasazení, přečtěte si téma Nasazení modelu strojového učení s online koncovým bodem nebo nasadit model pomocí REST jako online koncový bod. V tom, jak vytváříte nasazení pro různé režimy ověřování, není žádný rozdíl.
Následující kód je příkladem, jak vytvořit nasazení. Další informace o nasazení online koncových bodů najdete v tématu Nasazení modelu strojového učení pomocí online koncového bodu (prostřednictvím rozhraní příkazového řádku).
Vytvořte soubor YAML definice nasazení s názvem blue-deployment.yml:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json name: blue endpoint_name: my-aad-auth-endp1 model: path: ../../model-1/model/ code_configuration: code: ../../model-1/onlinescoring/ scoring_script: score.py environment: conda_file: ../../model-1/environment/conda.yml image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu22.04:latest instance_type: Standard_DS3_v2 instance_count: 1Vytvořte nasazení pomocí souboru YAML. V tomto příkladu nastavte veškerý provoz na nové nasazení.
az ml online-deployment create -f blue-deployment.yml --all-traffic
Referenční informace: az ml online-deployment create
Získání hodnoticího identifikátoru URI
Pokud použijete az ml online-endpoint invoke k volání koncového bodu, CLI automaticky přeloží URI pro hodnocení, takže ho nemusíte načítat ručně.
Pokud ale potřebujete identifikátor URI bodování pro použití s jinými nástroji (například s rozhraním REST API nebo vlastními klienty HTTP), můžete ho načíst pomocí následujícího příkazu:
scoringUri=$(az ml online-endpoint show -n my-endpoint --query "scoring_uri")
Referenční informace: az ml online-endpoint show
Získejte klíč nebo token datové vrstvy
Klíč nebo token můžete použít pro operace roviny dat, i když proces získání klíče nebo tokenu je operace řídicí roviny. Jinými slovy, pomocí tokenu řídicí roviny získáte klíč nebo token, který později použijete pro operace roviny dat.
Životnost tokenů se liší podle režimu ověřování:
-
Klíč: Platnost klíčů nevyprší, ale měla by se pravidelně obměňovat kvůli zabezpečení. Pomocí akce
regenerateKeysmůžete otočit klíče. -
Token Služby Azure Machine Learning (
aml_token): Krátkodobé tokeny, které obsahujírefreshAfterTimeUtcpole. Po této době požádejte o nový token, abyste se vyhnuli vypršení platnosti. -
Token Microsoft Entra (
aad_token): Řídí se zásadami životnosti tokenu ID Microsoft Entra (obvykle 60–90 minut). Aktualizujte token předexpiryTimeUtc.
K získání klíče nebo tokenu Azure Machine Learning musí mít identita uživatele, která žádá, správnou roli přiřazenou, jak je popsáno v dokumentu Autorizace pro operace řídicí roviny. Identita uživatele k získání tokenu Microsoft Entra nepotřebuje žádné další role.
Pokud chcete k vyvolání koncového bodu použít rozhraní příkazového řádku, nemusíte klíče ani tokeny pro operace roviny dat explicitně získat, protože rozhraní příkazového řádku ho poskytuje za vás. Pomocí rozhraní příkazového řádku ale můžete získat klíče nebo token pro operace roviny dat, abyste ho mohli použít s jinými kanály, jako je rozhraní REST API.
Pokud chcete získat klíče nebo token pro operace datové roviny, použijte příkaz az ml online-endpoint get-credentials. Tento příkaz vrátí výstup JSON, který obsahuje klíče, token a/nebo další informace.
Návod
V následujícím příkazu --query se parametr používá k extrahování konkrétních informací z výstupu JSON. Pro tento účel však můžete použít jakýkoli vhodný nástroj.
auth_mode Když je koncový bodkey
Klíče jsou vráceny v polích
primaryKeyasecondaryKey.export DATA_PLANE_TOKEN=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query primaryKey) export DATA_PLANE_TOKEN2=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query secondaryKey)
auth_mode Když je koncový bodaml_token
Token se vrátí v poli
accessToken.V poli se vrátí čas vypršení platnosti tokenu
expiryTimeUtc.V poli se vrátí čas aktualizace tokenu
refreshAfterTimeUtc.export DATA_PLANE_TOKEN=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query accessToken) export EXPIRY_TIME_UTC=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query expiryTimeUtc) export REFRESH_AFTER_TIME_UTC=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query refreshAfterTimeUtc)
auth_mode Když je koncový bodaad_token
Token se vrátí v poli
accessToken.V poli se vrátí čas vypršení platnosti tokenu
expiryTimeUtc.export DATA_PLANE_TOKEN=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query accessToken) export EXPIRY_TIME_UTC=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -g $RESOURCE_GROUP -w $WORKSPACE_NAME -o tsv --query expiryTimeUtc)
Referenční informace: az ml online-endpoint get-credentials
Ověření tokenu roviny dat (volitelné)
Po získání tokenu Entra můžete ověřit, že token je určený pro správný koncový bod ml.azure.comprostředku Azure, a správné ID klienta dekódováním tokenu prostřednictvím jwt.ms, který vrátí odpověď JSON s následujícími informacemi:
Návod
Web jwt.ms je nástroj vlastněný Microsoftem, který dekóduje tokeny zcela v prohlížeči – na server se neposílají žádná data. Nikdy nevkládejte tokeny do nedůvěryhodných dekódovacích nástrojů.
{
"aud": "https://ml.azure.com",
"oid": "<your-object-id>"
}
Skóre dat
Můžete použít az ml online-endpoint invoke pro koncové body s klíčem, tokenem služby Azure Machine Learning nebo tokenem Microsoft Entra. Rozhraní příkazového řádku poskytuje klíč nebo token automaticky, takže ho nemusíte explicitně předávat.
az ml online-endpoint invoke -n my-endpoint -r request.json
Referenční informace: az ml online-endpoint invoke
Monitorování provozu koncových bodů
Pokud chcete povolit protokolování provozu v nastavení diagnostiky pro koncový bod, proveďte kroky v části Zapnutí protokolů.
Pokud je nastavení diagnostiky povolené, můžete zobrazit AmlOnlineEndpointTrafficLogs tabulku a zobrazit režim ověřování a identitu uživatele.
Řešení chyb ověřování
Následující tabulka uvádí běžné chyby ověřování a jejich řešení.
| Error | Pravděpodobná příčina | Resolution |
|---|---|---|
| 401 Neautorizováno | Chybějící, prošlý nebo token pro nesprávnou cílovou skupinu | Ověřte, že cílová skupina tokenů odpovídá typu koncového bodu: management.azure.com pro řídicí rovinu ml.azure.com pro rovinu dat. Obnovte tokeny s vypršenou platností. |
| 403 – Zakázáno | Identita uživatele nemá požadovanou roli RBAC. | Přiřaďte AzureML Datoví vědci nebo vlastní roli s oprávněním score/action v oboru koncového bodu. Viz Přiřazení oprávnění k identitě. |
aad_token nepřijato |
Použití aad_token na koncovém bodu Kubernetes |
Přepněte na key nebo aml_token. Ověřování tokenu Microsoft Entra je podporováno pouze pro spravované online koncové body. |
AADSTS700016 nebo podobná chyba Entra |
Nesprávný prostředek nebo cílová skupina v žádosti o token | Ujistěte se, že parametr prostředku odpovídá typu operace: https://management.azure.com pro řídicí rovinu, https://ml.azure.com pro rovinu dat. |
Související obsah
- Ověřování a autorizace pro online koncové body
- Nastavení ověřování pro Azure Machine Learning
- Nasazení a určení skóre modelu strojového učení pomocí online koncového bodu
- Použití REST pro nasazení modelu jako online koncového bodu
- Správa přístupu k pracovnímu prostoru služby Azure Machine Learning
- Zabezpečení spravovaných online koncových bodů pomocí izolace sítě