Set up authentication for Azure Machine Learning resources and workflows

É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 Tanulás-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 akkor használatos, ha automatikus folyamatra van szüksége a szolgáltatáshoz való hitelesítéshez felhasználói beavatkozás nélkül. 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 Tanulás Azure CLI-bővítménye (a bővítmény vagy a ml CLI v2) egy parancssori eszköz az Azure Machine Tanulás 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: Az Azure Machine Tanulás SDK v2 számítási példányon vagy Azure-beli virtuális gépen való használatakor 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 Tanulás számítási fürtök ú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. Egy rendszergazdai vagy automatizálási folyamat például rendelkezhet hozzáféréssel egy számítási példány létrehozásához, de nem használhatja azt, míg egy adatelemző használhatja, de nem törölheti vagy hozhatja létre. További információ: Az Azure Machine Tanulás-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

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.

Miután létrehozta a Microsoft Entra-fiókokat, az Azure Machine Tanulás-munkaterülethez való hozzáférés kezelésével kapcsolatos információkért tekintse meg a munkaterülethez és az Azure Machine Tanulás egyéb műveleteihez való hozzáférés biztosításával kapcsolatos információkat.

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, SharedTokenCacheCredentialVisualStudioCodeCredential, AzureCliCredential) AzurePowerShellCredentialhasználót kér le, és leállítja, amikor egy jogkivonatot ad meg. További információ: DefaultAzureCredential class reference.

Az alábbiakban egy példa látható a hitelesítésre DefaultAzureCredential . 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:

Megjegyzés:

Az összes lépés végrehajtásához rendszergazdai jogosultságokkal kell rendelkeznie az előfizetésben.

  1. Hitelesítés az Azure-előfizetésben:

    az login
    

    Ha a CLI megnyithatja az alapértelmezett böngészőt, akkor megnyitja, és betölti a bejelentkezési oldalt. 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.

  2. 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-authelőtti verziók.

    A kimenet az alábbihoz hasonló JSON lesz. Jegyezze fel a clientId, clientSecretés tenantId a mezőket, mivel szüksége lesz rájuk a 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"
    }
    
  3. 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"
    }
    
  4. Az Azure Machine Tanulás által használt munkaterülethez és 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:

    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. A forgatókönyvhöz szükséges hozzáféréssel rendelkező egyéni szerepkörök létrehozásáról az Azure Machine-Tanulás-munkaterülethez való hozzáférés kezelése című témakörben olvashat.

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-Tanulás számítási fürtről vagy számítási példányról használja az Azure Machine Tanulás SDK-t.

Felügyelt identitás virtuális géppel

  1. Engedélyezze a rendszer által hozzárendelt felügyelt identitást a virtuális gépen lévő Azure-erőforrásokhoz.

  2. Az Azure Portalon válassza ki a munkaterületet, majd válassza a Hozzáférés-vezérlés (IAM) lehetőséget.

  3. 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.

  4. 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 Tanulás REST API-jának hitelesítésére 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:

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. Az Azure Machine Tanulás-munkaterületek feltételes hozzáférésének használatához rendelje hozzá a feltételes hozzáférési szabályzatot az Azure Machine Tanulás nevű alkalmazáshoz. Az alkalmazás azonosítója : 0736f41a-0425-bdb5-1563eff02385.

További lépések