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.

Warunki wstępne

Krok 1. Rejestrowanie aplikacji

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

  1. Zaloguj się do centrum administracyjnego Microsoft Entra jako co najmniej Administrator aplikacji w chmurze.
  2. Jeśli masz dostęp do wielu dzierżaw, użyj ikony ustawień 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 Identity>Applications>App registrations i wybierz New registration.
  4. Wprowadź nazwę dla aplikacji, na przykład python-webapp.
  5. W obszarze Obsługiwane typy kontwybierz pozycję konta w tym katalogu organizacyjnym tylko.
  6. W obszarze identyfikatory URI przekierowaniawybierz sieci 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: Dodaj sekret 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ść identyfikatora aplikacji (klienta) do późniejszego użycia.
  2. W obszarze Zarządzajwybierz Certificates & secrets i w sekcji Client secrets wybierz pozycję New client secret.
  3. Wprowadź opis tajemnicy klienta, zachowaj domyślne ustawienia wygaśnięcia, a następnie wybierz opcję Dodaj.
  4. Zapisz wartośćklucza tajnego klienta w bezpiecznej lokalizacji. Potrzebujesz tej wartości do skonfigurowania kodu i nie można jej później odzyskać.

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ądzajwybierz pozycję uprawnienia interfejsu API >Dodaj uprawnienie.
  2. Upewnij się, że zaznaczono kartę API Microsoft.
  3. W sekcji Często używane interfejsy API firmy Microsoft wybierz pozycję Microsoft Graph.
  4. W sekcji uprawnień delegowanych upewnij się, że wybrano User.Read. W razie potrzeby użyj pola wyszukiwania.
  5. Wybierz pozycję Dodaj uprawnienia.

Krok 4. Pobieranie przykładowej aplikacji

Pobierz przykładowy kod w języku 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 .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_ID na identyfikator aplikacji (klienta) dla zarejestrowanej aplikacji dostępnej na stronie przeglądu.
    • Ustaw wartość CLIENT_SECRET na tajny klucz klienta, który utworzyłeś w Certificates & Secrets dla zarejestrowanej aplikacji.
    • Ustaw wartość AUTHORITY na wartość https://login.microsoftonline.com/<TENANT_GUID>. Identyfikator katalogu (dzierżawy) jest dostępny na stronie podsumowania rejestracji aplikacji.

    Zmienne środowiskowe są przywołyane w app_config.pyi są przechowywane w osobnym pliku .env, aby zachować je poza kontrolą źródła. Udostępniony 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 pip:

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

    flask run --debug --host=localhost --port=5000
    
  4. Skopiuj adres URL https wyświetlany w terminalu, na przykład https://localhost:5000i 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ę Akceptuj.

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 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 pakietu identity, aby uzyskać token dostępu z platformy tożsamości firmy 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 nośnika do uwierzytelniania użytkownika podczas wywoływania Microsoft Graph API.

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: