Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY:
SDK v1 usługi Azure Machine Learning dla języka Python
Ważne
Ten artykuł zawiera informacje na temat korzystania z zestawu Azure Machine Learning SDK w wersji 1. Zestaw SDK w wersji 1 jest przestarzały od 31 marca 2025 r. Wsparcie dla niego zakończy się 30 czerwca 2026 r. Do tej pory można zainstalować zestaw SDK w wersji 1 i używać go. Istniejące przepływy pracy korzystające z zestawu SDK w wersji 1 będą nadal działać po dacie zakończenia pomocy technicznej. Mogą one jednak być narażone na zagrożenia bezpieczeństwa lub niespójności w przypadku zmian architektury w produkcie.
Zalecamy przejście do zestawu SDK w wersji 2 przed 30 czerwca 2026 r. Aby uzyskać więcej informacji na temat zestawu SDK w wersji 2, zobacz Co to jest interfejs wiersza polecenia usługi Azure Machine Learning i zestaw Python SDK w wersji 2? oraz dokumentacja zestawu SDK w wersji 2.
Dowiedz się, jak skonfigurować uwierzytelnianie w obszarze roboczym usługi Azure Machine Learning. Uwierzytelnianie w obszarze roboczym usługi Azure Machine Learning jest oparte na identyfikatorze Entra firmy Microsoft dla większości rzeczy. Ogólnie rzecz biorąc, istnieją cztery przepływy pracy uwierzytelniania, których można użyć podczas nawiązywania połączenia z obszarem roboczym:
Interakcyjne: używasz swojego konta w identyfikatorze Entra firmy Microsoft do bezpośredniego uwierzytelniania lub do uzyskania tokenu używanego do uwierzytelniania. Uwierzytelnianie interakcyjne jest używane podczas eksperymentowania i programowania iteracyjnego. Uwierzytelnianie interakcyjne umożliwia kontrolowanie dostępu do zasobów (takich jak usługa internetowa) na podstawie poszczególnych użytkowników.
Jednostka usługi: utworzysz konto jednostki usługi w identyfikatorze Entra firmy Microsoft i użyjesz go do uwierzytelniania lub uzyskania tokenu. Jednostka usługi jest używana, gdy potrzebny jest zautomatyzowany proces uwierzytelniania w usłudze bez konieczności interakcji z użytkownikiem. Na przykład skrypt ciągłej integracji i wdrażania, który trenuje i testuje model za każdym razem, gdy zmienia się kod trenowania.
Sesja interfejsu wiersza polecenia platformy Azure: do uwierzytelniania jest używana aktywna sesja interfejsu wiersza polecenia platformy Azure. Uwierzytelnianie interfejsu wiersza polecenia platformy Azure jest używane podczas eksperymentowania i programowania iteracyjnego lub gdy potrzebny jest zautomatyzowany proces uwierzytelniania w usłudze przy użyciu wstępnie uwierzytelnionej sesji. Możesz zalogować się do platformy Azure za pośrednictwem interfejsu wiersza polecenia platformy Azure na lokalnej stacji roboczej bez przechowywania poświadczeń w kodzie języka Python lub monitowania użytkownika o uwierzytelnienie. Podobnie można ponownie użyć tych samych skryptów w ramach potoków ciągłej integracji i wdrażania, uwierzytelnianie interfejsu wiersza polecenia platformy Azure przy użyciu tożsamości jednostki usługi.
Tożsamość zarządzana: w przypadku korzystania z zestawu Azure Machine Learning SDK na maszynie wirtualnej platformy Azure można użyć tożsamości zarządzanej dla platformy Azure. Ten przepływ pracy umożliwia maszynie wirtualnej nawiązanie połączenia z obszarem roboczym przy użyciu tożsamości zarządzanej bez przechowywania poświadczeń w kodzie języka Python lub monitowania użytkownika o uwierzytelnienie. Klastry obliczeniowe i wystąpienia obliczeniowe usługi Azure Machine Learning można również skonfigurować tak, aby używać tożsamości zarządzanej do uzyskiwania dostępu do obszaru roboczego podczas trenowania modeli.
Niezależnie od używanego przepływu pracy uwierzytelniania kontrola dostępu oparta na rolach platformy Azure (RBAC) jest używana do określania zakresu poziomu dostępu (autoryzacji) dozwolonego dla zasobów. Na przykład administrator lub proces automatyzacji może mieć dostęp do tworzenia wystąpienia obliczeniowego, ale nie używać go, podczas gdy analityk danych może go użyć, ale nie może go usunąć ani utworzyć. Aby uzyskać więcej informacji, zobacz Zarządzanie dostępem do obszaru roboczego usługi Azure Machine Learning.
Dostęp warunkowy firmy Microsoft Entra może służyć do dalszej kontroli lub ograniczenia dostępu do obszaru roboczego dla każdego przepływu pracy uwierzytelniania. Na przykład administrator może zezwolić na dostęp do obszaru roboczego tylko z urządzeń zarządzanych.
Wymagania wstępne
- Tworzenie obszaru roboczego usługi Azure Machine Learning.
- Skonfiguruj środowisko programistyczne, aby zainstalować zestaw SDK usługi Azure Machine Learning lub użyć wystąpienia obliczeniowego usługi Azure Machine Learning z już zainstalowanym zestawem SDK.
Microsoft Entra ID
Wszystkie przepływy pracy uwierzytelniania dla obszaru roboczego korzystają z identyfikatora Entra firmy Microsoft. Jeśli chcesz, aby użytkownicy uwierzytelniali się przy użyciu poszczególnych kont, muszą mieć konta w identyfikatorze Microsoft Entra. Jeśli chcesz używać jednostek usługi, muszą istnieć w identyfikatorze Entra firmy Microsoft. Tożsamości zarządzane są również funkcją identyfikatora Entra firmy Microsoft.
Aby uzyskać więcej informacji na temat identyfikatora Entra firmy Microsoft, zobacz Co to jest uwierzytelnianie firmy Microsoft Entra.
Po utworzeniu kont microsoft Entra zobacz Zarządzanie dostępem do obszaru roboczego usługi Azure Machine Learning, aby uzyskać informacje na temat udzielania im dostępu do obszaru roboczego i innych operacji w usłudze Azure Machine Learning.
Konfigurowanie nazwy głównej usługi
Aby użyć jednostki usługi (SP), należy najpierw utworzyć sp. Następnie przyznaj mu dostęp do obszaru roboczego. Jak wspomniano wcześniej, kontrola dostępu oparta na rolach platformy Azure (RBAC) jest używana do kontrolowania dostępu, dlatego należy również zdecydować, jaki dostęp ma udzielić dostawcy usług.
Ważne
W przypadku korzystania z jednostki usługi, przyznaj jej minimalny dostęp wymagany do realizacji zadania. Na przykład, nie udzieliłbyś dostępu właściciela jednostki usługi ani współtwórcy, jeśli jedynym zastosowaniem jest odczytywanie tokenu dostępu do wdrożenia internetowego.
Przyczyną udzielenia najmniejszego dostępu jest to, że jednostka usługi używa hasła do uwierzytelniania, a hasło może być przechowywane w ramach skryptu automatyzacji. Jeśli hasło zostanie ujawnione, posiadanie minimalnego dostępu wymaganego do określonego zadania ogranicza złośliwe użycie konta lub usługi.
Należy regularnie wymieniać tajemnice, takie jak hasło podmiotu usługi.
Najprostszym sposobem utworzenia dostawcy usługi i udzielenia dostępu do obszaru roboczego jest użycie interfejsu wiersza polecenia platformy Azure. Aby utworzyć jednostkę usługi i udzielić jej dostępu do obszaru roboczego, wykonaj następujące kroki:
Uwaga
Aby wykonać wszystkie te kroki, musisz być administratorem subskrypcji.
Uwierzytelnianie w subskrypcji platformy Azure:
az loginJeśli interfejs wiersza polecenia może otworzyć domyślną przeglądarkę, robi to i ładuje stronę logowania. W przeciwnym razie musisz otworzyć przeglądarkę i postępować zgodnie z instrukcjami w wierszu polecenia. Instrukcje obejmują przechodzenie do https://aka.ms/devicelogin i wprowadzanie kodu autoryzacji.
Jeśli masz wiele subskrypcji platformy Azure, możesz użyć
az account set -s <subscription name or ID>polecenia , aby ustawić subskrypcję. Aby uzyskać więcej informacji, zobacz Używanie wielu subskrypcji platformy Azure.Aby uzyskać informacje na temat innych metod uwierzytelniania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Utwórz jednostkę usługi. W poniższym przykładzie tworzony jest sp o nazwie ml-auth :
az ad sp create-for-rbac --json-auth --name ml-auth --role Contributor --scopes /subscriptions/<subscription id>Parametr
--json-authjest dostępny w wersjach >interfejsu wiersza polecenia platformy Azure = 2.51.0. Wersje przed tym użyciem .--sdk-authWynik jest w formacie JSON podobnym do poniższego. Zanotuj
clientIdpola ,clientSecretitenantId, ponieważ są potrzebne do wykonania innych kroków w tym artykule.{ "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" }Pobierz szczegóły jednostki usługi przy użyciu
clientIdwartości zwróconej w poprzednim kroku:az ad sp show --id your-client-idPoniższy kod JSON jest uproszczonym przykładem danych wyjściowych polecenia . Zanotuj
objectIdpole, ponieważ będzie potrzebna jego wartość dla następnego kroku.{ "accountEnabled": "True", "addIns": [], "appDisplayName": "ml-auth", ... ... ... "objectId": "your-sp-object-id", "objectType": "ServicePrincipal" }Aby udzielić dostępu do obszaru roboczego i innych zasobów używanych przez usługę Azure Machine Learning, skorzystaj z informacji w następujących artykułach:
- Jak przypisywać role i akcje w usłudze Azure Machine Learning
- Jak przypisywać role w interfejsie wiersza polecenia
Ważne
Dostęp właściciela umożliwia jednostce usługi wykonywanie praktycznie dowolnej operacji w obszarze roboczym. Jest używane w tym dokumencie, aby zademonstrować, jak udzielać dostępu; w środowisku produkcyjnym firma Microsoft zaleca przyznanie podmiotowi usługi minimalnego dostępu wymaganego do pełnienia roli, którą ma pełnić. Aby uzyskać informacje na temat tworzenia roli niestandardowej z dostępem wymaganym do danego scenariusza, zobacz Zarządzanie dostępem do obszaru roboczego usługi Azure Machine Learning.
Konfigurowanie tożsamości zarządzanej
Ważne
Tożsamość zarządzana jest obsługiwana tylko w przypadku korzystania z zestawu AZURE Machine Learning SDK z maszyny wirtualnej platformy Azure lub klastra obliczeniowego usługi Azure Machine Learning lub wystąpienia obliczeniowego.
Tożsamość zarządzana przy użyciu maszyny wirtualnej
Włącz tożsamość zarządzaną przypisaną przez system dla zasobów platformy Azure na maszynie wirtualnej.
W witrynie Azure Portal wybierz swój obszar roboczy, a następnie wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami).
Wybierz pozycję Dodaj, Dodaj przypisanie roli, aby otworzyć stronę Dodawanie przypisania roli.
Przypisz następującą rolę. Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.
Ustawienie Wartość Rola Rola, którą chcesz przypisać. Przypisz dostęp do Tożsamość zarządzana Elementy członkowskie Utworzona wcześniej tożsamość zarządzana
Tożsamość zarządzana z klastrem obliczeniowym
Aby uzyskać więcej informacji, zobacz Konfigurowanie tożsamości zarządzanej dla klastra obliczeniowego.
Korzystanie z uwierzytelniania interakcyjnego
Ważne
Uwierzytelnianie interakcyjne używa przeglądarki i wymaga plików cookie (w tym plików cookie innych firm). Jeśli wyłączysz pliki cookie, może zostać wyświetlony błąd, taki jak "nie mogliśmy Cię zalogować". Ten błąd może również wystąpić, jeśli włączono uwierzytelnianie wieloskładnikowe firmy Microsoft Entra.
Większość przykładów w dokumentacji i przykładach używa uwierzytelniania interakcyjnego. Na przykład w przypadku korzystania z zestawu SDK istnieją dwa wywołania funkcji, które automatycznie wyświetlają prośbę o rozpoczęcie procesu uwierzytelniania opartego na interfejsie użytkownika.
from_config()Wywołanie funkcji powoduje wyświetlenie monitu.from azureml.core import Workspace ws = Workspace.from_config()Funkcja
from_config()szuka pliku JSON zawierającego informacje o połączeniu z obszarem roboczym.Użycie konstruktora
Workspacew celu udostępnienia informacji o subskrypcji, grupie zasobów i obszarze roboczym również monituje o uwierzytelnianie interakcyjne.ws = Workspace(subscription_id="your-sub-id", resource_group="your-resource-group-id", workspace_name="your-workspace-name" )
Napiwek
Jeśli masz dostęp do wielu dzierżawców, może być konieczne zaimportowanie klasy programistycznej i wyraźne określenie, na którego dzierżawcę się kierujesz. Konstruktor InteractiveLoginAuthentication powoduje również komunikat zachęcający do zalogowania się, podobnie jak w poprzednich przykładach.
from azureml.core.authentication import InteractiveLoginAuthentication
interactive_auth = InteractiveLoginAuthentication(tenant_id="your-tenant-id")
W przypadku korzystania z interfejsu wiersza polecenia az login platformy Azure polecenie jest używane do uwierzytelniania sesji interfejsu wiersza polecenia. Aby uzyskać więcej informacji, zobacz Wprowadzenie do interfejsu wiersza polecenia platformy Azure.
Napiwek
Jeśli używasz zestawu SDK ze środowiska, w którym uwierzytelniasz się interaktywnie przy użyciu interfejsu wiersza polecenia platformy Azure, możesz użyć AzureCliAuthentication klasy do uwierzytelniania w obszarze roboczym przy użyciu poświadczeń buforowanych przez interfejs wiersza polecenia:
from azureml.core.authentication import AzureCliAuthentication
cli_auth = AzureCliAuthentication()
ws = Workspace(subscription_id="your-sub-id",
resource_group="your-resource-group-id",
workspace_name="your-workspace-name",
auth=cli_auth
)
Korzystanie z uwierzytelniania jednostki usługi
Aby uwierzytelnić się w obszarze roboczym z zestawu SDK przy użyciu jednostki usługi, użyj konstruktora ServicePrincipalAuthentication klasy. Użyj wartości, które otrzymasz podczas tworzenia dostawcy usług jako parametrów. Parametr tenant_id odwołuje się do tenantId z wcześniejszego, service_principal_id odwołuje się do clientId, a service_principal_password odwołuje się do clientSecret.
from azureml.core.authentication import ServicePrincipalAuthentication
sp = ServicePrincipalAuthentication(tenant_id="your-tenant-id", # tenantID
service_principal_id="your-client-id", # clientId
service_principal_password="your-client-secret") # clientSecret
Zmienna sp zawiera teraz obiekt uwierzytelniania używany bezpośrednio w zestawie SDK. Ogólnie rzecz biorąc, dobrym pomysłem jest przechowywanie identyfikatorów/wpisów tajnych używanych wcześniej w zmiennych środowiskowych, jak pokazano w poniższym kodzie. Przechowywanie w zmiennych środowiskowych uniemożliwia przypadkowe zaewidencjonowanie informacji w repozytorium GitHub.
import os
sp = ServicePrincipalAuthentication(tenant_id=os.environ['AML_TENANT_ID'],
service_principal_id=os.environ['AML_PRINCIPAL_ID'],
service_principal_password=os.environ['AML_PRINCIPAL_PASS'])
W przypadku zautomatyzowanych przepływów pracy uruchamianych w języku Python i używania zestawu SDK można używać tego obiektu w większości przypadków do uwierzytelniania. Poniższy kod uwierzytelnia się w obszarze roboczym przy użyciu utworzonego obiektu uwierzytelniania.
from azureml.core import Workspace
ws = Workspace.get(name="ml-example",
auth=sp,
subscription_id="your-sub-id",
resource_group="your-rg-name")
ws.get_details()
Korzystanie z uwierzytelniania tożsamości zarządzanej
Aby uwierzytelnić się w obszarze roboczym z maszyny wirtualnej, klastra obliczeniowego lub wystąpienia obliczeniowego skonfigurowanego przy użyciu tożsamości zarządzanej, użyj MsiAuthentication klasy . W poniższym przykładzie pokazano, jak używać tej klasy do uwierzytelniania w obszarze roboczym:
from azureml.core.authentication import MsiAuthentication
msi_auth = MsiAuthentication()
ws = Workspace(subscription_id="your-sub-id",
resource_group="your-resource-group-id",
workspace_name="your-workspace-name",
auth=msi_auth
)
Korzystanie z dostępu warunkowego
Jako administrator możesz wymusić zasady dostępu warunkowego firmy Microsoft dla użytkowników logujący się do obszaru roboczego. Możesz na przykład wymagać uwierzytelniania dwuskładnikowego lub zezwolić na logowanie tylko z urządzeń zarządzanych. Aby użyć dostępu warunkowego dla obszarów roboczych usługi Azure Machine Learning, przypisz zasady dostępu warunkowego do aplikacji o nazwie Azure Machine Learning. Identyfikator aplikacji to 0736f41a-0425-bdb5-1563eff02385.