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
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een Microsoft Entra-tenant. Zie voor meer informatie hoe u een Microsoft Entra-tenant kunt verkrijgen.
- Python 3 +
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:
- Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een cloudtoepassing Beheer istrator.
- 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 Identiteitstoepassingen>> App-registraties en selecteer Nieuwe registratie.
- Voer een naam in voor uw toepassing, bijvoorbeeld python-webapp.
- Onder Ondersteunde accounttypen selecteert u Enkel accounts in deze organisatieadreslijst.
- Selecteer web voor het platform onder Omleidings-URI's.
- Voer een omleidings-URI van
http://localhost:5000/getAToken
. 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 de waarde Toepassings-id (client) op de app-pagina Overzicht voor later gebruik.
- Selecteer onder Beheren de optie Certificaten en geheimen, en in de sectie Clientgeheimen selecteert u Nieuw 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 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:
- Selecteer onder Beheren achtereenvolgens API-machtigingen>Een machtiging toevoegen.
- Zorg ervoor dat het tabblad Microsoft-API's is geselecteerd.
- Selecteer in de sectie Veelgebruikte Microsoft-API's de optie Microsoft Graph.
- Controleer in de sectie Gedelegeerde machtigingen of User.Read is geselecteerd. Gebruik het zoekvak indien nodig.
- 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 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 eenhttps://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.
- Stel de waarde in 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 in de terminal wordt weergegeven, https://localhost:5000bijvoorbeeld en 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 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.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: