Udostępnij za pośrednictwem


Szybki start: logowanie użytkowników i wywoływanie programu Microsoft Graph z poziomu aplikacji internetowej Platformy Python Flask

W tym przewodniku Szybki start pobierzesz i uruchomisz przykładową aplikację internetową platformy Python Flask, która pokazuje, jak uwierzytelniać użytkowników i wywoływać interfejs API programu Microsoft Graph. Użytkownicy w organizacji firmy Microsoft Entra mogą logować się do aplikacji.

Wymagania wstępne

Krok 1. Rejestrowanie aplikacji

Napiwek

Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.

Wykonaj następujące kroki, aby zarejestrować aplikację w centrum administracyjnym firmy Microsoft Entra:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako co najmniej Administracja istrator aplikacji w chmurze.
  2. Jeśli masz dostęp do wielu dzierżaw, użyj ikonyUstawienia w górnym menu, aby przełączyć się do dzierżawy, w której chcesz zarejestrować aplikację z menu Katalogi i subskrypcje.
  3. Przejdź do pozycji Identity>Applications> Rejestracje aplikacji i wybierz pozycję Nowa rejestracja.
  4. Wprowadź nazwę aplikacji, na przykład python-webapp.
  5. W obszarze Obsługiwane typy kont wybierz pozycję Konta tylko w tym katalogu organizacyjnym.
  6. W obszarze Identyfikatory URI przekierowania wybierz pozycję Sieć Web dla platformy.
  7. Wprowadź identyfikator URI przekierowania .http://localhost:5000/getAToken Tę wartość można zmienić później.
  8. Wybierz pozycję Zarejestruj.

Krok 2. Dodawanie wpisu tajnego klienta

Przykładowa aplikacja używa klucza tajnego klienta, aby udowodnić swoją tożsamość, gdy żąda tokenów. Wykonaj następujące kroki, aby utworzyć klucz tajny klienta dla aplikacji internetowej w języku Python:

  1. Na stronie Przegląd aplikacji zanotuj wartość Identyfikator aplikacji (klienta) do późniejszego użycia.
  2. W obszarze Zarządzanie wybierz pozycję Certyfikaty i wpisy tajne, a następnie w sekcji Wpisy tajne klienta wybierz pozycję Nowy klucz tajny klienta.
  3. Wprowadź opis wpisu tajnego klienta, pozostaw domyślne wygaśnięcie, a następnie wybierz pozycję Dodaj.
  4. Zapisz wartość wpisu tajnego klienta w bezpiecznej lokalizacji. Ta wartość wymaga skonfigurowania kodu i nie można go pobrać później.

Podczas tworzenia poświadczeń dla poufnej aplikacji klienckiej firma Microsoft zaleca użycie certyfikatu zamiast klucza tajnego klienta przed przeniesieniem aplikacji do środowiska produkcyjnego. Aby uzyskać więcej informacji na temat używania certyfikatu, zobacz te instrukcje.

Krok 3. Dodawanie zakresu

Ponieważ ta aplikacja loguje użytkowników, musisz dodać uprawnienia delegowane:

  1. W obszarze Zarządzanie wybierz pozycję Uprawnienia>interfejsu API Dodaj uprawnienie.
  2. Upewnij się, że wybrano kartę Interfejsy API firmy Microsoft.
  3. W sekcji Często używane interfejsy API firmy Microsoft wybierz pozycję Microsoft Graph.
  4. W sekcji Uprawnienia delegowane upewnij się, że wybrano opcję User.Read. W razie potrzeby użyj pola wyszukiwania.
  5. Wybierz Przyznaj uprawnienia.

Krok 4. Pobieranie przykładowej aplikacji

Pobierz przykładowy kod języka Python lub sklonuj repozytorium:

git clone https://github.com/Azure-Samples/ms-identity-docs-code-python/

Krok 5. Konfigurowanie przykładowej aplikacji

  1. Otwórz aplikację pobraną w środowisku IDE i przejdź do folderu głównego przykładowej aplikacji.

    cd flask-web-app
    
  2. Utwórz plik env w folderze głównym projektu przy użyciu pliku .env.sample jako przewodnika.

    # The following variables are required for the app to run.
    CLIENT_ID=<Enter_your_client_id>
    CLIENT_SECRET=<Enter_your_client_secret>
    AUTHORITY=<Enter_your_authority_url>
    
    • Ustaw wartość CLIENT_IDidentyfikatora aplikacji (klienta) dla zarejestrowanej aplikacji dostępnej na stronie przeglądu.
    • Ustaw wartość CLIENT_SECRET klucza tajnego klienta utworzonego w certyfikatach i wpisach tajnych dla zarejestrowanej aplikacji.
    • Ustaw wartość AUTHORITY na https://login.microsoftonline.com/<TENANT_GUID>wartość . Identyfikator katalogu (dzierżawy) jest dostępny na stronie przeglądu rejestracji aplikacji.

    Zmienne środowiskowe są przywołyane w app_config.py i są przechowywane w osobnym pliku env , aby zachować je poza kontrolą źródła. Podany plik .gitignore uniemożliwia zaewidencjonowanie pliku env.

Krok 6. Uruchamianie przykładowej aplikacji

  1. Utwórz środowisko wirtualne dla aplikacji:

    py -m venv .venv
    .venv\scripts\activate
    
  2. Zainstaluj wymagania przy użyciu polecenia pip:

    pip install -r requirements.txt
    
  3. Uruchom aplikację z wiersza polecenia. Upewnij się, że aplikacja jest uruchomiona na tym samym porcie co skonfigurowany wcześniej identyfikator URI przekierowania.

    flask run --debug --host=localhost --port=5000
    
  4. Skopiuj adres URL https wyświetlany w terminalu, na przykład https://localhost:5000, i wklej go w przeglądarce. Zalecamy używanie prywatnej lub incognito sesji przeglądarki.

  5. Wykonaj kroki i wprowadź niezbędne szczegóły, aby zalogować się przy użyciu konta Microsoft. Użytkownik jest proszony o podanie adresu e-mail i hasła w celu zalogowania się.

  6. Aplikacja żąda uprawnień do utrzymania dostępu do danych, do których udzielono mu dostępu, oraz do zalogowania się i odczytania profilu, jak pokazano poniżej. Wybierz pozycję Zaakceptuj.

Diagram przedstawiający przykładową aplikację żądającą zgody na dostęp do wymaganych uprawnień.

  1. Zostanie wyświetlony poniższy zrzut ekranu wskazujący, że pomyślnie zalogowaliśmy się do aplikacji.

Diagram pokazujący, jak przykładowa aplikacja pomyślnie zalogowała się do użytkownika.

Jak to działa

Na poniższym diagramie pokazano, jak działa przykładowa aplikacja:

Diagram przedstawiający sposób działania przykładowej aplikacji wygenerowanej przez ten przewodnik Szybki start.

  1. Aplikacja używa identity pakietu do uzyskania tokenu dostępu z Platforma tożsamości Microsoft. Ten pakiet jest oparty na bibliotece Microsoft Authentication Library (MSAL) dla języka Python w celu uproszczenia uwierzytelniania i autoryzacji w aplikacjach internetowych.

  2. Token dostępu uzyskany w poprzednim kroku jest używany jako token elementu nośnego do uwierzytelniania użytkownika podczas wywoływania interfejsu API programu Microsoft Graph.

Następne kroki

Dowiedz się więcej, tworząc aplikację internetową w języku Python, która loguje użytkowników i wywołuje chroniony internetowy interfejs API w następującej serii samouczków z wieloma częściami: