So richten Sie die zertifikatbasierte Authentifizierung für Exchange Online (Azure) ein

Die Einrichtung der zertifikatbasierten Authentifizierung mit Microsoft Enterprise ID (ehemals Azure AD) kann etwas aufwendig sein, insbesondere wenn Sie Passwörter für die Skriptautomatisierung abschaffen möchten. Falls Ihnen die Schritte – Zertifikatserstellung, Export, App-Registrierung, Berechtigungen – zu kompliziert erscheinen, sind Sie nicht allein. Es wirkt etwas komplex, aber sobald Sie den Dreh raus haben, bietet es eine solide Lösung für die sichere Ausführung von PowerShell, ohne Passwörter im Klartext speichern zu müssen. Außerdem entfällt die lästige MFA-Abfrage bei der Automatisierung. Der Prozess lässt sich in zwei Schritte unterteilen: die Erstellung eines Zertifikats, die Konfiguration von Azure und die Kommunikation von PowerShell-Skripten mit Diensten wie Exchange Online oder Teams mithilfe dieses Zertifikats. Ziel ist eine nahtlose und sichere Verbindung ohne Eingabeaufforderungen oder Passwortabfragen zur Laufzeit. Diese Anleitung soll Ihnen hoffentlich die Sache erleichtern und Ihnen die Arbeit erleichtern.

So beheben Sie Probleme mit der zertifikatsbasierten Authentifizierung mit Microsoft Entra ID

Methode 1: Erstellen und Exportieren des selbstsignierten Zertifikats

Zunächst benötigen Sie ein Zertifikat. Dies dient als Identitätsnachweis. Sie können eines von Ihrer Zertifizierungsstelle erhalten oder testweise ein selbstsigniertes Zertifikat erstellen. Es mag etwas ungewöhnlich klingen, aber die Erstellung mit dem PowerShell- New-SelfSignedCertificateBefehl auf Ihrem lokalen Rechner funktioniert einwandfrei. Die Erstellung eines drei Jahre gültigen Zertifikats sieht beispielsweise folgendermaßen aus:

$certvalid = (Get-Date).AddYears(3) $newcert = New-SelfSignedCertificate -DnsName "pre_prod.woshub.com" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter $certvalid -KeySpec KeyExchange -FriendlyName "Azure Microsoft Entra ID PowerShell Auth cert" $newcert | fl Subject, Thumbprint, NotBefore, NotAfter

Dabei werden Informationen wie der Fingerabdruck ausgegeben, der quasi die ID Ihres Zertifikats ist. Kopieren Sie diesen Fingerabdruck – Sie benötigen ihn später.

Jetzt müssen Sie die Datei exportieren, damit Azure sie akzeptieren kann. Führen Sie zwei Exporte durch – einen als CER-Datei (öffentlicher Schlüssel) und einen als PFX-Datei (privater und öffentlicher Schlüssel, passwortgeschützt).Die Befehle sehen folgendermaßen aus:

$newcert | Export-Certificate -FilePath "C:\PS\azure-auth.cer" $newcert | Export-PfxCertificate -FilePath "C:\PS\azure-auth.pfx" -Password (ConvertTo-SecureString -String "S3dPswrd@123" -AsPlainText -Force)

Stelle sicher, dass die Dateipfade mit den gewünschten Speicherorten übereinstimmen. Und merke dir das Passwort für die PFX-Datei – es wird später beim Import benötigt.

Methode 2: Registrieren der App in Azure Entra / Azure-Portal

Nächster Schritt: Weisen Sie Azure an, diesem Zertifikat zu vertrauen. Melden Sie sich im Azure-Portal an. Navigieren Sie zu Microsoft Entra ID > App-Registrierungen > Neue Registrierung. Geben Sie der Registrierung einen aussagekräftigen Namen, wählen Sie „ Nur Konten in diesem Organisationsverzeichnis“ aus und klicken Sie dann auf „Registrieren“.

Kopieren Sie nach der Registrierung die Anwendungs-ID (Client-ID) – dies ist die ID Ihrer App, die PowerShell zur Authentifizierung verwendet. Notieren Sie sich diese.

Gehen Sie bei der App-Registrierung zu API-Berechtigungen > Berechtigung hinzufügen. Wählen Sie die benötigten APIs aus, z. B.Microsoft Graph oder Exchange Online. Um Exchange zu verwalten, fügen Sie unter Anwendungsberechtigungen die Berechtigung Exchange. ManageAsApp hinzu. Klicken Sie anschließend auf Berechtigungen hinzufügen und vergessen Sie nicht, die Administratorzustimmung zu erteilen. Dadurch erhält Ihre App die erforderlichen Berechtigungen.

Laden Sie anschließend Ihr generiertes Zertifikat unter „Zertifikate und Geheimnisse“ hoch. Verwenden Sie dazu „Zertifikat hochladen“ und wählen Sie Ihre selbstsignierte PFX-Datei aus. Gehen Sie außerdem zu „Azure Active Directory“ > „Rollen und Administratoren“. Weisen Sie Ihrer App die Exchange-Administratorrolle zu, indem Sie eine Zuweisung hinzufügen. Dadurch kann Ihre App Exchange Online verwalten, was üblicherweise für Postfachskripte usw.erforderlich ist.

Methode 3: Verbindung zu Exchange Online mit PowerShell

Sobald alles eingerichtet ist, können Sie sich über PowerShell verbinden – ein Passwort ist nicht erforderlich. Vorausgesetzt, das Exchange Online-Modul (EXO) ist installiert, bereiten Sie Ihre Variablen vor:

$certThumbprint = "9CF05589A4B29BECEE6456F08A76EBC3DC2BC581" $AzureAppID = "11111111-2222-3333-4444-123456789" $tenant="woshub.onmicrosoft.com"

Rufen Sie anschließend den Verbindungsbefehl wie folgt auf:

Connect-ExchangeOnline -AppId $AzureAppID -CertificateThumbprint $certThumbprint -Organization $tenant

Es sollte kein Passwort abgefragt werden – einfach verbinden und loslegen. Bei manchen Konfigurationen kann es kurz dauern, bis die Verbindung hergestellt ist; bei anderen müssen Sie möglicherweise das Token aktualisieren oder PowerShell neu starten. Seltsam, aber sobald die Verbindung steht, funktioniert es.

Um zu sehen, was sich in Ihrem Tenant befindet, führen Sie einen einfachen Befehl aus, zum Beispiel:

Get-EXOMailbox

Und vergessen Sie nicht, die Verbindung nach Gebrauch abzubrechen:

Disconnect-ExchangeOnline -Confirm:$false

Die gleiche Logik gilt auch für andere Dienste wie Teams oder AzureAD; tauschen Sie einfach die Befehle aus:

Connect-MicrosoftTeams -CertificateThumbprint $certThumbprint -ApplicationId $AzureAppID -TenantId $tenant Connect-AzureAD -TenantId $tenant -ApplicationId $AzureAppID -CertificateThumbprint $certThumbprint

All dies setzt voraus, dass Ihre Berechtigungen in Azure korrekt zugewiesen sind.Überprüfen Sie diese daher noch einmal, falls etwas nicht funktioniert.

Zusatzinformation: Importieren der PFX-Datei auf einen anderen Rechner

Wenn Sie dasselbe Zertifikat auf einem anderen Rechner verwenden müssen, importieren Sie die PFX-Datei sorgfältig. Dies können Sie mit PowerShell wie folgt tun:

$password = ConvertTo-SecureString -String "S3dPswrd@123" -Force -AsPlainText Import-PfxCertificate -Password $password -FilePath "C:\PS\azure-auth.pfx" -CertStoreLocation Cert:\CurrentUser\My

Dadurch wird das Zertifikat in Ihrem lokalen Benutzerspeicher installiert und steht Skripten zur Verfügung. Hauptziel ist es, sicherzustellen, dass die PFX-Datei passwortgeschützt und sicher aufbewahrt wird.

Anfangs wirkt es etwas aufwendig, aber sobald die Zertifikate und Anwendungsrollen eingerichtet sind, läuft die Verbindung zu Diensten wie Exchange Online, Teams oder Azure reibungslos – keine Passwortabfragen mehr, nur noch saubere Skripte. Und die zusätzliche Sicherheit und Automatisierungsmöglichkeit lohnen sich. Ja, es erfordert etwas Einarbeitung, aber wenn alles eingerichtet ist, sorgt es für einen reibungslosen Ablauf Ihrer Skripte.

Zusammenfassung

  • Generieren und Exportieren von selbstsignierten Zertifikaten für die Azure-Authentifizierung
  • Apps im Azure Entra-Portal erstellen und registrieren
  • Weisen Sie Berechtigungen und Rollen in Azure korrekt zu.
  • Verwenden Sie PowerShell mit Fingerabdruck und App-ID für unbeaufsichtigte Verbindungen
  • Denken Sie daran, die Sitzungen anschließend zu trennen.

Zusammenfassung

Alles in allem mag die Zertifikatsauthentifizierung anfangs etwas kompliziert wirken, ist aber zuverlässig, sobald man sie verstanden hat. Der Schlüssel liegt im Verständnis des Ablaufs: Zertifikate erstellen, Apps registrieren, Rollen zuweisen und anschließend die Anmeldung automatisieren. Wahrscheinlich klappt es nicht gleich beim ersten Mal perfekt, insbesondere bei den Berechtigungen – Azure kann da etwas pingelig sein –, aber wenn man es richtig macht, läuft die Automatisierung sicher und reibungslos. Hoffentlich hilft das dem einen oder anderen, sich ein paar Probleme bei der Einrichtung zu ersparen.