Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel fügen Sie der Anwendung, die Sie unter Erstellen von Python-Apps mit Microsoft Graph und nur app-Authentifizierung erstellt haben, die reine App-Authentifizierung hinzu.
Die Azure Identity-Clientbibliothek für Python bietet viele TokenCredential Klassen, die OAuth2-Tokenflows implementieren. Das Microsoft Graph SDK für Python (Vorschau) verwendet diese Klassen, um Aufrufe von Microsoft Graph zu authentifizieren.
Konfigurieren des Graph-Clients für die reine App-Authentifizierung
In diesem Abschnitt verwenden Sie die ClientSecretCredential -Klasse, um mithilfe des Clientanmeldeinformationsflows ein Zugriffstoken anzufordern.
Öffnen Sie graph.py , und ersetzen Sie den gesamten Inhalt durch den folgenden Code.
from configparser import SectionProxy from azure.identity.aio import ClientSecretCredential from msgraph import GraphServiceClient from msgraph.generated.users.users_request_builder import UsersRequestBuilder class Graph: settings: SectionProxy client_credential: ClientSecretCredential app_client: GraphServiceClient def __init__(self, config: SectionProxy): self.settings = config client_id = self.settings['clientId'] tenant_id = self.settings['tenantId'] client_secret = self.settings['clientSecret'] self.client_credential = ClientSecretCredential(tenant_id, client_id, client_secret) self.app_client = GraphServiceClient(self.client_credential) # type: ignoreDieser Code deklariert zwei private Eigenschaften, ein
ClientSecretCredential-Objekt und einGraphServiceClient-Objekt. Die__init__Funktion erstellt eine neue instance vonClientSecretCredentialund verwendet dann diesen instance, um eine neue instance vonGraphServiceClientzu erstellen. Jedes Mal, wenn ein API-Aufruf an Microsoft Graph überapp_clienterfolgt, werden die bereitgestellten Anmeldeinformationen verwendet, um ein Zugriffstoken abzurufen.Fügen Sie graph.py die folgende Funktion hinzu.
async def get_app_only_token(self): graph_scope = 'https://graph.microsoft.com/.default' access_token = await self.client_credential.get_token(graph_scope) return access_token.tokenErsetzen Sie die leere
display_access_tokenFunktion in Standard.py durch Folgendes.async def display_access_token(graph: Graph): token = await graph.get_app_only_token() print('App-only token:', token, '\n')Erstellen Sie die App, und führen Sie sie aus. Geben Sie ein
1, wenn Sie zur Eingabe einer Option aufgefordert werden. Die Anwendung zeigt ein Zugriffstoken an.Python Graph App-Only Tutorial Please choose one of the following options: 0. Exit 1. Display access token 2. List users 3. Make a Graph call 1 App-only token: eyJ0eXAiOiJKV1QiLCJub25jZSI6IlVDTzRYOWtKYlNLVjVkRzJGenJqd2xvVUcwWS...Tipp
Nur zu Validierungs- und Debugzwecken können Sie Nur-App-Zugriffstoken mithilfe des Onlinetokenparsers von Microsoft unter https://jwt.msdecodieren. Die Analyse Ihres Tokens kann nützlich sein, wenn beim Aufrufen von Microsoft Graph Tokenfehler auftreten. Beispielsweise wird überprüft, ob der
roleAnspruch im Token die erwarteten Microsoft Graph-Berechtigungsbereiche enthält.