Uwierzytelnianie w obszarze roboczym przy użyciu jednostki usługi
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:
Tworzenie aplikacji usługi Azure AD:
Uwaga
Nie trzeba ustawiać identyfikatora URI przekierowania.
- Po utworzeniu zapisz identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy).
Utwórz poświadczenie , aby zalogować się jako aplikacja:
- W ustawieniach aplikacji wybierz pozycję Certyfikaty i wpisy tajne.
- W obszarze Wpisy tajne klienta wybierz pozycję Utwórz nowy wpis tajny.
- Podaj opis i czas trwania, a następnie wybierz pozycję Dodaj.
- Skopiuj wartość wpisu tajnego do bezpiecznego miejsca natychmiast — nie będzie można go zobaczyć ponownie!
Nadaj jednostce usługi uprawnienia dostępu do obszaru roboczego:
- Otwórz portal Azure Portal.
- Na pasku wyszukiwania wprowadź nazwę grupy zasobów, w której utworzono obszar roboczy. Wybierz grupę zasobów, gdy pojawi się ona w wynikach.
- W przeglądzie grupy zasobów wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami).
- Wybierz pozycję Dodaj przypisanie roli.
- Wyszukaj i wybierz jednostkę usługi.
- 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.