So stellen Sie eine Verbindung zu Office 365 PowerShell her: Azure AD-Module

Datensicherheit

In diesem Post erfahren Sie, wie Sie PowerShell mit Azure Active Directory (Azure AD) verbinden, über das Identitäten und Lizenzen von Microsoft-365-Mandanten verwaltet werden. Ebenso werde ich die Verbindung mit anderen Diensten und Produkten in Microsoft 365 besprechen, beispielsweise Exchange, SharePoint und Microsoft Teams.

Warum PowerShell verbinden?

Die Vorteile einer Verbindung mit Office 365

Wenn Sie in den letzten zehn Jahren mit Microsoft-Technologien gearbeitet haben, wissen Sie, dass PowerShell die Hauptsprache für die Verwaltung und Konfiguration vieler Microsoft-Produkte ist. Es gibt zahlreiche Gründe PowerShell für die Verwaltung von Microsoft 365 zu verwenden:

  • Automatisierung für noch mehr Produktivität: Mit PowerShell können Sie Massenoperationen durchführen, wie z. B. das Zuweisen von Lizenzen oder das Konfigurieren von Postfacheinstellungen.
  • Einstellungen, die nur über PowerShell konfigurierbar sind: Microsoft kann nicht jede einzelne Einstellung im Admin-Center platzieren, daher ist PowerShell oftmals die einzige Möglichkeit, bestimmte Einstellungen zu ändern. Beispiele für Einstellungen, die nur über PowerShell konfigurierbar sind, finden Sie unter 7 verborgene Einstellungen in Office 365, auf die man mit PowerShell zugreifen kann von Vlad Catrinescu.
  • Filtern von Daten: PowerShell kann Daten filtern und relevante Ergebnisse liefern, z. B. den Postfachtyp oder den einem Benutzer zugewiesenen Standort.
  • Daten exportieren: Genauso wie PowerShell Daten erfassen und filtern kann, können Sie es auch zum Exportieren von Daten verwenden. Die häufigste Option ist der Export in eine CSV-Datei, aber Sie können die Daten auch als JSON oder XML formatieren.
  • Produktübergreifendes Management: Jeder Dienst verfügt über einen eigenen Satz an PowerShell-Verwaltungsfunktionen. PowerShell kann in jedem Dienst Vorgänge zum Einbinden neuer Benutzerkonten oder zum Zusammenstellen eines Informationsberichts mit mehreren Diensten durchführen.
  • Standardisierung: Sie können ein Skript oder eine Funktion in PowerShell schreiben, um eine Aufgabe zu standardisieren, z. B. um ein neues Benutzerkonto zu erstellen oder eine neue SharePoint-Website einzurichten. Indem Sie die Aufgabe wiederholbar machen, stellen Sie sicher, dass der Prozess jedes Mal bestimmte Abläufe befolgt, die bei manueller Durchführung im Admin Center übersehen werden könnten.

Vor der Verbindung mit der Azure AD PowerShell

Schritte vor der Verbindung mit Office 365

Es müssen bestimmte Voraussetzungen erfüllt werden, bevor eine Verbindung zu Azure AD mit PowerShell hergestellt werden kann. Zunächst benötigen Sie ein Konto mit ausreichenden Berechtigungen, um eine Verbindung herzustellen. Der globale Administrator hat Zugriff auf die meisten Verwaltungsfunktionen und -daten und über die verschiedenen Dienste hinweg. Microsoft empfiehlt, dass Sie nur 2–4 globale Administratoren in Ihrem Mandanten haben. In diesem Fall sollten Sie den Administratoren jeweils die Rolle mit den geringsten Berechtigungen zuweisen, die diese für ihre Aufgaben benötigen. Weitere Rollen sind globaler Leser, Gruppenadministrator und Helpdeskadministrator.

Es gibt zwei verschiedene Module, die Azure AD für Microsoft 365 verwalten können:

  • Azure Active Directory-Modul für Windows PowerShell
    • Version 1 des Moduls für Azure Active Directory
    • Auch bekannt als MS Online-Modul
    • Cmdlets enthalten „Msol“ in ihrem Namen
  • Azure Active Directory-Modul für PowerShell für Graph
    • Version 2 des Moduls für Azure Active Directory
    • Cmdlets enthalten „AzureAD“ in ihrem Namen

Die 2. Version des Graph-Moduls ersetzt die Funktionen des Windows PowerShell-Moduls Version 1 nicht vollständig. Allgemein sollten Sie versuchen, das Graph-Modul zu verwenden; in manchen Fällen ist jedoch das ältere Windows PowerShell-Modul besser geeignet.

Beide Module haben die folgenden Anforderungen und können unabhängig voneinander auf demselben System installiert werden:

  • Version des Betriebssystems: Sie können mehrere Windows-Versionen für die Verbindung verwenden:
    • Windows 7 SP1, Windows 8, Windows 8.1 und Windows 10
    • Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 und Windows Server 2019
  • Betriebssystemarchitektur: Sie müssen eine 64-Bit-Version von Windows verwenden.

PowerShell Core und Version 7 und höher unterstützen das Microsoft Azure Active Directory-Modul für Windows PowerShell nicht. Wenn Sie PowerShell Version 7 und höher verwenden, müssen Sie das Azure Active Directory-Modul für PowerShell für Graph verwenden. Das Microsoft Azure Active Directory-Modul für Windows PowerShell erfordert außerdem die Installation des Microsoft Online Services-Anmeldeassistenten für IT-Fachkräfte RTW, wenn Sie nicht Windows 10 benutzen.

Als nächstes müssen wir jedes Modul aus dem PowerShell-Katalog installieren. Der PowerShell-Katalog ist ein Repository, in dem viele Microsoft PowerShell-Module gehostet werden. Mit dem PowerShell-Katalog können Benutzer Module schnell und einfach direkt von PowerShell aus installieren und aktualisieren. Module werden anhand ihres Modulnamens mit dem Cmdlet „Install-Module“ installiert.

Um das Azure Active Directory-Modul für Windows PowerShell zu installieren, führen Sie den folgenden PowerShell-Befehl aus:

  1. Install-Module -Name MSOnline

Um das Azure Active Directory-Modul für PowerShell für Graph zu installieren, führen Sie den folgenden PowerShell-Befehl aus:

  1. Install-Module -Name AzureAD

Wenn Sie eine Meldung über die Installation von einem nicht vertrauenswürdigen Repository erhalten, überprüfen Sie, ob diese sich auf das PSGallery-Repository bezieht, und geben Sie dann Y ein.

Screenshot eines nicht vertrauenswürdigen Repository

Wenn Sie diese Meldung in Zukunft unterdrücken möchten, können Sie den folgenden PowerShell-Befehl ausführen, um die PSGallery als vertrauenswürdigen Installationsort festzulegen:

  1. Set-PSRepository -Name PSGallery -InstallationPolicy Trusted

PowerShell mit Microsoft 365 verbinden

Jedes Modul verfügt über verschiedene Befehle für die Verbindung zu Azure Active Directory. Sie können Ihre Kontoanmeldeinformationen speichern, um deutlich schneller eine PowerShell-Sitzung zu erstellen.

1. Erstellen eines PSCredential-Objekts

Ein PSCredential-Objekt speichert einen Benutzernamen und ein Passwort, die Sie zur Authentifizierung bei verschiedenen Diensten verwenden können. Um ein PSCredential-Objekt für eine Variable zu erstellen, verwenden Sie das Cmdlet „Get-Credential“, und Sie werden in einem Fenster zur Eingabe des Administratorbenutzernamens und des Kennworts aufgefordert. Das Speichern der Anmeldeinformationen in einer Variablen ermöglicht die einfache Wiederverwendung mit mehreren Verbindungs-Cmdlets.

  1. Get-Credential

Screenshot der Erstellung von Anmeldedaten

2. Verbindung zum MSOnline-Dienst herstellen

Um eine Verbindung mit dem Azure Active Directory-Modul für Windows PowerShell oder dem MSOnline-Modul herzustellen, verwenden Sie das Cmdlet Connect-MsolService, und stellen Sie die Variable $M365credentials bereit.

  1. Connect-MsolService -Credential $M365credentials

3. Verbindung zum AzureAD-Dienst herstellen

Um eine Verbindung mit dem Azure Active Directory-Modul für PowerShell für Graph herzustellen, verwenden Sie das cmdlet Connect-AzureAD erneut und benutzen Sie erneut die Variable $M365credentials mit dem gespeicherten Benutzernamen und Kennwort.

  1. Connect-AzureAD -Credential $M365credentials

