SPN Shared Mailbox auslesen
📬 SPN Shared Mailbox auslesen
Einleitung
Es ist möglich, Zugriff auf ausgewählte Shared Mailboxen über einen SPN (Service Principal) zu gewähren. In folgender Anleitung wurde für das 1und1-Postfach ein solcher Zugriff inkl. App-Registrierung eingerichtet. Werden zusätzliche Postfächer benötigt, kann man diese einfach als Mitglied in der Security-Gruppe ergänzen — eine eigene App-Registrierung ist nicht nötig.
Mail-enabled Security-Gruppe
Die Gruppe findet man im Admin Center unter Active teams & groups und heißt MailReport_MNDE.

Einrichtung Service Principal (SPN)
Ziel: Automatisierter, app-basierter Zugriff (Fabric-Notebook) auf das Shared Mailbox 1und1.plantmit@spl-tele.com. Der Zugriff ist technisch auf genau dieses Postfach eingeschränkt (keine globalen Mailbox-Rechte).
🔐 Sicherheitsprinzip
- Zugriff über Azure App Registration (Service Principal)
- Berechtigung: Microsoft Graph – Mail.Read (Application)
- Einschränkung über Exchange Application Access Policy auf eine Scope-Gruppe
- Kein Benutzerzugriff erforderlich, kein Zugriff auf andere Postfächer möglich
✅ Voraussetzungen
Berechtigungen:
- Entra ID / Azure AD: Application Administrator oder Cloud Application Administrator
- Exchange Online: Exchange Administrator
Technisch: Exchange Online PowerShell Modul installiert:
Install-Module ExchangeOnlineManagement
1️⃣ Mail-enabled Security Group erstellen (Scope-Gruppe)
Diese Gruppe definiert, auf welche Postfächer die App zugreifen darf.
- Entra Admin Center oder M365 Admin Center → Groups
- Neue Gruppe erstellen — Typ: Mail-enabled Security, Name: SG-MNDE-PlantMIT-MailboxScope
- Als Mitglied hinzufügen: 1und1.plantmit@spl-tele.com
2️⃣ App Registration erstellen
- Entra Admin Center → App registrations → New registration
- Name: Fabric-MNDE-MailAccess
- Supported account types: Single Tenant; Redirect URI: leer lassen
Nach der Erstellung dokumentieren: Application (Client) ID und Directory (Tenant) ID.
3️⃣ Client Secret erstellen
- App → Certificates & Secrets → New Client Secret
- Ablauf z. B. 6–12 Monate
- Secret Value sofort sichern (wird nur einmal angezeigt)
Ablaufdatum im IT-Kalender hinterlegen.
4️⃣ API Permissions setzen
- App → API Permissions → Add Permission → Microsoft Graph → Application Permissions
- Hinzufügen: Mail.Read
- Admin Consent erteilen
5️⃣ Exchange Application Access Policy setzen (Einschränkung)
Verbindung zu Exchange Online:
Connect-ExchangeOnline
Policy erstellen:
New-ApplicationAccessPolicy `
-AppId "CLIENT-ID-HIER" `
-PolicyScopeGroupId "SG-MNDE-PlantMIT-MailboxScope@firma.tld" `
-AccessRight RestrictAccess `
-Description "Restrict Fabric App to 1und1.plantmit Shared Mailbox"
6️⃣ Funktionstest
Zugriff auf das erlaubte Postfach testen (erwartet: Granted):
Test-ApplicationAccessPolicy `
-AppId "CLIENT-ID-HIER" `
-Identity "1und1.plantmit@spl-tele.com"
Gegenprobe mit anderem Postfach (erwartet: Denied):
Test-ApplicationAccessPolicy `
-AppId "CLIENT-ID-HIER" `
-Identity "anderer.user@firma.tld"
📦 Übergabe an externen Consultant
Bereitgestellt wurden: Tenant ID, Client ID, Client Secret sowie das Zielpostfach 1und1.plantmit@spl-tele.com.
🔄 Betrieb & Wartung
Secret Rotation: Ablaufdatum dokumentieren, vor Ablauf neues Secret erzeugen, altes entfernen.
Erweiterung auf weitere Shared Mailboxen: Postfach einfach zur Scope-Gruppe hinzufügen — keine Änderung an den App-Permissions nötig.
🛡 Sicherheitsbewertung
- Kein globaler Mailbox-Zugriff
- Kein Delegated Access
- Kein Benutzer-Login erforderlich
- Zugriff ausschließlich über die Microsoft Graph API
- Einschränkung über Application Access Policy
Das Setup entspricht der Microsoft Best Practice für App-only Mailbox-Zugriff.
Schneller Funktionstest
Folgenden PowerShell-Befehl absetzen (App-ID aus der App-Registrierung im Entra-Portal, Identity = benötigtes Postfach):
Test-ApplicationAccessPolicy -Identity it-support@spl-tele.com -AppId c251bcb8-c221-459d-a4f3-cbb5c1db55ce
Steht bei AccessCheckResult „Gewährt", funktioniert der Zugriff.