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
- Een Azure-account met een actief abonnement. Maak gratis een account.
- Een Microsoft Entra-tenant. Zie hoe u een Microsoft Entra-tenant krijgt voor meer informatie.
- Python 3 +
Stap 1: Uw toepassing registreren
Volg deze stappen om uw toepassing te registreren in het Microsoft Entra-beheercentrum:
- Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een cloudtoepassingsbeheerder.
- 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.
- Blader naar Identity>Applications>App-registraties en selecteer Nieuwe registratie.
- Voer een naam in voor uw toepassing, bijvoorbeeld python-webapp.
- Selecteer onder Ondersteunde accounttypenalleen Accounts in deze organisatiemap.
- Onder omleidings-URI's, selecteer Web voor het platform.
- Voer een omleidings-URI van
http://localhost:5000/getAToken
in. U kunt deze waarde later wijzigen. - 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:
- Noteer op de pagina Overzicht overzicht de toepassings-id (client) waarde voor later gebruik.
- Selecteer onder Beherende Certificaten & en geheimen en selecteer in de sectie ClientgeheimenNieuw clientgeheim.
- Voer een beschrijving in voor het clientgeheim, laat de standaardverlooptijd staan en selecteer Toevoegen.
- 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:
- Selecteer onder BeherenAPI-machtigingen>Een machtiging toevoegen.
- Zorg ervoor dat het tabblad Microsoft-API's is geselecteerd.
- Selecteer in de sectie Veelgebruikte Microsoft-API'sMicrosoft Graph.
- Controleer in het gedeelte Gedelegeerde machtigingen of User.Read is geselecteerd. Gebruik indien nodig het zoekvak.
- 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
Open de toepassing die u hebt gedownload in een IDE en navigeer naar de hoofdmap van de voorbeeld-app.
cd flask-web-app
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 eenhttps://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.
- Stel de waarde van
Stap 6: De voorbeeld-app uitvoeren
Maak een virtuele omgeving voor de app:
py -m venv .venv .venv\scripts\activate
Installeer de vereisten met behulp van
pip
:pip install -r requirements.txt
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
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.
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.
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.
- De volgende schermopname wordt weergegeven, waarmee wordt aangegeven dat u zich hebt aangemeld bij de toepassing.
Hoe het werkt
In het volgende diagram ziet u hoe de voorbeeld-app werkt:
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.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: