Compliance Center PowerShell mit App-based Authentication

Microsoft hat die Verbindungsmöglichkeit zum Compliance Center mit App-based Authentication erweitert. Damit kann eine Anmeldung von Username + Passwort auf AppID + Zertifikat ersetzt werden.

Mit App-based Authentication wird bei PowerShell statt Username + Passwort für die Anmeldung eine Azure AD App + Zertifikat (oder Client Secret) eingesetzt. Mit der Anmeldeart könnten automatisierte Konten (Service Accounts) ebenfalls für Multi-Faktor Authentifizierung eingerichtet sein.
PowerShell unterstützt die Verbindung zu Exchange Online über App-based Authentication bereits länger. Für die Verbindung zum Compliance Center war weiterhin Username + Passwort erforderlich. Heute kann es für die Verbindung zum Compliance Center eine Mischung geben.

# Connect to Exchange Online (App-based Authentication)
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -AppID "<AppID>" -CertificateThumbPrint "<CertificateThumbPrint>" -Organization "<Tenantname>.onmicrosoft.com"

# Connect to Compliance Center (with Username + Password)
$UserCredential = Get-Credential
Connect-IPPSSession -Credential $UserCredential

Im Preview Release des Exchange Online PowerShell Moduls hat Microsoft dem Command Connect-IPPSSession die Möglichkeit von App-based Authentication hinzugefügt. Damit kann die Anmeldung statt über Username + Passwort mit AppID + Zertifikat erfolgen. Wie App-based Authentication für das Exchange Online PowerShell Modul eingerichtet wird beschreibt eine Schritt für Schritt Anleitung.

Es sind 7 Schritt erforderlich:

  1. Registrieren von einer Azure AD App Application
  2. Zuweisungen von API Berechtigungen
  3. Erstellung von selbstsigniertem Zertifikat
  4. Das Zertifikat der Azure AD App zuweisen
  5. Zuweisung von Berechtigungsrollen zu der App
  6. Exchange Online PowerShell Modul aktualisieren
  7. Verbindung über App-based Authentication herstellen

Schritt 1: Zur Demo erstellte ich mir eine neue Azure AD App.

Schritt 2: Laut Anleitung weise ich der App die Berechtigungen für Exchange.ManageAsApp zu.

Schritt 3: Es wird lokal am Client ein selbstsigniertes Zertifikat erstellt und das Zertifikat in passende Formate exportiert.

$mycert = New-SelfSignedCertificate -DnsName "demo1.tam365.com" -CertStoreLocation "cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(1) -KeySpec KeyExchange
$mycert | Export-PfxCertificate -FilePath "C:\Temp\mycert.pfx" -Password $(ConvertTo-SecureString -String "<Password>" -AsPlainText -Force)
$mycert | Export-Certificate -FilePath "C:\Temp\mycert.cer" 

Schritt 4: Das öffentliche Zertifikat wird in die Azure AD App hochgeladen.

Schritt 5: Zuweisung einer unterstützten Admin-Rolle für die Azure AD App. Ich weise meiner “Exchange Online and Compliance Center” App die Compliance Admin Rolle zu.

Schritt 6: Damit Import-PSSession App-based Authentication unterstützt muss das Modul für Exchange Online PowerShell 2.0.6 Preview oder höher installiert sein. Da es sich um ein Pre-release Modul handelt ist beim Update der Parameter AllowPrerelease zu ergänzen.

Update-Module ExchangeOnlineManagement -AllowPrerelease

Schritt 7: Danach ist die Verbindung über die Azure AD App und Zertifikat möglich.

Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -AppID "<AppID>" -CertificateThumbPrint "<CertificateThumbPrint>" -Organization "<Tenantname>.onmicrosoft.com"
Connect-IPPSSession -AppID "<AppID>" -CertificateThumbPrint "<CertificateThumbPrint>" -Organization "<Tenantname>.onmicrosoft.com"

Wurden die Schritte 1 – 5 fehlerfrei durchgeführt sollte PowerShell die Verbindung erfolgreich herstellen. Jetzt ist die normale Ausführung vom Compliance Commands möglich. So ist es mir möglich die vor wenigen Tagen getesteten Adaptive Scopes für Information Governance via PowerShell zu bearbeiten und Retention Policies abzufragen.

Share
Avatar-Foto

Tobias Asböck

Tobias ist ein Senior System Engineer mit rund 10 Jahren Berufserfahrung für Microsoft 365 Produkte wie SharePoint Online, OneDrive for Business, Teams Collaboration, Entra ID, Information Protection, Universal Print und Microsoft 365 Lizenzierung. Aus der Vergangenheit kennt er über einen Zeitraum von 15+ Jahren die Planung, Administration und den Betrieb von SharePoint Server Umgebungen. Tobias ist ein PowerShell Scripter mit Zertifizierungen für Microsoft 365 Produkte. In seiner Freizeit beschäftigt sich Tobias mit Aktualisierungen in der M365-Welt, ist mit seinem Rennvelo unterwegs und anderen sportlichen Aktivitäten beschäftigt. Bei Fragen kontaktiere mich über LinkedIn oder [email protected].

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert