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

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:

  1. Logga in på administrationscentret för Microsoft Entra som minst molnprogramadministratör.
  2. 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.
  3. Bläddra till Identitetsprogram>> Appregistreringar och välj Ny registrering.
  4. Ange ett namn för ditt program, till exempel python-webapp.
  5. Under Kontotyper som stöds väljer du Endast Konton i den här organisationskatalogen.
  6. Under Omdirigerings-URI:er väljer du Webb för plattformen.
  7. Ange en omdirigerings-URI för http://localhost:5000/getAToken. Du kan ändra det här värdet senare.
  8. 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:

  1. På appöversiktssidan noterar du värdet program-ID (klient) för senare användning.
  2. Under Hantera väljer du Certifikat och hemligheter och i avsnittet Klienthemligheter väljer du Ny klienthemlighet.
  3. Ange en beskrivning för klienthemligheten, lämna standardförfallodatumet och välj Lägg till.
  4. 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:

  1. Under Hantera väljer du API-behörigheter>Lägg till en behörighet.
  2. Kontrollera att fliken Microsoft-API:er är markerad.
  3. I avsnittet Vanliga Microsoft-API:er väljer du Microsoft Graph.
  4. I avsnittet Delegerade behörigheter kontrollerar du att User.Read är markerat. Använd sökrutan om det behövs.
  5. 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

  1. Öppna det program som du laddade ned i en IDE och gå till rotmappen för exempelappen.

    cd flask-web-app
    
  2. 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 en https://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.

Steg 6: Kör exempelappen

  1. Skapa en virtuell miljö för appen:

    py -m venv .venv
    .venv\scripts\activate
    
  2. Installera kraven med hjälp av pip:

    pip install -r requirements.txt
    
  3. 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
    
  4. 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.

  5. 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.

  6. 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.

Diagram som visar exempelappen som begär medgivande för att få åtkomst till de behörigheter som krävs.

  1. Följande skärmbild visas som anger att du har loggat in i programmet.

Diagram som visar hur exempelappen har loggat in en användare.

Hur det fungerar

Följande diagram visar hur exempelappen fungerar:

Diagram som visar hur exempelappen som genereras av den här snabbstarten fungerar.

  1. 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.

  2. 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: