Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans cet article, vous allez ajouter l’authentification d’application uniquement à l’application que vous avez créée dans Générer des applications Python avec Microsoft Graph et l’authentification d’application uniquement.
La bibliothèque de client Azure Identity pour Python fournit de nombreuses TokenCredential
classes qui implémentent des flux de jetonS OAuth2. Le Kit de développement logiciel (SDK) Microsoft Graph pour Python (préversion) utilise ces classes pour authentifier les appels à Microsoft Graph.
Configurer le client Graph pour l’authentification d’application uniquement
Dans cette section, vous utilisez la ClientSecretCredential
classe pour demander un jeton d’accès à l’aide du flux d’informations d’identification du client.
Ouvrez graph.py et remplacez tout son contenu par le code suivant.
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: ignore
Ce code déclare deux propriétés privées, un
ClientSecretCredential
objet et unGraphServiceClient
objet . La__init__
fonction crée un instance deClientSecretCredential
, puis utilise cette instance pour créer un instance deGraphServiceClient
. Chaque fois qu’un appel d’API est effectué à Microsoft Graph via ,app_client
il utilise les informations d’identification fournies pour obtenir un jeton d’accès.Ajoutez la fonction suivante à graph.py.
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.token
Remplacez la fonction vide
display_access_token
dans main.py par ce qui suit.async def display_access_token(graph: Graph): token = await graph.get_app_only_token() print('App-only token:', token, '\n')
Générez et exécutez l’application. Entrez
1
lorsque vous êtes invité à entrer une option. L’application affiche un jeton d’accès.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...
Conseil
À des fins de validation et de débogage uniquement, vous pouvez décoder les jetons d’accès d’application uniquement à l’aide de l’analyseur de jetons en ligne de Microsoft à l’adresse https://jwt.ms. L’analyse de votre jeton peut être utile si vous rencontrez des erreurs de jeton lors de l’appel de Microsoft Graph. Par exemple, vérifier que la revendication dans le
role
jeton contient les étendues d’autorisation Microsoft Graph attendues.