Snabbstart: Logga in användare och anropa Microsoft Graph från en Python Flask-webbapp
I den här snabbstarten laddar du ned och kör ett Python Flask-webbappexempel som visar hur du autentiserar användare och anropar Microsoft Graph API. Användare i din Microsoft Entra-organisation kan logga in på programmet.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt.
- En Microsoft Entra-klientorganisation. Mer information finns i hur du skaffar en Microsoft Entra-klientorganisation.
- Python 3 +
Steg 1: Registrera ditt program
Följ dessa steg för att registrera ditt program i administrationscentret för Microsoft Entra:
- Logga in på administrationscentret för Microsoft Entra som minst en molnprogramadministratör.
- Om du har åtkomst till flera klienter använder du ikonen Inställningar
på den översta menyn för att växla till klientorganisationen där du vill registrera programmet från menyn Kataloger + prenumerationer.
- Bläddra till Identity>Applications>App registrations och välj Ny registrering.
- Ange ett Namn för ditt program, till exempel python-webapp.
- Under Kontotyper som stöds, välj Endast konton i den här organisationskatalogen.
- Under Omdirigerings-URI:erväljer du Web för plattformen.
- Ange en omdirigerings-URI för
http://localhost:5000/getAToken
. Du kan ändra det här värdet senare. - Välj Registrera.
Steg 2: Lägg till en klienthemlighet
Exempelappen använder en klienthemlighet för att bevisa sin identitet när den begär token. Följ dessa steg för att skapa en klienthemlighet för din Python-webbapp:
- På sidan Översikt noterar du värdet för applikations-ID (klient) för senare användning.
- Under Hanteraväljer du Certifikat & hemligheter och i avsnittet Klienthemligheter väljer du Ny klienthemlighet.
- Ange en beskrivning för klienthemligheten, lämna standardförfallodatumet och välj Lägg till.
- Spara Value- för -klienthemligheten på en säker plats. Du behöver det här värdet för att konfigurera koden och du kan inte hämta den senare.
När du skapar autentiseringsuppgifter för ett konfidentiellt klientprogram rekommenderar Microsoft att du använder ett certifikat i stället för en klienthemlighet innan du flyttar programmet till en produktionsmiljö. Mer information om hur du använder ett certifikat finns i dessa instruktioner.
Steg 3: Lägg till ett omfång
Eftersom den här appen loggar in användare måste du lägga till delegerade behörigheter:
- Under Hanteraväljer du API-behörigheter>Lägg till en behörighet.
- Kontrollera att fliken Microsoft-API:er är markerad.
- I avsnittet Vanliga Microsoft-API:er väljer du Microsoft Graph.
- I avsnittet Delegerade behörigheter kontrollerar du att User.Read är markerat. Använd sökrutan om det behövs.
- Välj Lägg till behörigheter.
Steg 4: Ladda ned exempelappen
Ladda ned Python-kodexemplet eller klona lagringsplatsen:
git clone https://github.com/Azure-Samples/ms-identity-docs-code-python/
Steg 5: Konfigurera exempelappen
Öppna det program som du laddade ned i en IDE och gå till rotmappen för exempelappen.
cd flask-web-app
Skapa en .env-fil i rotmappen i projektet med hjälp av .env.sample som en guide.
# 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>
- Ange värdet för
CLIENT_ID
till applikations (klient) ID för den registrerade applikationen, som finns på översiktssidan. - Ange värdet för
CLIENT_SECRET
till den klienthemlighet som du skapade i Certifikat & Hemligheter för det registrerade programmet. - Ange värdet på
AUTHORITY
till enhttps://login.microsoftonline.com/<TENANT_GUID>
. Directory-ID:t (klientorganisation) finns på översiktssidan för appregistrering.
Miljövariablerna refereras i app_config.pyoch lagras i en separat .env--fil för att hålla dem borta från källkontrollen. Den angivna filen .gitignore förhindrar att filen .env checkas in.
- Ange värdet för
Steg 6: Kör exempelappen
Skapa en virtuell miljö för appen:
py -m venv .venv .venv\scripts\activate
Installera kraven med hjälp av
pip
:pip install -r requirements.txt
Kör appen från kommandoraden. Kontrollera att appen körs på samma port som den omdirigerings-URI som du konfigurerade tidigare.
flask run --debug --host=localhost --port=5000
Kopiera https-URL:en som visas i terminalen, till exempel https://localhost:5000och klistra in den i en webbläsare. Vi rekommenderar att du använder en privat eller inkognito-webbläsarsession.
Följ stegen och ange nödvändig information för att logga in med ditt Microsoft-konto. Du uppmanas att ange en e-postadress och ett lösenord för att logga in.
Programmet begär tillstånd att upprätthålla åtkomsten till data som du har gett den tillgång till, samt att logga in dig och läsa din profil, som visas här. Välj Acceptera.
- Följande skärmbild visas som anger att du har loggat in i programmet.
Så här fungerar det
Följande diagram visar hur exempelappen fungerar:
Programmet använder
identity
-paketet för att hämta en åtkomsttoken från Microsofts identitetsplattform. Det här paketet bygger på Microsoft Authentication Library (MSAL) för Python för att förenkla autentisering och auktorisering i webbappar.Den åtkomsttoken som du fick i föregående steg används som en ägartoken för att autentisera användaren när du anropar Microsoft Graph API.
Nästa steg
Läs mer genom att skapa en Python-webbapp som loggar in användare och anropar ett skyddat webb-API i följande självstudieserie i flera delar: