Delen via


Quickstart: Gebruikers aanmelden en Microsoft Graph aanroepen vanuit een Python Flask-web-app

In deze quickstart downloadt en voert u een Python Flask-web-app-voorbeeld uit dat laat zien hoe u gebruikers verifieert en de Microsoft Graph API aanroept. Gebruikers in uw Microsoft Entra-organisatie kunnen zich aanmelden bij de toepassing.

Voorwaarden

Stap 1: Uw toepassing registreren

Volg deze stappen om uw toepassing te registreren in het Microsoft Entra-beheercentrum:

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een cloudtoepassingsbeheerder.
  2. Als u toegang hebt tot meerdere tenants, gebruikt u het pictogram Instellingen in het bovenste menu om over te schakelen naar de tenant waarin u de toepassing wilt registreren in het menu Mappen en abonnementen.
  3. Blader naar Identity>Applications>App-registraties en selecteer Nieuwe registratie.
  4. Voer een naam in voor uw toepassing, bijvoorbeeld python-webapp.
  5. Selecteer onder Ondersteunde accounttypenalleen Accounts in deze organisatiemap.
  6. Onder omleidings-URI's, selecteer Web voor het platform.
  7. Voer een omleidings-URI van http://localhost:5000/getATokenin. U kunt deze waarde later wijzigen.
  8. Selecteer registreren.

Stap 2: Een clientgeheim toevoegen

De voorbeeld-app maakt gebruik van een clientgeheim om de identiteit te bewijzen wanneer er tokens worden aangevraagd. Volg deze stappen om een clientgeheim te maken voor uw Python-web-app:

  1. Noteer op de pagina Overzicht overzicht de toepassings-id (client) waarde voor later gebruik.
  2. Selecteer onder Beherende Certificaten & en geheimen en selecteer in de sectie ClientgeheimenNieuw clientgeheim.
  3. Voer een beschrijving in voor het clientgeheim, laat de standaardverlooptijd staan en selecteer Toevoegen.
  4. Sla de waarde van het clientgeheim op een veilige locatie op. U hebt deze waarde nodig om de code te configureren en u kunt deze later niet meer ophalen.

Wanneer u referenties voor een vertrouwelijke clienttoepassing maakt, raadt Microsoft u aan een certificaat te gebruiken in plaats van een clientgeheim voordat u de toepassing naar een productieomgeving verplaatst. Zie deze instructiesvoor meer informatie over het gebruik van een certificaat.

Stap 3: Een bereik toevoegen

Omdat deze app gebruikers aanmeldt, moet u gedelegeerde machtigingen toevoegen:

  1. Selecteer onder BeherenAPI-machtigingen>Een machtiging toevoegen.
  2. Zorg ervoor dat het tabblad Microsoft-API's is geselecteerd.
  3. Selecteer in de sectie Veelgebruikte Microsoft-API'sMicrosoft Graph.
  4. Controleer in het gedeelte Gedelegeerde machtigingen of User.Read is geselecteerd. Gebruik indien nodig het zoekvak.
  5. Selecteer Machtigingen toevoegen.

Stap 4: De voorbeeld-app downloaden

Download het Python-codevoorbeeld of kloon de opslagplaats:

git clone https://github.com/Azure-Samples/ms-identity-docs-code-python/

Stap 5: De voorbeeld-app configureren

  1. Open de toepassing die u hebt gedownload in een IDE en navigeer naar de hoofdmap van de voorbeeld-app.

    cd flask-web-app
    
  2. Maak een .env-bestand in de hoofdmap van het project met behulp van .env.sample als richtlijn.

    # 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>
    
    • Stel de waarde van CLIENT_ID in op de Application-id (client)-id voor de geregistreerde toepassing, die beschikbaar is op de overzichtspagina.
    • Stel de waarde van CLIENT_SECRET in op het clientgeheim dat u hebt gemaakt in de Certificates & Secrets voor de geregistreerde toepassing.
    • Stel de waarde van AUTHORITY in op een https://login.microsoftonline.com/<TENANT_GUID>. De Directory-id (tenant) is beschikbaar op de overzichtspagina van de app-registratie.

    Er wordt in app_config.pynaar de omgevingsvariabelen verwezen en in een afzonderlijk .env--bestand bewaard om ze buiten broncodebeheer te houden. Het opgegeven bestand .gitignore voorkomt dat het .env--bestand wordt ingecheckt.

Stap 6: De voorbeeld-app uitvoeren

  1. Maak een virtuele omgeving voor de app:

    py -m venv .venv
    .venv\scripts\activate
    
  2. Installeer de vereisten met behulp van pip:

    pip install -r requirements.txt
    
  3. Voer de app uit vanaf de opdrachtregel. Zorg ervoor dat uw app wordt uitgevoerd op dezelfde poort als de omleidings-URI die u eerder hebt geconfigureerd.

    flask run --debug --host=localhost --port=5000
    
  4. Kopieer de https-URL die wordt weergegeven in de terminal, bijvoorbeeld https://localhost:5000en plak deze in een browser. U wordt aangeraden een privé- of incognitobrowsersessie te gebruiken.

  5. Volg de stappen en voer de benodigde gegevens in om u aan te melden met uw Microsoft-account. U wordt gevraagd een e-mailadres en wachtwoord op te geven om u aan te melden.

  6. De toepassing vraagt toestemming om toegang te behouden tot gegevens die u er toegang toe hebt gegeven en om u aan te melden en uw profiel te lezen, zoals wordt weergegeven. Selecteer Accepteren.

diagram met de voorbeeld-app die toestemming vraagt voor toegang tot de vereiste machtigingen.

  1. De volgende schermopname wordt weergegeven, waarmee wordt aangegeven dat u zich hebt aangemeld bij de toepassing.

Diagram dat laat zien hoe de voorbeeld-app is aangemeld bij een gebruiker.

Hoe het werkt

In het volgende diagram ziet u hoe de voorbeeld-app werkt:

diagram waarin wordt getoond hoe de voorbeeld-app die door deze quickstart is gegenereerd, werkt.

  1. De toepassing maakt gebruik van het identity-pakket om een toegangstoken te verkrijgen van het Microsoft Identity Platform. Dit pakket is gebouwd boven op de Microsoft Authentication Library (MSAL) voor Python om verificatie en autorisatie in web-apps te vereenvoudigen.

  2. Het toegangstoken dat u in de vorige stap verkrijgt, wordt gebruikt als bearer-token om de gebruiker te verifiëren bij het aanroepen van de Microsoft Graph API.

Volgende stappen

Kom meer te weten door een Python-web-app te bouwen waarmee je gebruikers kunt aanmelden en een beveiligde web-API kunt aanroepen in de volgende meerledige tutorialserie: