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 utan kostnad.
- En Microsoft Entra-klientorganisation. Mer information finns i hur du hämtar en Microsoft Entra-klientorganisation.
- Python 3 +
Steg 1: Registrera din app
Dricks
Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.
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 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 den klientorganisation där du vill registrera programmet från menyn Kataloger + prenumerationer.
- Bläddra till Identitetsprogram>> Appregistreringar och välj Ny registrering.
- Ange ett namn för ditt program, till exempel python-webapp.
- Under Kontotyper som stöds väljer du Endast Konton i den här organisationskatalogen.
- Under Omdirigerings-URI:er väljer du Webb 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å appöversiktssidan noterar du värdet program-ID (klient) för senare användning.
- Under Hantera väljer du Certifikat och 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 värdet 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 de här anvisningarna.
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 Hantera vä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 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
CLIENT_ID
för till program-ID (klient)-ID för det registrerade programmet, som är tillgängligt på översiktssidan. - Ange värdet
CLIENT_SECRET
för till den klienthemlighet som du skapade i certifikaten och hemligheterna för det registrerade programmet. - Ange värdet
AUTHORITY
för till enhttps://login.microsoftonline.com/<TENANT_GUID>
. Katalog-ID :t (klientorganisation) är tillgängligt på översiktssidan för appregistrering.
Miljövariablerna refereras i app_config.py och lagras i en separat .env-fil för att hålla dem borta från källkontrollen. Den angivna .gitignore-filen förhindrar att .env-filen checkas in.
- Ange värdet
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, https://localhost:5000till exempel , och 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 behörighet att behålla åtkomsten till data som du har gett den åtkomst till och logga in dig och läsa din profil, som du ser. Välj Acceptera.
- Följande skärmbild visas som anger att du har loggat in i programmet.
Hur det fungerar
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: