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
- Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
- Dzierżawca Microsoft Entra. Aby uzyskać więcej informacji, zobacz , jak uzyskać dzierżawę firmy Microsoft Entra.
- python 3 +
Krok 1. Rejestrowanie aplikacji
Wykonaj następujące kroki, aby zarejestrować aplikację w centrum administracyjnym firmy Microsoft Entra:
- Zaloguj się do centrum administracyjnego Microsoft Entra jako co najmniej Administrator aplikacji w chmurze.
- 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.
- Przejdź do Identity>Applications>App registrations i wybierz New registration.
- Wprowadź nazwę dla aplikacji, na przykład python-webapp.
- W obszarze Obsługiwane typy kontwybierz pozycję konta w tym katalogu organizacyjnym tylko.
- W obszarze identyfikatory URI przekierowaniawybierz sieci Web dla platformy.
- Wprowadź identyfikator URI przekierowania
http://localhost:5000/getAToken
. Tę wartość można zmienić później. - 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:
- Na stronie Przegląd aplikacji zanotuj wartość identyfikatora aplikacji (klienta) do późniejszego użycia.
- W obszarze Zarządzajwybierz Certificates & secrets i w sekcji Client secrets wybierz pozycję New client secret.
- Wprowadź opis tajemnicy klienta, zachowaj domyślne ustawienia wygaśnięcia, a następnie wybierz opcję Dodaj.
- 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:
- W obszarze Zarządzajwybierz pozycję uprawnienia interfejsu API >Dodaj uprawnienie.
- Upewnij się, że zaznaczono kartę API Microsoft.
- W sekcji Często używane interfejsy API firmy Microsoft wybierz pozycję Microsoft Graph.
- W sekcji uprawnień delegowanych upewnij się, że wybrano User.Read. W razie potrzeby użyj pola wyszukiwania.
- 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
Otwórz aplikację pobraną w środowisku IDE i przejdź do folderu głównego przykładowej aplikacji.
cd flask-web-app
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.
- Ustaw wartość
Krok 6. Uruchamianie przykładowej aplikacji
Utwórz środowisko wirtualne dla aplikacji:
- Windows
- systemu macOS/Linux
py -m venv .venv .venv\scripts\activate
Zainstaluj wymagania przy użyciu
pip
:pip install -r requirements.txt
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
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.
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ę.
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.
- Zostanie wyświetlony poniższy zrzut ekranu wskazujący, że pomyślnie zalogowaliśmy się do aplikacji.
Jak to działa
Na poniższym diagramie pokazano, jak działa przykładowa aplikacja:
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.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: