Teilen über


Schnellstart: Abrufen eines Tokens und Aufrufen der Microsoft Graph-API über eine Python-Konsolen-App unter Verwendung der Identität der App

Willkommen! Dies ist wahrscheinlich nicht die Seite, die Sie erwartet haben. Während wir an einer Korrektur arbeiten, sollten Sie über diesen Link zum richtigen Artikel gelangen:

Schnellstart: Abrufen eines Tokens und Aufrufen der Microsoft Graph-API aus einer Python-Daemon-App

Wir entschuldigen uns für die Unannehmlichkeiten und bitten Sie um Geduld, während wir an einer Lösung arbeiten.

In dieser Schnellstartanleitung laden Sie ein Codebeispiel herunter und führen es aus, das zeigt, wie eine Python-Anwendung mithilfe der App-Identität ein Zugriffstoken abrufen kann, um die Microsoft Graph-API aufzurufen und eine Liste mit Benutzern im Verzeichnis anzuzeigen. Das Codebeispiel veranschaulicht, wie ein unbeaufsichtigter Auftrag oder Windows-Dienst mit einer Anwendungsidentität anstelle der Identität eines Benutzers ausgeführt werden kann.

Voraussetzungen

Für dieses Beispiel benötigen Sie Folgendes:

Herunterladen und Konfigurieren der Schnellstart-App

Schritt 1: Konfigurieren Ihrer Anwendung im Azure-Portal

Damit das Codebeispiel in dieser Schnellstartanleitung funktioniert, müssen Sie einen geheimen Clientschlüssel erstellen und die Anwendungsberechtigung User.Read.All aus der Graph-API hinzufügen.

Make these changes for me (Diese Änderungen für mich vornehmen)

Already configured Ihre Anwendung ist mit diesen Attributen konfiguriert.

Schritt 2: Herunterladen des Python-Projekts

Hinweis

Enter_the_Supported_Account_Info_Here

Wenn Sie zu diesem Zeitpunkt versuchen, die Anwendung auszuführen, wird der Fehler HTTP 403 – Verboten angezeigt: Insufficient privileges to complete the operation. Dieser Fehler tritt auf, da für eine nur für die App geltende Berechtigung eine Administratoreinwilligung erforderlich ist: Ein globaler Administrator Ihres Verzeichnisses muss Ihrer Anwendung seine Einwilligung geben. Wählen Sie je nach Ihrer Rolle eine der unten angegebenen Optionen aus:

Globaler Mandantenadministrator

Gehen Sie als globaler Administrator wie folgt vor: Wechseln Sie zur Seite API-Berechtigungen, und wählen Sie Administratorzustimmung für erteilen aus.

Standardbenutzer

Wenn Sie ein Standardbenutzer Ihres Mandanten sind, bitten Sie einen globalen Administrator, die Administratoreinwilligung für Ihre Anwendung zu erteilen. Übermitteln Sie hierzu die folgende URL an Ihren Administrator:

https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here

Schritt 4: Ausführen der Anwendung

Sie müssen einmalig die Abhängigkeiten dieses Beispiels installieren.

pip install -r requirements.txt

Führen Sie dann die Anwendung über die Eingabeaufforderung oder über die Konsole aus:

python confidential_client_secret_sample.py parameters.json

Die Konsolenausgabe sollte ein JSON-Fragment enthalten, das eine Liste der Benutzer in Ihrem Microsoft Entra ID-Verzeichnis darstellt.

Wichtig

Für die Anwendung in dieser Schnellstartanleitung wird ein Clientgeheimnis verwendet, um sich selbst als vertraulicher Client zu identifizieren. Da das Clientgeheimnis Ihren Projektdateien als Nur-Text hinzugefügt wird, wird aus Sicherheitsgründen empfohlen, ein Zertifikat anstelle eines Clientgeheimnisses zu verwenden, bevor die Anwendung als Produktionsanwendung eingestuft wird. Weitere Informationen zur Verwendung eines Zertifikats finden Sie in diesen Anweisungen im zweiten Ordner (2-Call-MsGraph-WithCertificate) des GitHub-Repositorys für dieses Beispiel.

Weitere Informationen

MSAL Python

MSAL Python ist die Bibliothek zum Anmelden von Benutzern und Anfordern von Token, die für den Zugriff auf eine durch Microsoft Identity Platform geschützte API verwendet werden. In dieser Schnellstartanleitung werden wie beschrieben Token angefordert, indem keine delegierten Berechtigungen verwendet werden, sondern die eigene Identität der Anwendung. Der hier genutzte Authentifizierungsablauf wird als OAuth-Ablauf mit Clientanmeldeinformationen bezeichnet. Weitere Informationen zur Verwendung von MSAL Python mit Daemon-Apps finden Sie in diesem Artikel.

MSAL Python kann mithilfe des folgenden pip-Befehls installiert werden:

pip install msal

MSAL-Initialisierung

Sie können den Verweis auf MSAL hinzufügen, indem Sie den folgenden Code hinzufügen:

import msal

Initialisieren Sie MSAL anschließend mit dem folgenden Code:

app = msal.ConfidentialClientApplication(
    config["client_id"], authority=config["authority"],
    client_credential=config["secret"])
Hierbei gilt: BESCHREIBUNG
config["secret"] Der geheime Clientschlüssel, der für die Anwendung im Azure-Portal erstellt wird.
config["client_id"] Die Anwendungs-ID (Client) für die im Azure-Portal registrierte Anwendung. Dieser Wert befindet sich im Azure-Portal auf der Seite Übersicht der App.
config["authority"] Der STS-Endpunkt für den zu authentifizierenden Benutzer. Normalerweise https://login.microsoftonline.com/{tenant} für die öffentliche Cloud, wobei „{tenant}“ der Name Ihres Mandanten bzw. Ihre Mandanten-ID ist.

Weitere Informationen finden Sie in der Referenzdokumentation für ConfidentialClientApplication.

Anfordern von Token

Verwenden Sie die AcquireTokenForClient-Methode, um ein Token mit der Identität einer App anzufordern:

result = None
result = app.acquire_token_silent(config["scope"], account=None)

if not result:
    logging.info("No suitable token exists in cache. Let's get a new one from Azure AD.")
    result = app.acquire_token_for_client(scopes=config["scope"])
Hierbei gilt: BESCHREIBUNG
config["scope"] Enthält die angeforderten Bereiche. Für vertrauliche Clients sollte ein Format wie {Application ID URI}/.default verwendet werden. Hiermit wird angegeben, dass die angeforderten Bereiche diejenigen sind, die im App-Objekt, das im Azure-Portal festgelegt ist, statisch definiert sind (für Microsoft Graph wird für {Application ID URI} auf https://graph.microsoft.com verwiesen). Für benutzerdefinierte Web-APIs wird {Application ID URI} im Azure-Portal unter App-Registrierungen im Abschnitt Eine API verfügbar machen definiert.

Weitere Informationen finden Sie in der Referenzdokumentation für AcquireTokenForClient.

Hilfe und Support

Wenn Sie Hilfe benötigen, ein Problem melden möchten oder sich über Ihre Supportoptionen informieren möchten, finden Sie weitere Informationen unter Hilfe und Support für Entwickler.

Nächste Schritte

Weitere Informationen zu Daemon-Anwendungen finden Sie auf der Landing Page des Szenarios.