Dela via


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 ditt program

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 en 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 klientorganisationen där du vill registrera programmet från menyn Kataloger + prenumerationer.
  3. Bläddra till Identity>Applications>App registrations och välj Ny registrering.
  4. Ange ett Namn för ditt program, till exempel python-webapp.
  5. Under Kontotyper som stöds, välj Endast konton i den här organisationskatalogen.
  6. Under Omdirigerings-URI:erväljer du Web 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å sidan Översikt noterar du värdet för applikations-ID (klient) för senare användning.
  2. Under Hanteraväljer du Certifikat & 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 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:

  1. Under Hanteravä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 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 en https://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.

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, till exempel https://localhost:5000och 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 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.

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.

Så här fungerar det

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: