J'essaie de télécharger des e-mails via l'application Office365 dans l'application Web MVC. Et je suis aux prises avec la configuration des autorisations d'application sur le répertoire Azure Active. La permission dit: "Lire le courrier dans Toutes les boîtes aux lettres" mais je veux choisir les boîtes aux lettres auxquelles il peut accéder/lire.Restreindre l'application Office365 «Lire le courrier dans toutes les boîtes aux lettres» de la boîte aux lettres spécifique
Est-ce que quelqu'un sait ho être plus précis dans la configuration des autorisations dans AAD? Merci pour toute aide.
string authority = "https://login.microsoftonline.com/" + SettingsHelper.TenantId + "/oauth2/token";
var credential = new ClientCredential(SettingsHelper.ClientId, SettingsHelper.ClientSecret);
AuthenticationContext authContext = new AuthenticationContext(authority);
var authResult = await authContext.AcquireTokenAsync("https://graph.microsoft.com", credential);
var graphserviceClient = new GraphServiceClient(
new DelegateAuthenticationProvider(
(requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", authResult.AccessToken);
return Task.FromResult(0);
}));
//This is Ok. I want to read this.
var allowedEmails = await graphserviceClient.Users["[email protected]"].Messages.Request().GetAsync();
//This is forbidden. I want to restrict this on AAD level.
var dissabledEmails = await graphserviceClient.Users["[email protected]"].Messages.Request().GetAsync();
Salut Fei, Merci encore pour votre aide! Mon cas d'utilisation est que j'ai besoin de télécharger des courriels de boîte aux lettres spécifique (j'ai besoin de recevoir des courriels et de les stocker dans l'application MVC, il faut que je n'utilise pas l'API [Ce serait la meilleure façon de le faire ...]). Mais pour des raisons de sécurité, je ne peux pas créer un tunnel ouvert à toutes les boîtes aux lettres dans AD et restreindre l'accès uniquement par adresse e-mail pour ClientCredential. Parce que c'est trop vulnérable. Cela me donnerait accès en tant qu'éditeur à tous les courriels provenant d'adresses électroniques d'entreprises que je connais. – Mastenka
Ou si le flux de travail ClientCredential requiert l'insertion d'un mot de passe pour une boîte aux lettres, cela constituerait une protection suffisante. Parce que je ne pouvais pas lire d'autres boîtes aux lettres, seulement celles pour lesquelles j'ai un mot de passe. – Mastenka
Il existe plusieurs façons d'éviter aux développeurs d'obtenir tous les messages. Tout d'abord, vous pouvez séparer l'environnement de développement du locataire du produit. Deuxièmement, vous pouvez également remplacer le jeton d'application par un jeton de délégué à des fins de test. Le troisième est que vous pouvez créer un serveur de données de test vous-même. –