SPN Shared Mailbox auslesen

Version 3.1 by Dimitri Rupp on 2026/07/08 12:54

📬 SPN Shared Mailbox auslesen

Information

Zweck: App-basierter, auf ein einzelnes Postfach eingeschränkter Zugriff auf eine Shared Mailbox über Microsoft Graph (Service Principal).
Beispiel: Postfach 1und1.plantmit@spl-tele.com für ein Fabric-Notebook.

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.

1781697144984-589.png

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.

  1. Entra Admin Center oder M365 Admin Center → Groups
  2. Neue Gruppe erstellen — Typ: Mail-enabled Security, Name: SG-MNDE-PlantMIT-MailboxScope
  3. Als Mitglied hinzufügen: 1und1.plantmit@spl-tele.com
Warning

Die Gruppe muss mail-enabled sein.

2️⃣ App Registration erstellen

  1. Entra Admin Center → App registrationsNew registration
  2. Name: Fabric-MNDE-MailAccess
  3. Supported account types: Single Tenant; Redirect URI: leer lassen

Nach der Erstellung dokumentieren: Application (Client) ID und Directory (Tenant) ID.

3️⃣ Client Secret erstellen

  1. App → Certificates & SecretsNew Client Secret
  2. Ablauf z. B. 6–12 Monate
  3. Secret Value sofort sichern (wird nur einmal angezeigt)

Ablaufdatum im IT-Kalender hinterlegen.

4️⃣ API Permissions setzen

  1. App → API PermissionsAdd PermissionMicrosoft GraphApplication Permissions
  2. Hinzufügen: Mail.Read
  3. Admin Consent erteilen
Warning

Nur minimal notwendige Rechte vergeben (kein Mail.ReadWrite, falls nicht nötig).

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.

Warning

Es wurden keine Benutzerrechte im Tenant vergeben. Der Zugriff erfolgt ausschließlich über die App-Identität.

🔄 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.