Schnellstart: Anmelden von Benutzern und Aufrufen der Microsoft Graph-API über eine Python Flask-Web-App
In diesem Schnellstart laden Sie ein Beispiel für eine Python Flask-Web-App herunter und führen es aus, das zeigt, wie Benutzer authentifiziert werden und die Microsoft Graph-API aufgerufen wird. Benutzer in Ihrer Microsoft Entra-Organisation können sich bei der Anwendung anmelden.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Ein Microsoft Entra-Mandant. Weitere Informationen finden Sie unter Erhalten eines Microsoft Entra-Mandanten.
- Python 3+
Schritt 1: Anwendung registrieren
Tipp
Die Schritte in diesem Artikel können je nach dem Portal, mit dem Sie beginnen, geringfügig variieren.
Führen Sie die folgenden Schritte aus, um Ihre Anwendung im Microsoft Entra Admin Center zu registrieren:
- Melden Sie sich beim Microsoft Entra Admin Center mindestens als Cloudanwendungsadministrator an.
- Wenn Sie Zugriff auf mehrere Mandanten haben, verwenden Sie das Symbol für Einstellungen im oberen Menü, um zum Mandanten zu wechseln, in dem Sie die Anwendung über das Menü Verzeichnisse + Abonnements registrieren möchten.
- Wechseln Sie zu Identität>Anwendungen>App-Registrierungen, und wählen Sie Neue Registrierung aus.
- Geben Sie einen Namen für Ihre Anwendung ein, z. B. python-webapp.
- Wählen Sie unter Unterstützte Kontotypen die Option Nur Konten in diesem Organisationsverzeichnis aus.
- Wählen Sie unter Umleitungs-URIs die Option Web für die Plattform aus.
- Geben Sie als Umleitungs-URI den Wert
http://localhost:5000/getAToken
ein. Sie können diesen Wert später ändern. - Wählen Sie Registrieren aus.
Schritt 2: Hinzufügen eines geheimen Clientschlüssels
Die Beispiel-App verwendet einen geheimen Clientschlüssel beim Anfordern von Token als Identitätsnachweis. Führen Sie die folgenden Schritte aus, um einen geheimen Clientschlüssel für Ihre Python-Web-App zu erstellen:
- Notieren Sie sich für die spätere Verwendung auf der Seite Übersicht den Wert von Anwendungs-ID (Client) .
- Wählen Sie unter Verwalten die Option Zertifikate und Geheimnisse und dann im Abschnitt Geheime Clientschlüssel die Option Neuer geheimer Clientschlüssel aus.
- Geben Sie eine Beschreibung für den geheimen Clientschlüssel ein, behalten Sie das Standardablaufdatum bei, und wählen Sie Hinzufügen aus.
- Speichern Sie den Wert des geheimen Clientschlüssels an einem sicheren Ort. Sie benötigen diesen Wert, um den Code zu konfigurieren, und Sie können ihn später nicht mehr abrufen.
Beim Erstellen von Anmeldeinformationen für eine vertrauliche Clientanwendung empfiehlt Microsoft, ein Zertifikat anstelle eines geheimen Clientschlüssels zu verwenden, bevor Sie die Anwendung in eine Produktionsumgebung verschieben. Weitere Informationen zur Verwendung eines Zertifikats finden Sie in diesen Anweisungen.
Schritt 3: Hinzufügen eines Bereichs
Da über diese App Benutzer angemeldet werden, müssen Sie delegierte Berechtigungen hinzufügen:
- Wählen Sie unter Verwalten die Optionen API-Berechtigungen>Berechtigung hinzufügen aus.
- Stellen Sie sicher, dass die Registerkarte Microsoft-APIs ausgewählt ist.
- Wählen Sie im Abschnitt Häufig verwendete Microsoft-APIs die Option Microsoft Graph aus.
- Stellen Sie im Abschnitt Delegierte Berechtigungen sicher, dass User.Read ausgewählt ist. Verwenden Sie bei Bedarf das Suchfeld.
- Wählen Sie Berechtigungen hinzufügen aus.
Schritt 4: Herunterladen der Beispiel-App
Laden Sie das Python-Codebeispiel herunter, oder klonen Sie das Repository:
git clone https://github.com/Azure-Samples/ms-identity-docs-code-python/
Schritt 5: Konfigurieren der Beispiel-App
Öffnen Sie die Anwendung, die Sie in eine IDE heruntergeladen haben, und navigieren Sie zum Stammordner der Beispiel-App.
cd flask-web-app
Erstellen Sie eine ENV-Datei im Stammordner des Projekts, wobei Sie sich an .env.sample orientieren.
# 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>
- Legen Sie den Wert von
CLIENT_ID
auf die Anwendungs-ID (Client-ID) für die registrierte Anwendung fest, die auf der Übersichtsseite verfügbar ist. - Legen Sie den Wert von
CLIENT_SECRET
auf den geheimen Clientschlüssel fest, den Sie unter Zertifikate und Geheimnisse für die registrierte Anwendung erstellt haben. - Legen Sie den Wert für
AUTHORITY
aufhttps://login.microsoftonline.com/<TENANT_GUID>
fest. Die Verzeichnis-ID (Mandanten-ID) ist auf der Übersichtsseite der App-Registrierung verfügbar.
Die Umgebungsvariablen werden in app_config.py referenziert und in einer separaten ENV-Datei gespeichert, damit sie außerhalb der Quellcodeverwaltung bleiben. Die bereitgestellte GITIGNORE-Datei verhindert, dass die ENV-Datei eingecheckt wird.
- Legen Sie den Wert von
Schritt 6: Ausführen der Beispiel-App
Erstellen Sie eine virtuelle Umgebung für die App:
py -m venv .venv .venv\scripts\activate
Installieren Sie die Anforderungen mithilfe von
pip
:pip install -r requirements.txt
Führen Sie die App über die Befehlszeile aus. Stellen Sie sicher, dass Ihre App auf demselben Port ausgeführt wird wie der Umleitungs-URI, den Sie zuvor konfiguriert haben.
flask run --debug --host=localhost --port=5000
Kopieren Sie die HTTPS-URL, die im Terminal angezeigt wird (z. B. https://localhost:5000), und fügen Sie sie in einen Browser ein. Es wird empfohlen, eine private Browsersitzung oder eine Inkognito-Browsersitzung zu verwenden.
Führen Sie die Schritte aus, und geben Sie die erforderlichen Details ein, um sich mit Ihrem Microsoft-Konto anzumelden. Sie werden aufgefordert, eine E-Mail-Adresse und ein Kennwort für die Anmeldung anzugeben.
Wie in der folgenden Abbildung gezeigt, fordert die Anwendung die Berechtigung an, um den Zugriff auf Daten beizubehalten, auf die Sie ihr Zugriff gewährt haben. Die Anwendung benötigt diese Berechtigung außerdem, um Sie anzumelden und Ihr Profil lesen zu können. Wählen Sie Akzeptieren aus.
- Der folgende Screenshot wird angezeigt, der angibt, dass Sie sich erfolgreich bei der Anwendung angemeldet haben:
Funktionsweise
Das folgende Diagramm veranschaulicht, wie die Beispiel-App funktioniert:
Die Anwendung verwendet das
identity
Paket, um ein Zugriffstoken von der Microsoft-Identitätsplattform abzurufen. Dieses Paket basiert auf der Microsoft-Authentifizierungsbibliothek (Microsoft Authentication Library, MSAL) für Python, um die Authentifizierung und Autorisierung in Web-Apps zu vereinfachen.Das im vorherigen Schritt abgerufene Zugriffstoken wird als Bearertoken verwendet, um den Benutzer beim Aufrufen der Microsoft Graph-API zu authentifizieren.
Nächste Schritte
Erfahren Sie mehr, indem Sie in der folgenden mehrteiligen Tutorialreihe eine Python-Web-App für die Anmeldung von Benutzern und den Aufruf einer geschützten Web-API erstellen: