Udostępnij przez


Zaloguj się w obszarze roboczym przy użyciu elementu głównego usługi

Czasami nie jest możliwe użycie uwierzytelniania interakcyjnego lub uwierzytelnianie jako konto użytkownika. Te sytuacje mogą wystąpić, gdy chcesz przesłać zadania z usługi internetowej, innej roli roboczej lub zautomatyzowanego systemu. Jedną z opcji jest skonfigurowanie tożsamości zarządzanej, a inną opcją jest użycie Service Principal, co zostanie wyjaśnione w tym artykule.

Wymaganie wstępne: Utwórz tożsamość usługi i tajny klucz aplikacji

Aby uwierzytelnić się jako jednostka usługi, należy najpierw utworzyć jednostkę usługi.

Aby utworzyć jednostkę usługi, przypisz dostęp i wygeneruj poświadczenia:

  1. Tworzenie aplikacji usługi Azure AD:

    Uwaga

    Nie musisz ustawiać identyfikatora URI przekierowania.

    1. Po utworzeniu zapisz identyfikator aplikacji (klienta) oraz identyfikator katalogu (dzierżawy).
  2. Utwórz poświadczenie , aby zalogować się jako aplikacja:

    1. W ustawieniach aplikacji wybierz pozycję Certyfikaty i tajne informacje.
    2. W obszarze Wpisy tajne klienta wybierz pozycję Utwórz nowy wpis tajny.
    3. Podaj opis i czas trwania, a następnie wybierz pozycję Dodaj.
    4. Skopiuj wartość sekretu do bezpiecznego miejsca natychmiast — nie będziesz mógł go ponownie zobaczyć!
  3. Nadaj jednostce usługi uprawnienia dostępu do obszaru roboczego:

    1. Otwórz portal Azure.
    2. Na pasku wyszukiwania wprowadź nazwę grupy zasobów, w której utworzono obszar roboczy. Wybierz grupę zasobów, gdy pojawi się ona w wynikach.
    3. W przeglądzie grupy zasobów wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami).
    4. Wybierz Dodaj przypisanie roli.
    5. Wyszukaj i wybierz główną usługę.
    6. Przypisz rolę Współautora lub Właściciela.

Uwaga

Aby utworzyć przypisanie roli w grupie zasobów lub obszarze roboczym, musisz być właścicielem lub administratorem dostępu użytkownika w zakresie przypisania roli. Jeśli nie masz uprawnień do tworzenia jednostki usługi w ramach subskrypcji, musisz zażądać uprawnień od właściciela lub administratora subskrypcji platformy Azure.

Jeśli masz uprawnienia tylko na poziomie grupy zasobów lub obszaru roboczego, możesz utworzyć główne konto usługi w ramach roli Kontrybutor przy użyciu:

az ad sp create-for-rbac --role Contributor --scopes /subscriptions/<SUBSCRIPTION-ID>

Uwierzytelnij się jako główna jednostka usługi

Opcja 1: Użycie zmiennych środowiskowych: domyślne poświadczenia używane w tworzeniu Workspace obiektu to DefaultAzureCredential, który podejmie próbę uwierzytelniania kilku typów. Pierwszy z nich to EnvironmentCredential, a za jej pomocą przekazujesz poświadczenia jednostki usługi za pośrednictwem następujących zmiennych środowiskowych:

  • AZURE_TENANT_ID: identyfikator dzierżawy jednostki usługi. Nazywany również identyfikatorem katalogowym.
  • AZURE_CLIENT_ID: identyfikator klienta głównej instancji usługi.
  • AZURE_CLIENT_SECRET: jeden z tajnych kluczy klienta pryncypału usługi.

Opcja 2. Używanie elementu ClientSecretCredential: Przekazywanie elementu ClientSecretCredential podczas tworzenia wystąpienia Workspace obiektu lub ustawianie credentials właściwości.

from azure.identity import ClientSecretCredential

tenant_id = os.environ["AZURE_TENANT_ID"]
client_id = os.environ["AZURE_CLIENT_ID"]
client_secret = os.environ["AZURE_CLIENT_SECRET"]
credential = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)

workspace.credentials = credential

Uwaga

Metoda workspace.login() została przestarzała i nie jest już konieczna. Przy pierwszym wywołaniu usługi zostanie podjęta próba uwierzytelnienia przy użyciu poświadczeń przekazanych w konstruktorze Workspace lub jego credentials właściwości. Jeśli nie przekazano żadnych poświadczeń, kilka metod uwierzytelniania będzie podejmowanych przez DefaultAzureCredential.