Ich versuche, E-Mails über die Office365 App in der MVC Web App herunterzuladen. Und ich habe Probleme, die App-Berechtigungen für Azure Active Directory zu konfigurieren. Die Berechtigung lautet: "Mail in allen Mailboxen lesen", aber ich möchte auswählen, auf welche Mailboxen zugegriffen/gelesen werden kann.Office365-App einschränken "Mail in allen Mailboxen lesen" Berechtigung für bestimmte Mailbox
Kennt jemand ho spezifischer beim Einrichten von Berechtigungen in AAD? Danke für jede Hilfe.
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();
Hallo Fei, thx wieder für Ihre Hilfe! Mein Anwendungsfall ist, dass ich E-Mails von bestimmten Mailboxen herunterladen muss (ich muss E-Mails empfangen und sie in der MVC App speichern, es müssen E-Mails sein, die ich API nicht verwenden kann [Das wäre der beste Weg dazu]]. Aus Sicherheitsgründen kann ich jedoch keinen offenen Tunnel zu allen Postfächern in AD erstellen und den Zugriff nur per E-Mail-Adresse für ClientCredential einschränken. Weil es zu sehr verwundbar ist. Es würde mir als Entwickler Zugriff auf alle E-Mails von Firmen-E-Mail-Adressen geben, die ich kenne. – Mastenka
Oder wenn der ClientCredential-Workflow den Schritt zum Einfügen eines Kennworts für ein Postfach erfordern würde, wäre das ein ausreichender Schutz. Weil ich andere Postfächer nicht lesen konnte, nur die, zu denen ich ein Passwort habe. – Mastenka
Es gibt mehrere Möglichkeiten, die Entwickler zu vermeiden, alle Nachrichten zu erhalten. Zunächst können Sie die Entwicklungsumgebung mit dem Produktmandanten trennen. Zweitens können Sie das App-Token auch zu Testzwecken durch ein Delegiert-Token ersetzen. Die dritte Möglichkeit besteht darin, dass Sie selbst einen Testdatenserver erstellen können. –