Hitelesítés beállítása az Azure Machine Learning-erőforrásokhoz és -munkafolyamatokhoz
ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)
Ismerje meg, hogyan állíthatja be a hitelesítést az Azure Machine Learning munkaterületén az Azure CLI vagy az Azure Machine Learning SDK v2 segítségével. Az Azure Machine Learning-munkaterület hitelesítése a legtöbb dologhoz a Microsoft Entra-azonosítón alapul. A munkaterülethez való csatlakozáshoz általában négy hitelesítési munkafolyamat használható:
Interaktív: A Microsoft Entra-azonosítóban lévő fiókjával közvetlenül hitelesítheti magát, vagy lekérheti a hitelesítéshez használt jogkivonatot. Az interaktív hitelesítést a kísérletezés és az iteratív fejlesztés során használják. Az interaktív hitelesítéssel felhasználónként szabályozhatja az erőforrásokhoz (például webszolgáltatáshoz) való hozzáférést.
Szolgáltatásnév: Létrehoz egy egyszerű szolgáltatásfiókot a Microsoft Entra-azonosítóban, és ezzel hitelesíti vagy lekéri a jogkivonatot. A szolgáltatásnév használatával automatikus folyamatokat hitelesíthet a szolgáltatásban anélkül, hogy felhasználói beavatkozást kellene végeznie. Például egy folyamatos integrációs és üzembehelyezési szkript, amely minden alkalommal betanít és tesztel egy modellt, amikor a betanítási kód megváltozik.
Azure CLI-munkamenet: A hitelesítéshez egy aktív Azure CLI-munkamenetet használ. A Machine LearningHez készült Azure CLI-bővítmény (a bővítmény vagy a
ml
CLI v2) egy parancssori eszköz az Azure Machine Learning használatához. Bejelentkezhet az Azure-ba az Azure CLI-n keresztül a helyi munkaállomáson anélkül, hogy hitelesítő adatokat tárolhat a Python-kódban, vagy megkérheti a felhasználót a hitelesítésre. Hasonlóképpen újra felhasználhatja ugyanazokat a szkripteket a folyamatos integrációs és üzembehelyezési folyamatok részeként, miközben az Azure CLI-t egy szolgáltatásnév-identitással hitelesítheti.Felügyelt identitás: Ha az Azure Machine Learning SDK v2-t számítási példányon vagy Azure-beli virtuális gépen használja, használhat felügyelt identitást az Azure-hoz. Ez a munkafolyamat lehetővé teszi, hogy a virtuális gép a felügyelt identitás használatával csatlakozzon a munkaterülethez anélkül, hogy hitelesítő adatokat tárol a Python-kódban, vagy a felhasználót a hitelesítésre kéri. Az Azure Machine Learning számítási fürtöi úgy is konfigurálhatók, hogy felügyelt identitással férhessenek hozzá a munkaterülethez betanítási modellek esetén.
A használt hitelesítési munkafolyamattól függetlenül az Azure szerepköralapú hozzáférés-vezérlés (Azure RBAC) az erőforrásokhoz engedélyezett hozzáférési szint (engedélyezés) hatókörének hatókörére szolgál. Előfordulhat például, hogy egy rendszergazdai vagy automatizálási folyamat rendelkezik hozzáféréssel egy számítási példány létrehozásához, de nem használja azt. Bár egy adatelemző használhatja, de nem törölheti vagy nem hozhatja létre. További információ: Az Azure Machine Learning-munkaterülethez való hozzáférés kezelése.
A Microsoft Entra feltételes hozzáféréssel tovább szabályozhatja vagy korlátozhatja a munkaterülethez való hozzáférést az egyes hitelesítési munkafolyamatokhoz. A rendszergazdák például csak felügyelt eszközökről engedélyezhetik a munkaterület elérését.
Előfeltételek
Azure Machine Learning-munkaterület létrehozása.
Konfigurálja a fejlesztői környezetet, vagy használjon egy Azure Machine Learning számítási példányt, és telepítse az Azure Machine Learning SDK v2-t.
Telepítse az Azure CLI-t.
Microsoft Entra ID
A munkaterület összes hitelesítési munkafolyamata a Microsoft Entra-azonosítóra támaszkodik. Ha azt szeretné, hogy a felhasználók egyéni fiókokkal hitelesítsék magukat, a Microsoft Entra-azonosítójukban kell rendelkezniük fiókokkal. Ha szolgáltatásneveket szeretne használni, azoknak a Microsoft Entra-azonosítóban kell lenniük. A felügyelt identitások a Microsoft Entra ID egyik funkciója is.
A Microsoft Entra-azonosítóról további információt a Microsoft Entra-hitelesítés ismertetése című témakörben talál.
A Microsoft Entra-fiókok létrehozása után tekintse meg az Azure Machine Learning-munkaterülethez való hozzáférés kezelésével kapcsolatos információkat a munkaterülethez és az Azure Machine Learning egyéb műveleteihez való hozzáférés biztosításáról.
Interaktív hitelesítés használata
A KÖVETKEZŐKRE VONATKOZIK: Python SDK azure-ai-ml v2 (aktuális)
Az interaktív hitelesítés a Pythonhoz készült Azure Identity-csomagot használja. A legtöbb példa a hitelesítő adatok elérésére használható DefaultAzureCredential
. Ha szükség van egy jogkivonatra, több identitást (EnvironmentCredential
, , ManagedIdentityCredential
, SharedTokenCacheCredential
VisualStudioCodeCredential
, AzureCliCredential
) AzurePowerShellCredential
használót kér le, és leállítja, amikor egy jogkivonatot ad meg. További információ: DefaultAzureCredential class reference.
Az alábbi kód egy példa a DefaultAzureCredential
hitelesítésre. Ha a hitelesítés DefaultAzureCredential
sikertelen, a rendszer ehelyett a webböngészőn keresztüli hitelesítés tartalékát használja.
from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential
try:
credential = DefaultAzureCredential()
# Check if given credential can get token successfully.
credential.get_token("https://management.azure.com/.default")
except Exception as ex:
# Fall back to InteractiveBrowserCredential in case DefaultAzureCredential not work
# This will open a browser page for
credential = InteractiveBrowserCredential()
A hitelesítőadat-objektum létrehozása után a rendszer az MLClient osztályt használja a munkaterülethez való csatlakozáshoz. A következő kód például a kapcsolati adatok betöltésére használja a from_config()
metódust:
from azure.ai.ml import MLClient
try:
ml_client = MLClient.from_config(credential=credential)
except Exception as ex:
# NOTE: Update following workspace information to contain
# your subscription ID, resource group name, and workspace name
client_config = {
"subscription_id": "<SUBSCRIPTION_ID>",
"resource_group": "<RESOURCE_GROUP>",
"workspace_name": "<AZUREML_WORKSPACE_NAME>",
}
# write and reload from config file
import json, os
config_path = "../.azureml/config.json"
os.makedirs(os.path.dirname(config_path), exist_ok=True)
with open(config_path, "w") as fo:
fo.write(json.dumps(client_config))
ml_client = MLClient.from_config(credential=credential, path=config_path)
print(ml_client)
Egyszerű szolgáltatás konfigurálása
Egyszerű szolgáltatás (SP) használatához először létre kell hoznia az SP-t. Ezután adjon hozzáférést a munkaterülethez. Ahogy korábban említettük, az Azure szerepköralapú hozzáférés-vezérlés (Azure RBAC) a hozzáférés szabályozására szolgál, ezért azt is el kell döntenie, hogy milyen hozzáférést biztosít az SP-nek.
Fontos
Szolgáltatásnév használata esetén adja meg a szükséges minimális hozzáférést a használt tevékenységhez . Például nem biztosítana szolgáltatásnév-tulajdonost vagy közreműködői hozzáférést, ha csak a webes üzembe helyezés hozzáférési jogkivonatának olvasására szolgál.
A legkisebb hozzáférés biztosításának oka az, hogy egy szolgáltatásnév jelszóval hitelesíti a jelszót, és a jelszó egy automatizálási szkript részeként tárolható. Ha a jelszó kiszivárog, az adott feladatokhoz szükséges minimális hozzáférés minimalizálja az SP rosszindulatú használatát.
Az SP létrehozásának és a munkaterülethez való hozzáférés biztosításának legegyszerűbb módja az Azure CLI használata. Szolgáltatásnév létrehozásához és a munkaterülethez való hozzáférés biztosításához kövesse az alábbi lépéseket:
Feljegyzés
Az összes lépés végrehajtásához rendszergazdai jogosultságokkal kell rendelkeznie az előfizetésben.
Hitelesítés az Azure-előfizetésben:
az login
Ha a parancssori felület meg tudja nyitni az alapértelmezett böngészőt, ezt teszi, és betölt egy bejelentkezési lapot. Ellenkező esetben meg kell nyitnia egy böngészőt, és követnie kell a parancssor utasításait. Az utasítások egy engedélyezési kód böngészésével https://aka.ms/devicelogin és beírásával járnak.
Ha több Azure-előfizetéssel rendelkezik, a
az account set -s <subscription name or ID>
parancs használatával beállíthatja az előfizetést. További információ: Több Azure-előfizetés használata.A hitelesítés egyéb módjaiért lásd: Bejelentkezés az Azure CLI-vel.
Hozza létre a szolgáltatásnevet. A következő példában létrejön egy ml-auth nevű SP:
az ad sp create-for-rbac --json-auth --name ml-auth --role Contributor --scopes /subscriptions/<subscription id>
A paraméter
--json-auth
az Azure CLI 2.51.0-s verzióiban >érhető el. A használat--sdk-auth
előtti verziók.A kimenet az alábbihoz hasonló JSON-dokumentum. Jegyezze fel a
clientId
,clientSecret
éstenantId
a mezőket, mivel szüksége van rájuk a jelen cikk egyéb lépéseihez.{ "clientId": "your-client-id", "clientSecret": "your-client-secret", "subscriptionId": "your-sub-id", "tenantId": "your-tenant-id", "activeDirectoryEndpointUrl": "https://login.microsoftonline.com", "resourceManagerEndpointUrl": "https://management.azure.com", "activeDirectoryGraphResourceId": "https://graph.windows.net", "sqlManagementEndpointUrl": "https://management.core.windows.net:5555", "galleryEndpointUrl": "https://gallery.azure.com/", "managementEndpointUrl": "https://management.core.windows.net" }
Kérje le a szolgáltatásnév adatait az
clientId
előző lépésben visszaadott érték használatával:az ad sp show --id your-client-id
Az alábbi JSON egy egyszerűsített példa a parancs kimenetére. Jegyezze fel a
objectId
mezőt, mivel a következő lépéshez szüksége lesz annak értékére.{ "accountEnabled": "True", "addIns": [], "appDisplayName": "ml-auth", ... ... ... "objectId": "your-sp-object-id", "objectType": "ServicePrincipal" }
A munkaterülethez és az Azure Machine Learning által használt egyéb erőforrásokhoz való hozzáférés biztosításához használja az alábbi cikkekben található információkat:
- Szerepkörök és műveletek hozzárendelése az Azure Machine Learningben
- Szerepkörök hozzárendelése a parancssori felületen
Fontos
A tulajdonosi hozzáférés lehetővé teszi, hogy a szolgáltatásnév gyakorlatilag bármilyen műveletet elvégezhessen a munkaterületen. Ebben a dokumentumban a hozzáférés megadásának módját szemléltetik; éles környezetben a Microsoft azt javasolja, hogy a szolgáltatásnév számára biztosítsa a kívánt szerepkör végrehajtásához szükséges minimális hozzáférést. Az egyéni szerepkörnek a forgatókönyvhöz szükséges hozzáféréssel történő létrehozásáról további információt az Azure Machine Learning-munkaterülethez való hozzáférés kezelése című témakörben talál.
Felügyelt identitás konfigurálása
Fontos
A felügyelt identitás csak akkor támogatott, ha azure-beli virtuális gépről, Azure Machine Learning számítási fürtből vagy számítási példányból használja az Azure Machine Learning SDK-t.
Felügyelt identitás virtuális géppel
Engedélyezze a rendszer által hozzárendelt felügyelt identitást a virtuális gépen lévő Azure-erőforrásokhoz.
Az Azure Portalon válassza ki a munkaterületet, majd válassza a Hozzáférés-vezérlés (IAM) lehetőséget.
A Szerepkör-hozzárendelés hozzáadása lap megnyitásához válassza a Hozzáadás, szerepkör-hozzárendelés hozzáadása lehetőséget.
Válassza ki a felügyelt identitáshoz hozzárendelni kívánt szerepkört. Például: Olvasó. A részletes lépésekért tekintse meg az Azure-szerepköröknek az Azure Portalon történő hozzárendelését ismertető cikket.
Felügyelt identitás számítási fürttel
További információ: Felügyelt identitás beállítása számítási fürthöz.
Felügyelt identitás számítási példánnyal
További információ: Felügyelt identitás beállítása számítási példányhoz.
Egyszerű szolgáltatáshitelesítés használata
A KÖVETKEZŐKRE VONATKOZIK: Python SDK azure-ai-ml v2 (aktuális)
A szolgáltatásnévvel való hitelesítés a Pythonhoz készült Azure Identity-csomagot használja. Az DefaultAzureCredential
osztály a következő környezeti változókat keresi, és a szolgáltatásnévként való hitelesítéskor az értékeket használja:
AZURE_CLIENT_ID
– A szolgáltatásnév létrehozásakor visszaadott ügyfélazonosító.AZURE_TENANT_ID
– A szolgáltatásnév létrehozásakor visszaadott bérlőazonosító.AZURE_CLIENT_SECRET
- A szolgáltatásnévhez létrehozott jelszó/hitelesítő adatok.
Tipp.
A fejlesztés során fontolja meg a python-dotenv csomag használatát a környezeti változók beállításához. A Python-dotenv betölti a környezeti változókat a fájlokból .env
. A Python standard .gitignore
fájlja automatikusan kizárja a fájlokat .env
, ezért a fejlesztés során nem szabad őket gitHub-adattárakba beolvasni.
Az alábbi példa bemutatja, hogy a python-dotenv használatával betölti a környezeti változókat egy .env
fájlból, majd létrehozza DefaultAzureCredential
a hitelesítő objektumot:
from dotenv import load_dotenv
if ( os.environ['ENVIRONMENT'] == 'development'):
print("Loading environment variables from .env file")
load_dotenv(".env")
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
# Check if given credential can get token successfully.
credential.get_token("https://management.azure.com/.default")
A hitelesítőadat-objektum létrehozása után a rendszer az MLClient osztályt használja a munkaterülethez való csatlakozáshoz. A következő kód például a kapcsolati adatok betöltésére használja a from_config()
metódust:
try:
ml_client = MLClient.from_config(credential=credential)
except Exception as ex:
# NOTE: Update following workspace information to contain
# your subscription ID, resource group name, and workspace name
client_config = {
"subscription_id": "<SUBSCRIPTION_ID>",
"resource_group": "<RESOURCE_GROUP>",
"workspace_name": "<AZUREML_WORKSPACE_NAME>",
}
# write and reload from config file
import json, os
config_path = "../.azureml/config.json"
os.makedirs(os.path.dirname(config_path), exist_ok=True)
with open(config_path, "w") as fo:
fo.write(json.dumps(client_config))
ml_client = MLClient.from_config(credential=credential, path=config_path)
print(ml_client)
A szolgáltatásnév az Azure Machine Learning REST API-val való hitelesítésre is használható. A Microsoft Entra ID-ügyfél hitelesítő adatainak megadására szolgáló folyamatot használja, amely lehetővé teszi, hogy a szolgáltatásközi hívások fej nélküli hitelesítést biztosítsanak az automatizált munkafolyamatokban.
Fontos
Ha jelenleg az Azure Active Directory Authentication Library (ADAL) használatával kéri le a hitelesítő adatokat, javasoljuk, hogy migráljon a Microsoft Authentication Library (MSAL) szolgáltatásba. Az ADAL támogatása 2022. június 30-án véget ért.
Az MSAL hitelesítésével kapcsolatos információkért és mintákért tekintse meg az alábbi cikkeket:
- JavaScript – JavaScript-alkalmazások migrálása ADAL.js-ból MSAL.js.
- Node.js – Node.js-alkalmazások migrálása a Microsoft Authentication Library-ből az MSAL-be.
- Python – Microsoft Authentication Library to MSAL migration guide for Python.
Felügyelt identitáshitelesítés használata
A KÖVETKEZŐKRE VONATKOZIK: Python SDK azure-ai-ml v2 (aktuális)
A felügyelt identitások hitelesítése a Pythonhoz készült Azure Identity-csomagot használja. Ha felügyelt identitással konfigurált virtuális gépről vagy számítási fürtről szeretne hitelesíteni a munkaterületen, használja az osztályt DefaultAzureCredential
. Ez az osztály automatikusan észleli, ha felügyelt identitás van használatban, és a felügyelt identitás használatával hitelesíti magát az Azure-szolgáltatásokban.
Az alábbi példa bemutatja, hogy az DefaultAzureCredential
osztály használatával hozza létre a hitelesítő objektumot, majd az MLClient
osztály használatával csatlakozik a munkaterülethez:
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
# Check if given credential can get token successfully.
credential.get_token("https://management.azure.com/.default")
try:
ml_client = MLClient.from_config(credential=credential)
except Exception as ex:
# NOTE: Update following workspace information to contain
# your subscription ID, resource group name, and workspace name
client_config = {
"subscription_id": "<SUBSCRIPTION_ID>",
"resource_group": "<RESOURCE_GROUP>",
"workspace_name": "<AZUREML_WORKSPACE_NAME>",
}
# write and reload from config file
import json, os
config_path = "../.azureml/config.json"
os.makedirs(os.path.dirname(config_path), exist_ok=True)
with open(config_path, "w") as fo:
fo.write(json.dumps(client_config))
ml_client = MLClient.from_config(credential=credential, path=config_path)
print(ml_client)
Feltételes hozzáférés használata
Rendszergazdaként kényszerítheti a Microsoft Entra feltételes hozzáférési szabályzatokat a munkaterületre bejelentkező felhasználók számára. Megkövetelheti például a kéttényezős hitelesítést, vagy csak felügyelt eszközökről engedélyezheti a bejelentkezést. A feltételes hozzáféréshez az alábbi alkalmazásazonosítók használhatók:
Pályázat azonosítója | Név | Feljegyzés |
---|---|---|
d7304df8-741f-47d3-9bc2-df0e24e2071f | Azure Machine Learning Workbench Web App | Azure Machine Learning Studio |
cb2ff863-7f30-4ced-ab89-a00194bcf6d9 | Azure AI Studio-alkalmazás | Azure AI Studio |
Szolgáltatásnév keresése
A feltételes hozzáférési szabályzat hozzáadása előtt ellenőrizze, hogy az alkalmazásazonosító szerepel-e az Azure Portal Nagyvállalati alkalmazások szakaszában:
Fontos
Az ebben a szakaszban ismertetett lépések végrehajtásához p2 Microsoft Entra-azonosítóval kell rendelkeznie. További információ: Microsoft Entra licencelés.
Vállalati alkalmazások keresése a portál tetején található keresőmezőben, és válassza ki a vállalati alkalmazás bejegyzését.
A Vállalati alkalmazásokban a Keresés alkalmazásnév vagy objektumazonosító mező használatával keresse meg a feltételes hozzáféréssel használni kívánt bejegyzést. Ha megjelenik egy bejegyzés, már létezik szolgáltatásnév az alkalmazásazonosítóhoz. Hagyja ki a szakasz többi lépését, és lépjen a Feltételes hozzáférés hozzáadása szakaszra.
Fontos
Az egyetlen szűrőnek az alkalmazásazonosítónak kell kezdődnie. Távolítsa el az esetlegesen előforduló többi szűrőt.
Ha nem jelenik meg bejegyzés, az alábbi Azure PowerShell-parancsmaggal hozzon létre egy egyszerű szolgáltatást az alkalmazásazonosítóhoz:
New-AzAdServicePrincipal -ApplicationId "application-ID"
Például:
New-AzADServicePrincipal -ApplicationId "d7304df8-741f-47d3-9bc2-df0e24e2071f"
.A szolgáltatásnév létrehozása után térjen vissza a Vállalati alkalmazásokhoz, és ellenőrizze, hogy most már megtalálja-e az alkalmazásazonosítót. Az azonosítók listáját a Feltételes hozzáférés használata szakaszban találja.
Feltételes hozzáférés hozzáadása
A feltételes hozzáférés használatához rendelje hozzá a feltételes hozzáférési szabályzatot az alkalmazásazonosítóhoz. Ha az alkalmazás nem jelenik meg a feltételes hozzáférésben, használja a Szolgáltatásnév ellenőrzése szakaszban található lépéseket.
Következő lépések
- Titkos kódok használata a betanításban.
- Online végpontokon történő hitelesítés.