Uwierzytelnianie aplikacji języka Python w usługach Azure podczas programowania lokalnego za pomocą kont deweloperskich

Podczas programowania lokalnego aplikacje muszą uwierzytelniać się na platformie Azure, aby korzystać z różnych usług platformy Azure. Uwierzytelnij się lokalnie przy użyciu jednego z następujących podejść:

W tym artykule wyjaśniono, jak uwierzytelniać się przy użyciu konta dewelopera z narzędziami obsługiwanymi przez bibliotekę Azure Identity. W poniższych sekcjach nauczysz się:

  • Jak używać grup firmy Microsoft Entra do wydajnego zarządzania uprawnieniami dla wielu kont deweloperów.
  • Jak przypisywać role do kont deweloperów w celu określenia zakresu uprawnień.
  • Jak zalogować się do obsługiwanych lokalnych narzędzi programistycznych.
  • Jak uwierzytelnić się przy użyciu konta dewelopera z poziomu kodu aplikacji.

Obsługiwane narzędzia deweloperskie do uwierzytelniania

Aby aplikacja mogła uwierzytelnić się na platformie Azure podczas programowania lokalnego przy użyciu poświadczeń platformy Azure dewelopera, deweloper musi zalogować się do platformy Azure za pomocą jednego z następujących narzędzi deweloperskich:

  • Azure CLI
  • Azure Developer CLI
  • Azure PowerShell
  • Visual Studio Code

Biblioteka Azure Identity może wykryć, że deweloper jest zalogowany z jednego z tych narzędzi. Biblioteka może następnie uzyskać za pośrednictwem narzędzia token dostępu Microsoft Entra, aby uwierzytelnić aplikację w usłudze Azure jako zalogowanego użytkownika.

Takie podejście usprawnia proces uwierzytelniania, korzystając z istniejących kont Azure dewelopera. Jednak konto dewelopera prawdopodobnie ma więcej uprawnień niż wymagane przez aplikację, co oznacza, że przekracza uprawnienia uruchamiane przez aplikację w środowisku produkcyjnym. Alternatywnie można utworzyć jednostki usługi aplikacji do użycia podczas programowania lokalnego, które można ograniczyć do zakresu, aby mieć tylko dostęp wymagany przez aplikację.

Utwórz grupę Microsoft Entra do rozwoju lokalnego

Utwórz grupę Entra w Microsoft, aby zgrupować role (uprawnienia), których aplikacja potrzebuje w środowisku lokalnym, zamiast przypisywać te role do poszczególnych obiektów głównych usługi. Takie podejście zapewnia następujące korzyści:

  • Każdy deweloper ma te same role przypisane na poziomie grupy.
  • Jeśli dla aplikacji jest potrzebna nowa rola, należy ją dodać tylko do grupy aplikacji.
  • Jeśli nowy deweloper dołączy do zespołu, zostanie utworzona nowa jednostka usługi aplikacji dla dewelopera i dodana do grupy, zapewniając deweloperowi odpowiednie uprawnienia do pracy nad aplikacją.
  1. Przejdź do strony przeglądu Microsoft Entra ID w portalu Azure.

  2. Wybierz pozycję Wszystkie grupy z menu po lewej stronie.

  3. Na stronie Grupy wybierz pozycję Nowa grupa.

  4. Na stronie Nowa grupa wypełnij następujące pola formularza:

    • Typ grupy: wybierz pozycję Security.
    • Nazwa grupy: wprowadź nazwę grupy, która zawiera odwołanie do nazwy aplikacji lub środowiska.
    • Opis grupy: wprowadź opis, który wyjaśnia przeznaczenie grupy.

    Zrzut ekranu przedstawiający sposób tworzenia grupy w witrynie Azure Portal.

  5. Wybierz link Brak wybranych członków w obszarze Członkowie, aby dodać członków do grupy.

  6. W wyświetlonym panelu wysuwanym wyszukaj utworzoną wcześniej jednostkę usługi i wybierz ją z filtrowanych wyników. Wybierz przycisk Wybierz w dolnej części panelu, aby potwierdzić wybór.

  7. Wybierz pozycję Utwórz w dolnej części strony Nowa grupa , aby utworzyć grupę i wrócić do strony Wszystkie grupy . Jeśli nie widzisz nowej grupy na liście, zaczekaj chwilę i odśwież stronę.

Przypisywanie ról do grupy

Następnie określ, jakich ról (uprawnień) potrzebuje twoja aplikacja na temat zasobów i przypisz te role do utworzonej grupy firmy Microsoft Entra. Grupy można przypisać do roli w zakresie zasobu, grupy zasobów lub subskrypcji. W tym przykładzie pokazano, jak przypisywać role w zakresie grupy zasobów, ponieważ większość aplikacji grupuje wszystkie zasoby platformy Azure w jedną grupę zasobów.

  1. W witrynie Azure Portal przejdź do strony Przegląd grupy zasobów zawierającej aplikację.

  2. Wybierz Kontrola dostępu (IAM) z nawigacji po lewej stronie.

  3. Na stronie Kontrola dostępu (zarządzanie dostępem i tożsamościami) wybierz pozycję + Dodaj , a następnie z menu rozwijanego wybierz pozycję Dodaj przypisanie roli . Strona Dodawanie przypisania roli zawiera kilka kart do konfigurowania i przypisywania ról.

  4. Na karcie Rola użyj pola wyszukiwania, aby zlokalizować rolę, którą chcesz przypisać. Wybierz rolę, a następnie wybierz pozycję Dalej.

  5. Na karcie Członkowie:

    • W polu Przypisz dostęp do wartości wybierz pozycję Użytkownik, grupa lub jednostka usługi .
    • Dla wartości Członkowie wybierz pozycję + Wybierz członków , aby otworzyć panel wysuwany Wybieranie członków .
    • Wyszukaj utworzoną wcześniej grupę Microsoft Entra i wybierz ją z filtrowanych wyników. Wybierz , a następnie, aby wybrać grupę i zamknąć wysuwane okno.
    • Wybierz Przejrzyj + przypisz na dole zakładki Członkowie.

    Zrzut ekranu przedstawiający sposób przypisywania roli do grupy Microsoft Entra.

  6. Na karcie Przeglądanie i przypisywanie wybierz pozycję Przejrzyj i przypisz w dolnej części strony.

Zaloguj się do Azure przy użyciu narzędzi deweloperskich

Aby uwierzytelnić się przy użyciu konta Azure, wybierz jedną z następujących metod:

Deweloperzy korzystający z programu Visual Studio Code mogą uwierzytelniać się przy użyciu konta dewelopera bezpośrednio za pośrednictwem edytora za pośrednictwem brokera. Aplikacje korzystające z elementu DefaultAzureCredential lub VisualStudioCodeCredential mogą następnie używać tego konta do uwierzytelniania żądań aplikacji za pomocą bezproblemowego środowiska logowania jednokrotnego.

  1. W programie Visual Studio Code przejdź do panelu Rozszerzenia i zainstaluj rozszerzenie Zasoby platformy Azure . To rozszerzenie umożliwia wyświetlanie zasobów platformy Azure i zarządzanie nimi bezpośrednio z poziomu programu Visual Studio Code. Używa również wbudowanego dostawcy uwierzytelniania firmy Microsoft programu Visual Studio Code do uwierzytelniania za pomocą platformy Azure.

    Zrzut ekranu przedstawiający rozszerzenie zasobów platformy Azure.

  2. Otwórz paletę poleceń w programie Visual Studio Code, a następnie wyszukaj i wybierz pozycję Azure: Zaloguj.

    Zrzut ekranu przedstawiający sposób logowania się do platformy Azure w programie Visual Studio Code.

    Wskazówka

    Otwórz paletę poleceń przy użyciu polecenia Ctrl+Shift+P w systemie Windows/Linux lub Cmd+Shift+P macOS.

  3. azure-identity-broker Dodaj pakiet języka Python do aplikacji:

    pip install azure-identity-broker
    

Uwierzytelnianie w usługach platformy Azure z aplikacji

Biblioteka tożsamości platformy Azure udostępnia implementacje TokenCredential, które obsługują różne scenariusze i przepływy uwierzytelniania Microsoft Entra. W poniższych krokach pokazano, jak używać poświadczeń defaultAzureCredential lub określonego narzędzia programistycznego podczas pracy z kontami użytkowników lokalnie.

Implementowanie kodu

  1. Dodaj pakiet azure-identity i wszystkie pakiety klienta usługi Azure wymagane przez aplikację:

    pip install azure-identity azure-storage-blob
    

    Uwaga

    W przypadku korzystania z VisualStudioCodeCredential należy również zainstalować azure-identity-broker pakiet:

    pip install azure-identity-broker
    

    Dodaj niezbędne import instrukcje dla modułu azure.identity i modułu klienta usługi Azure, których potrzebuje aplikacja.

  2. Wybierz jedną z implementacji poświadczeń na podstawie danego scenariusza.

Używanie poświadczeń specyficznych dla narzędzia programistycznego

Przekaż wystąpienie TokenCredential odpowiadające określonemu narzędziu programistycznemu do konstruktora klienta usługi platformy Azure, takie jak AzureCliCredential.

from azure.identity import AzureCliCredential
from azure.storage.blob import BlobServiceClient

credential = AzureCliCredential()

blob_service_client = BlobServiceClient(
   account_url="https://<account-name>.blob.core.windows.net",
   credential=credential)

Używanie poświadczeń dostępnych do użycia w dowolnym narzędziu programistycznym

Użyj wystąpienia DefaultAzureCredential, które jest zoptymalizowane do wszystkich lokalnych narzędzi programistycznych. W tym przykładzie zmienna środowiskowa AZURE_TOKEN_CREDENTIALS jest ustawiona na dev. Aby uzyskać więcej informacji, zobacz Wykluczanie kategorii typu poświadczeń.

Ustaw zmienną środowiskową przed uruchomieniem aplikacji:

export AZURE_TOKEN_CREDENTIALS=dev
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient

credential = DefaultAzureCredential(require_envvar=True)

blob_service_client = BlobServiceClient(
   account_url="https://<account-name>.blob.core.windows.net",
   credential=credential)

Wskazówka

Gdy zespół używa wielu narzędzi programistycznych do uwierzytelniania za pomocą platformy Azure, preferuj DefaultAzureCredential zamiast poświadczeń specyficznych dla narzędzi.