Udostępnij za pośrednictwem


Jak używać jednostki usługi do uwierzytelniania w obszarze roboczym usługi Azure Quantum

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

Wymaganie wstępne: tworzenie jednostki usługi i wpisu tajnego 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 trzeba ustawiać identyfikatora URI przekierowania.

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

    1. W ustawieniach aplikacji wybierz pozycję Certyfikaty i wpisy tajne.
    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ść wpisu tajnego do bezpiecznego miejsca natychmiast — nie będzie można go zobaczyć ponownie!
  3. Nadaj jednostce usługi uprawnienia dostępu do obszaru roboczego:

    1. Otwórz portal Azure Portal.
    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 pozycję Dodaj przypisanie roli.
    5. Wyszukaj i wybierz jednostkę usługi.
    6. Przypisz rolę Współautor lub Właściciel.

Uwaga

Aby utworzyć przypisanie roli w grupie zasobów lub obszarze roboczym, musisz być właścicielem lub administratorem dostępu użytkowników 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ć jednostkę usługi w ramach roli Współautor przy użyciu:

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

Uwierzytelnianie jako 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 i z tym przekazywaniem poświadczeń jednostki usługi za pośrednictwem następujących zmiennych środowiskowych:

  • AZURE_TENANT_ID: identyfikator dzierżawy jednostki usługi. Nazwany również identyfikatorem "katalogu".
  • AZURE_CLIENT_ID: identyfikator klienta jednostki usługi.
  • AZURE_CLIENT_SECRET: jeden z wpisów tajnych klienta jednostki 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 zostanie podjętych przez metodę DefaultAzureCredential.