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

Vereisten

Stap 1: Uw toepassing registreren

Tip

Stappen in dit artikel kunnen enigszins variëren op basis van de portal waaruit u begint.

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 cloudtoepassing Beheer istrator.
  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 Identiteitstoepassingen>> App-registraties en selecteer Nieuwe registratie.
  4. Voer een naam in voor uw toepassing, bijvoorbeeld python-webapp.
  5. Onder Ondersteunde accounttypen selecteert u Enkel accounts in deze organisatieadreslijst.
  6. Selecteer web voor het platform onder Omleidings-URI's.
  7. Voer een omleidings-URI van http://localhost:5000/getAToken. 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 de waarde Toepassings-id (client) op de app-pagina Overzicht voor later gebruik.
  2. Selecteer onder Beheren de optie Certificaten en geheimen, en in de sectie Clientgeheimen selecteert u Nieuw 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 voor meer informatie over het gebruik van een certificaat deze instructies.

Stap 3: Een bereik toevoegen

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

  1. Selecteer onder Beheren achtereenvolgens API-machtigingen>Een machtiging toevoegen.
  2. Zorg ervoor dat het tabblad Microsoft-API's is geselecteerd.
  3. Selecteer in de sectie Veelgebruikte Microsoft-API's de optie Microsoft Graph.
  4. Controleer in de sectie Gedelegeerde machtigingen of User.Read is geselecteerd. Gebruik het zoekvak indien nodig.
  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 in van CLIENT_ID de toepassings-id (client) voor de geregistreerde toepassing, die beschikbaar is op de overzichtspagina.
    • Stel de waarde in van CLIENT_SECRET het clientgeheim dat u hebt gemaakt in de certificaten en geheimen voor de geregistreerde toepassing.
    • Stel de waarde van AUTHORITY in op een https://login.microsoftonline.com/<TENANT_GUID>. De map-id (tenant) is beschikbaar op de overzichtspagina van de app-registratie.

    Naar de omgevingsvariabelen wordt verwezen in app_config.py en worden bewaard in een afzonderlijk .env-bestand om ze buiten broncodebeheer te houden. Het opgegeven .gitignore-bestand 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 in de terminal wordt weergegeven, https://localhost:5000bijvoorbeeld en 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 waarin wordt getoond 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 werkt die is gegenereerd in deze snelstart.

  1. De toepassing gebruikt 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

Meer informatie door een Python-web-app te bouwen waarmee gebruikers worden aangemeld en een beveiligde web-API wordt aangeroepen in de volgende reeks zelfstudies met meerdere onderdelen: