Über Microsoft Graph APIs und mit einer Azure App Registration kann der Zugriff auf eine definierte Exchange Mailbox eingeschränkt werden. Dafür muss die Azure App über eine ApplicationAccessPolicy auf die Mailbox berechtigt sein.
Wurde eine Azure App Registration erstellt kann mit einer ApplicationAccessPolicy der Zugriff auf eine (oder mehrere) definierte Mailboxen eingeschränkt werden. Zur Demo erstellte ich mir eine Azure App mit den Berechtigungen Mail.ReadWrite und Mail.Send. Eine ApplicationAccessPolicy ist nur in Kombination mit Application Permissions möglich.
Ich versuche über Microsoft Graph Mails aus der Mailbox auszulesen. Mit meinen aktuellen Berechtigungen wird mir der Zugriff verweigert: “Access to OData is disabled”
Damit ein Zugriff auf die Mailbox Shared1 möglich ist muss die Azure App über eine ApplicationAccessPolicy auf die Mailbox berechtigt sein. Eine ApplicationAccessPolicy ist bei den möglichen Exchange APIs eingeschränkt. In der Hilfe sind die möglichen APIs beschrieben. Dort zeigt es ausserdem folgendes Command.
New-ApplicationAccessPolicy -AppId [AzureAppID] -PolicyScopeGroupId [GroupID] -AccessRight RestrictAccess -Description [Optionale Beschreibung der Policy]
Hier ist neben der AppId der Parameter PolicyScopeGroupId von Bedeutung. Eine ApplicationAccessPolicy kann nicht direkt einer Mailbox oder einem Benutzerkonto zugeordnet sein, es muss sich um eine Mail-enabled Security Group handeln. Im M365 oder Exchange Admin Center wird so eine Gruppe erstellt.
Der neuen Gruppe füge ich meine Shared1-Mailbox als Mitglied hinzu. Die Berechtigungen der Azure App gelten am Ende für jede Mailbox in dieser Gruppe.
Nun stelle ich über das Exchange PowerShell Modul eine Verbindung zum Tenant her und kann über New-ApplicationAccessPolicy eine ApplicationAccessPolicy zwischen der Security Gruppe und Azure App erstellen. Bei der PolicyScopeGroupId handelt es sich um die ID der neu erstellten Gruppe Shared1MailboxAccess. Alternativ kann es die Mailadresse sein.
Über Test-ApplicationAccessPolicy teste ich ob die Azure App auf die Mailbox des Benutzers shared1 zugreifen kann.
Test-ApplicationAccessPolicy -Identity [email protected] -AppId "e17dc044-f8d5-4542-bb4b-3ceb352d3ab1"
Hier muss das Ergebnis Granted lauten. Damit ist die Verbindung zwischen Mailbox und Azure App abgeschlossen. Es wird nun bis zu 60 Minuten dauern bis der Zugriff für die Azure App möglich ist.
Hat das System den Vorgang abgeschlossen wird die Abfrage von vorhin den Zugriff nicht mehr verweigern und Daten inkludieren.