4. Ihre Verbindung überprüfen

Wenn PowerShell mithilfe des MSOnline-Moduls eine erfolgreiche Verbindung herstellt, wird im Fenster nichts angezeigt. Sie können jedoch das cmdlet Get-MsolCompanyInformation ausführen, um zu überprüfen, ob Sie mit dem richtigen Azure AD-Mandanten verbunden sind.

  1. Get-MsolCompanyInformation

Screenshot vom Abrufen einer Msol-Unternehmensinfo

Wenn PowerShell mithilfe des AzureAD-Moduls eine Verbindung herstellen kann, zeigt das Fenster das Verbindungskonto, die Umgebung, die Mandanten-ID und die Mandanten-Domäne an.

Screenshot der Verbindung mit Azure AD

Verbinden von PowerShell mit anderen 365-Plattformen

Aber PowerShell mit Azure AD zu verbinden ist erst der Anfang. Darüber können Sie zwar die Mandanten- und Benutzereinstellungen verwalten, allerdings hat Azure AD keinen Zugriff auf andere Dienste, die in Microsoft 365 gehostet werden. Die anderen Cloud-Produkte lassen sich jeweils mit eigenen Modulen und Cmdlets mit PowerShell verbinden. Die folgenden Abschnitte erklären, wie Sie eine Verbindung zu den Primärdiensten in Microsoft 365 herstellen können.

Verbindung mit Exchange Online herstellen

Um eine Verbindung mit Exchange Online herzustellen, musste früher eine Remote-PowerShell-Sitzung erstellt und importiert werden. Microsoft hat diesen Prozess mittlerweile optimiert, indem es ein Modul mit eigenem „connect“-Cmdlet veröffentlicht hat. Das neue ExchangeOnlineManagement-Modul (hier im PowerShell-Katalog erhältlich) bietet dieselben Cmdlets wie Version 1 der Remote-PowerShell, umfasst jedoch auch neue Cmdlets, die die Leistung bei der Arbeit mit Postfächern und anderen Empfängerobjekten verbessern.

Um dieses neue Modul verwenden zu können, müssen Sie es mit dem Cmdlet Install-Module aus dem PowerShell-Katalog installieren, genau wie mit den Azure AD-Modulen. Anschließend können Sie das Cmdlet Connect-ExchangeOnline mit Ihrer Anmeldedatenvariable nutzen, um die Verbindung zu PowerShell herzustellen.

  1. Install-Module -Name ExchangeOnlineManagement
  2. Connect-ExchangeOnline -Credential $M365credentials

Screenshot der Verbindung zu Exchange Online

Verbindung zum Security and Compliance Center herstellen

Sie können Compliance-Fälle erstellen, das Administratorüberwachungsprotokoll durchsuchen und Aufbewahrungsrichtlinien mit PowerShell mit dem Security and Compliance Center erstellen. Mit der Veröffentlichung des neuen Exchange OnlineManagement-Moduls, das im vorherigen Abschnitt erwähnt wurde, können Sie sich über Connect-IPPSSession und Ihr Anmeldedatenobjekt mit dem Security and Compliance Center verbinden. Anschließend können Sie einen Befehl wie Get-AdminAuditLogConfig ausführen, um die Verbindung zu überprüfen.

  1. Connect-IPPSSession -Credential $M365Credential

Screenshot einer IPPSS-Sitzung

Wenn Sie eine Verbindung zu einem Mandanten von Office 365 Deutschland herstellen, müssen Sie den Parameter -ConnectionUri mit dem Wert „https://ps.compliance.protection.outlook.de/PowerShell-LiveID“ angeben. Weitere Informationen über besondere Umstände finden Sie im Dokument Connect-IPPSSession.

Verbindung mit SharePoint Online herstellen

SharePoint Online verfügt auch über ein eigenes Modul zum Verbinden vom PowerShell-Sessions Sie können sich das SharePoint Online Management Shell-Modul holen, indem Sie die ausführbare Datei von der Microsoft-Website herunterladen und installieren. Sie können die SharePoint Online Management-Shell auch über den PowerShell-Katalog mit dem Befehl Install-Module installieren.

Zum Herstellen einer Verbindung zwischen PowerShell und SharePoint Online können Sie das Cmdlet Connect-SPOService benutzen und weiterhin das Anmeldedatenobjekt verwenden. Sie müssen auch die SharePoint-URL des Mandanten-Admins angeben. Die URL enthält Ihren Mandantennamen (derselbe Name wie in Ihrer .onmicrosoft.com-Domain), gefolgt von „-admin.sharepoint.com“. In diesem Beispiel ist mein Mandantenname „upstarttech“.

  1. Install-Module -Name Microsoft.Online.SharePoint.PowerShell
  2. $orgName = “upstarttech”
  3. Connect-SPOService -Url “https://$orgName-admin.sharepoint.com” -Credential $M365Credentials

Screenshot des SPO-Dienstes

Wenn Sie eine Fehlermeldung erhalten haben, dass die Website keine SharePoint-Online-Anmeldedaten unterstützt, können Sie versuchen, sich erneut zu verbinden, ohne den Parameter „-Credential“ anzugeben. PowerShell fordert Sie auf, den Benutzernamen und das Passwort einzugeben.

Sobald die Verbindung hergestellt ist, überprüfen Sie mithilfe des folgenden Befehls bestimmte Einstellungen der Mandantenkonfiguration:

  1. Get-SPOTenant | Select-Object LegacyAuthProtocolsEnabled, RequireAcceptingAccountMatchInvitedAccount

Um ein PSCredential-Objekt zu verwenden, sollte LegacyAuthProtocolsEnabled „true“ und RequireAcceptingAccountMatchInvitedAcount „false“ sein. Wenn Sie diese Werte ändern, überprüfen Sie alle Sicherheits- oder Drittanbieter-Integrationen, die ggf. davon betroffen sein könnten. Es kann auch einige Zeit dauern, bis die Änderung wirksam wird.

Verbindung mit Microsoft Teams herstellen

Microsoft Teams gewinnt schnell an Beliebtheit innerhalb des Microsoft 365-Dienstes. Wie auch die anderen Module wird das Modul für Teams im PowerShell-Katalog gehostet.

Um dieses Modul zu installieren, können Sie wieder das Cmdlet Install-Module verwenden und das MicrosoftTeams-Modul angeben. Benutzen Sie anschließend das Cmdlet Connect-MicrosoftTeams, um mit unserer gespeicherten PSCredential-Variable eine Verbindung mit dem Online-Dienst herzustellen. Bei einer erfolgreichen Verbindung werden Informationen über den Microsoft-Teams-Mandanten ausgegeben.

  1. Install-Module -Name MicrosoftTeams
  2. Connect-MicrosoftTeams -Credential $M365credentials

Screenshot der Verbindung mit Office 365

Verbindung mit Skype for Business Online herstellen

Für Skype for Business Online musste bislang das Modul manuell aus dem Download Center von Microsoft heruntergeladen und installiert werden. Vor kurzem hat Microsoft das Cmdlet „New-CsOnlineSession“ direkt in das MicrosoftTeams-Modul integriert, das Sie im vorherigen Abschnitt installiert haben. Microsoft wird Skype for Business Online zwar im Juli 2021 einstellen, allerdings werden viele Einstellungen und Richtlinienverwaltungen für Microsoft Teams immer noch über den Skype for Business Online-Dienst vorgenommen.

Um sich mit dem Skype for Business Online-Dienst in PowerShell zu verbinden, müssen Sie eine Remote-PowerShell-Sitzung mit dem Cmdlet „New-CsOnlineSession“ in einer Variable speichern und anschließend die Sitzung importieren. Wenn die Verbindung erfolgreich ist, zeigt PowerShell das temporäre Modul an, das alle Cmdlets für Skype for Business Online enthält.

  1. $skypeSession = New-CsOnlineSession -Credential $M365credentials
  2. Import-PSSession -Session $skypeSession

Multi-Faktor-Authentifizierung

Die Multi-Faktor-Authentifizierung ist ein zusätzlicher Sicherheitsmechanismus, der eine andere Form der Authentifizierung als Ihr Kontopasswort erfordert. Die Multi-Faktor-Authentifizierung kann mithilfe von Push-Benachrichtigungen von einer mobilen Anwendung, Hardware-Tokens oder durch Codes erfolgen, die über SMS-Nachrichten empfangen werden.

Zumindest bei Administratorkonten sollte die Multi-Faktor-Authentifizierung unbedingt aktiviert werden, da es sich dabei um höhergestellte Konten handelt, die zusätzliche Sicherheitsmaßnahmen erfordern. Heutzutage aktivieren immer mehr Unternehmen die Multi-Faktor-Authentifizierung, um reguläre Benutzerkonten vor dem Diebstahl ihrer Anmeldedaten zu schützen.

MFA in Office 365 und PowerShell verwenden

Wenn in Ihrem Administratorkonto die Multi-Faktor-Authentifizierung aktiviert ist, werden Sie keine gespeicherten Anmeldedaten verwenden, wie ich es in den vorherigen Beispielen getan habe. Die Sitzung muss über ein interaktives OAuth-Fenster authentifiziert werden, das zur sekundären Verifizierung auffordert.

Zurück zur Verbindung mit dem AzureAD-Graph-Modul mit einem Konto mit Multi-Faktor-Authentifizierung: Ich werde Connect-AzureAD erneut ausführen, ohne ein Anmeldedatenobjekt anzugeben. Hier wird man aufgefordert, den Benutzernamen und das Kennwort einzugeben, und dann wartet die Anwendung, bis man den zweiten Faktor aus der mobilen App von Microsoft Authenticator eingibt.

Aufforderung zur Eingabe von Benutzername und Passwort:

Screenshot des ersten Multi-Faktor-Schrittes

Der Authentifizierungsprozess fordert mich dann auf, eine zweite Authentifizierungsform zu verwenden, indem ich den Authentifizierungsversuch genehmige:

Wie legt man ein App-Kennwort für Microsoft 365 und PowerShell fest?

Durch das Hinzufügen der Multi-Faktor-Authentifizierung wird eine weitere Sicherheitsebene hinzugefügt. Dies kann jedoch zu Problemen führen, wenn man ein PowerShell-Skript ohne Interaktion ausführen muss. Hier möchte man für zusätzlichen Schutz sorgen, kann jedoch nicht jedes Mal die Zwei-Faktor-Authentifizierung durchführen.

Um dieses Problem zu lösen, können Sie ein App-Kennwort erstellen. Mit App-Kennwörtern können Sie Ihr gewöhnliches Kontopasswort ersetzen und so in einer App die Multi-Faktor-Authentifizierung umgehen. Anwendungen, die die Multi-Faktor-Authentifizierung nicht unterstützen, können App-Kennwörter verwenden.

So konfigurieren Sie ein App-Kennwort:

  1. Navigieren Sie zu https://aka.ms/mfasetup und wählen Sie das Menü „App-Kennwörter“ aus.
  2. Gehen Sie auf die Schaltfläche „Erstellen“ und geben Sie dem App-Kennwort einen Namen, um seinen Zweck anzugeben.
  3. Nachdem Sie auf „Weiter“ geklickt haben, zeigt das Fenster das App-Kennwort an. Nun sollten Sie es in einem Kennwort-Manager speichern, da Sie es nicht mehr abrufen können.

Mit meinem neuen App-Kennwort kann ich ein neues PSCredential-Objekt erstellen. Anstatt mein normales Konto-Kennwort zu speichern, verwende ich das App-Kennwort. Nachdem die neue PSCredential-Variable erstellt wurde, benutze ich sie, um meine Verbindung herzustellen.

Screenshot der Erstellung von Anmeldedaten für ein App-Kennwort

Screenshot der Verbindung zu Azure AD mit AppPassword

Übersicht

Indem Sie PowerShell gut beherrschen, werten Sie Ihre Kenntnisse als Administrator deutlich auf. Sie können schnell Änderungen in den verschiedenen Diensten oder Aktionen im Rahmen der Mandantenverwaltung vornehmen, die nicht im Admin Center zu finden sind.

Jeff Brown

Jeff Brown

Jeff Brown is a cloud engineer specializing in Microsoft technologies such as Office 365, Teams, Azure, and PowerShell.

 

Möchten Sie Varonis in Aktion erleben?

Vereinbaren Sie eine Demo oder wenden Sie sich an unseren Vertrieb unter +49 89 3803 7990