1
votes

Erreur d'accès refusé sur la boîte aux lettres Paramètres pour les utilisateurs

J'essaye d'appuyer sur le point de terminaison https://graph.microsoft.com/v1.0/users/{userId}/mailboxSettings avec un jeton d'authentification et en retour de recevoir un Réponse d'erreur 403 Accès refusé .

J'ai accordé à la fois des autorisations au niveau de l'application et des autorisations déléguées pour MailboxSettings.Read, MailboxSettings.ReadWrite . Je peux vérifier que ces autorisations sont activées sur l'application installée via l'examen de mon jeton d'authentification décodé avec le jwt.ms . Voici l'effort du jeton décodé:

"scp": "Directory.AccessAsUser.All Files.ReadWrite.All Group.ReadWrite.All Mail.Read Mail.ReadWrite Mail.Send MailboxSettings.Read MailboxSettings.ReadWrite Sites.ReadWrite.All"

J'ai également vérifié que l'utilisateur pour lequel je demande les paramètres de boîte aux lettres a obtenu l'accès via le consentement de l'administrateur.

Je suis en mesure de renvoyer mailboxSettings si j'atteins le point de terminaison du point de terminaison admin userId ou https://graph.microsoft.com/v1.0/users/me/mailboxSettings . Toute aide serait très appréciée.


0 commentaires

3 Réponses :


1
votes

J'ai rapidement testé avec Microsoft Graph Explorer et cela fonctionne pour moi. Je vous demanderais donc de tester l'appel d'API ci-dessus avec Graph Explorer et voyez si vous pouvez reproduire le problème ou non.


2 commentaires

Pas de chance pour moi dans Graph Explorer non plus.


Pourriez-vous clarifier ce qui suit? - si vous utilisiez un niveau Application ou une autorisation déléguée - si votre flux d'authentification utilise les points de terminaison Azure AD v1 ou v2 - et cela vous dérangerait-il de publier l'URL de la demande que vous avez frappée dans Graph Explorer pour obtenir une réponse réussie



0
votes

Je pense que le problème est que votre jeton a été généré à l'aide d'étendues déléguées. La version déléguée de MailboxSettings.Read et MailboxSettings.ReadWrite ne peut accéder qu'à la boîte aux lettres de l'utilisateur actuellement authentifié .

Pour accéder à d'autres utilisateurs, vous devez utiliser les étendues d'application. Vous pouvez en savoir plus sur le fonctionnement de ces étendues (et comment les sélectionner) dans cet article de blog: Application vs étendues déléguées .


0 commentaires

0
votes

Comme d'autres l'ont indiqué, le jeton délégué ne fonctionne que pour lire les mailboxSettings de l'utilisateur actuellement authentifié. J'avais activé mailboxSettings en tant que champ d'application, mais j'obtenais la même erreur. Le coupable du problème était que j'utilisais l'octroi de code Auth pour le jeton.

Après être passé à l'octroi des informations d'identification du client, je récupère avec succès un jeton d'authentification qui contient la portée de niveau application mailboxSettings et je suis en mesure d'obtenir 200 réponses sur les points de terminaison pour tous les utilisateurs.


0 commentaires